Ejercicio 2
UTN – 1° Parcial Sistemas Operativos 07/10/2017
Se dispone de un SO con planificación bajo algoritmo Round Robin (Q=3). También hay ciertos
Nombre y Apellido:.................................................................................... Curso: ….............. procesos que utilizan hilos de usuario, y son planificados utilizando SJF con desalojo. En el instante
t=14 el sistema operativo decide finalizar el KLT3 para liberar recursos.
Hilo Kernel/ Hilo Usuario Llegada CPU E/S CPU
KLT1 - ULT1 0 4 2 3
TEORÍA: Responda brevemente las siguientes preguntas. Justifique.
KLT2 - ULT2 1 2 1 4
1. ¿A qué se refiere el problema de starvation en planificación de procesos? Mencione dos algoritmos
con desalojo que puedan sufrir del mismo e indique en cada caso cómo se podría solucionar. KLT3 - ULT3.1 2 4 1 1
2. V o F
a. Los wrappers de las syscalls permiten que se realice el cambio de modo de user a kernel KLT3 - ULT3.2 3 2 2 2
b. Nunca puede ocurrir un cambio de contexto sin realizar cambio de proceso.
3. ¿Sería eficiente el intentar detectar un bug ocasionado por una condición de carrera debugueando el
programa? a) Realice el diagrama de gantt correspondiente, sabiendo que las syscalls se realizan
4. Explique ventajas y desventajas del uso de ULTs en lugar de KLTs. directamente llamando al sistema operativo
5. Explique brevemente las distintas formas de administración de bloques libres en un filesystem. b) Indique en qué instantes de tiempo se producen process switches y/o context switches.
PRÁCTICA: Resuelva los siguientes ejercicios justificando las conclusiones obtenidas. Ejercicio 3
Ejercicio 1 El siguiente simulador, desarrollado por “La Yamaha que Yamaha” Records, pretende simular una
Considere dos Filesystems: el FS A está formateado con FAT16 y utiliza clusters de 4 KiB. El FS B es de tipo UFS; banda tocando:
el mismo posee direcciones de 64 bits, bloques de 1 KiB y su inodo posee dos ptrs directos, uno indirecto
simple, uno indirecto doble y uno indirecto triple. Si en ambos FS se crea un archivo test.txt y se le asignan los Saxo (5 instancias) Bajo (1 instancia) Guitarra (1 instancia) Piano (1 instancia)
clusters/bloques nro 5-4-8 para su contenido (en ese orden).
while (true){ while (true){ while (true){ while (true){
1. Indique para FS A el estado de la tabla FAT luego de la asignación y para FS B el estado del inodo y de tocar_una_melodia() responder_melodia() improvisar() improvisar()
los bloques de punteros en caso de ser necesario } } } }
2. Si se quisiera expandir el archivo a 1 MiB, ¿cuántos clusters/bloques extras habría que asignar en cada
FS? Dicha simulación consiste en cinco saxos altos, un bajo, una guitarra y un piano. Las reglas de la
3. ¿Cuál es el tamaño máximo (real) que podría alcanzar dicho archivo en cada FS si para cada caso se improvisación consisten en que se debería primero sonar algún saxo. Por cada melodía tocada por
tuviera una partición de 512 MiB? un saxo, el bajo responde con otra melodía. Luego, el bajo le da el pie a la guitarra o el piano, quienes
deben turnarse cada vez porque les toca improvisar.
No les importa demasiado solaparse entre distintos instrumentos, siempre y cuando se respeten las
reglas establecidas (y considerando también que los saxos, como son muchos, prefieren no tocar
más de tres melodías seguidas sin que aparezca el bajo).
Utilizando solamente semáforos, permita que la simulación respete las reglas establecidas.
Condiciones de aprobación: 3 preguntas correctamente respondidas y 2 ejercicios correctamente resueltos.