Enunciado TP1 SO
Enunciado TP1 SO
Enunciado TP1 SO
1 de 5
Trabajo Práctico n° 1
Lineamientos
Generalidades
1. ¿Qué es la multiprogramación?
2. ¿Cuál de las siguientes instrucciones debe permitirse sólo en modo kernel?
a. Deshabilitar todas las interrupciones
b. Leer el reloj de la hora del día.
c. Establecer el reloj de la hora del día.
d. Cambiar el mapa de memoria.
3. Cuando un programa de usuario que realiza una llamada al sistema para leer o escribir en un
archivo en disco, proporciona una indicación de que archivo desea, un apuntador al buffer de
datos y la cuenta. Después, el control se transfiere al sistema operativo, el cual llama al driver
apropiado. Suponga que el driver inicia el disco y termina hasta que ocurre una interrupción.
En el caso de leer del disco, es obvio que el procedimiento que hizo la llamada tiene que ser
bloqueado (debido a que no hay datos para leer). ¿Qué hay sobre el caso de escribir el
disco?,¿Necesita hacer bloqueado el procedimiento llamador, para esperar a que se complete
la transferencia del disco?
Procesos e hilos
1. En todas las computadoras actuales, al menos una parte de los manejadores de interrupciones
se escriben en lenguaje ensamblador. ¿Por qué?
2. Cuando una interrupción o una llamada al sistema transfiere el control al sistema operativo,
por lo general se utiliza un área de la pila del kernel separada de la pila del proceso
interrumpido. ¿Por qué?
Pág. 2 de 5
Trabajo Práctico n° 1
3. En la siguiente figura se muestran los tres estados posibles de un proceso. En teoría, con tres
estados podría haber seis transiciones, dos fuera de cada estado. Sin embargo, solo se muestran
cuatro transiciones. ¿Existe alguna circunstancia en la que una o ambas de las transiciones
faltantes pudieran ocurrir?
Un proceso puede encontrarse en estado "en ejecución", "bloqueado" o "listo". Las transiciones entre estos estados son como se
muestran.
5. Si un proceso con multihilamiento utiliza la operación Fork, (el hijo obtiene copias de todos
los hilos del padre). Suponga que uno de los hilos originales estaba esperando la entrada del
teclado, ¿Habría dos hilos esperando por la entrada del teclado (uno en cada proceso)? ¿Acaso
ocurre este problema en procesos con un solo hilo?
7. ¿Por qué un hilo otorgaría de manera voluntaria la cpu al llamar a thread_yield*? Después de
todo, como no hay una interrupción periódica de reloj, tal vez nunca obtenga la cpu de vuelta.
* Causes the calling thread to relinquish the CPU. The thread is placed at the end of the run queue
for its static priority and another thread is scheduled to run.
Pág. 3 de 5
Trabajo Práctico n° 1
8. En este problema debe comparar la lectura del archivo, utilizando el servidor de archivos con
un solo hilo y un servidor multihilado. Se requieren 15 ms para recibir una petición,
despacharla y completar el procesamiento necesario, suponiendo que los datos necesarios ya
están en la caché. Sí se necesitase una operación de disco, como es el caso de una tercera parte
del tiempo, se requieren 75 ms adicionales, durante los cuales el hilo duerme. ¿Cuántas
peticiones por segundo puede manejar el servidor, sí es de un solo hilo? ¿si es multihilado?
10. En un sistema con hilos, ¿hay una pila por cada hilo o una pila por cada proceso? Explique
para el caso cuando se utilizan hilos a nivel de usuario, y cuando se utilizan hilos a nivel del
kernel.
Planificación
1. Varios trabajos se pueden ejecutar en paralelo y terminar con más rapidez que sí se hubieran
ejecutado en secuencia. Suponga que dos trabajos, cada uno de los cuales necesita diez minutos
de tiempo desde la llamada a CPU, inician al mismo tiempo. ¿Cuánto tiempo tardará el último en
completarse, sí se ejecutan en forma secuencial? ¿Cuánto tiempo sí se ejecutan en paralelo?
Suponga hay 50% de espera de entrada/salida.
a. Dibuje cuatro diagramas de Gantt para ilustrar la ejecución de estos procesos, usando los
siguientes algoritmos de planificación: FCFS, SJF, planificación por prioridades sin
desalojo (un numero de prioridad bajo indica prioridad alta) y planificación por turnos
(cuanto de tiempo=1).
b. ¿Cuál es el tiempo de ejecución de cada proceso para cada algoritmo de planificación
mencionado en el apartado a?
c. ¿Cuál es el tiempo de espera de cada proceso para cada algoritmo de planificación
mencionado en el apartado a?
d. ¿Cuál de los algoritmos del apartado a permite obtener el tiempo medio de espera mínimo
(teniendo en cuenta todos los procesos)?
e. ¿Cuáles de los algoritmos de planificación pueden dar lugar a bloqueos indefinidos?
3. Considere un sistema que ejecuta diez tareas limitadas por E/S y una tarea limitada por la CPU.
Suponga que las tareas limitadas por E/S ejecutan una operación de E/S por cada milisegundo de
tiempo de CPU y que cada operación de E/S tarda 10 milisegundos en completarse. Suponga
también que el tiempo de cambio de contexto es de 0,1 milisegundos y que todos los procesos son
tareas de de larga duración ¿Cuál es el grado de utilización de la CPU para un planificador por
Pág. 4 de 5
Trabajo Práctico n° 1
turnos cuando:
a. ¿El cuánto de tiempo es de 1 milisegundo?
b. ¿El cuánto de tiempo es de 10 milisegundos?
4. Sea un sistema que usa un algoritmo de planificación de turno rotatorio con una rodaja de tiempo
de 100ms. En este sistema ejecutan 2 procesos. El primero no realiza operaciones de E/S, y el
segundo solicita una operación de E/S cada 50ms. ¿Cuál será el porcentaje de uso de procesador?
5. ¿Cuáles de los siguientes algoritmos de planificación pueden dar lugar a bloqueos indefinidos?
a. FCFS
b. SJF
c. Planificación por turnos
d. Planificación por prioridades
6. Considere una variante del algoritmo de planificación por turnos en la que las entradas en la cola
de procesos preparados son punteros a los bloques PCB.
a. ¿Cuál sería el efecto de colocar en la cola de procesos preparados dos punteros que
hicieran referencia al mismo proceso?
b. ¿Cuáles son las dos principales ventajas y los dos principales inconvenientes de este
esquema?
c. ¿Cómo modificaría el algoritmo por turnos básico para conseguir el mismo efecto sin usar
punteros duplicados?
7. Explique las diferencias con respecto al grado en que los siguientes algoritmos de planificación
favorecen a los procesos más cortos:
a. FCFS.
b. Planificación por turnos.
c. Planificación por colas multinivel realimentadas.
8. El planificador tradicional de UNIX fuerza una relación inversa entre los números de prioridades
y las prioridades: cuanto mayor es el número, menor es la prioridad. El planificador recalcula las
prioridades de los procesos una vez por segundo usando la siguiente función
Donde prioridad base = 60 y uso reciente de la CPU hace referencia a un valor que indica con que
frecuencia ha empleado un proceso la CPU desde que se calcularon las prioridades por última
vez.
Suponga que el uso reciente de la CPU para el proceso P1 es de 40, para el proceso P2 es de 18 y
para el proceso P3 de 10.
a. ¿Cuáles serán las nuevas prioridades para estos tres procesos cuando estas se vuelvan a
calcular? Teniendo esto en cuenta,
b. ¿incrementará o disminuirá el planificador tradicional de UNIX la prioridad relativa de un
proceso limitado por la CPU?
9. Sea un sistema que usa un algoritmo de planificación de turno rotatorio con una rodaja de tiempo
de 100ms. En este sistema ejecutan 2 procesos. El primero no realiza operaciones de E/S, y el
segundo solicita una operación de E/S cada 50ms. ¿Cuál será el porcentaje de uso de procesador?
10. ¿Qué algoritmo de planificación sería más conveniente para optimizar el rendimiento del
procesador en un sistema donde solo hay procesos que no realizan E/S?
Pág. 5 de 5
Trabajo Práctico n° 1
11. ¿Cuál es el criterio de planificación más relevante en un sistema de tiempo compartido, el tiempo
de respuesta o la optimización en el uso del procesador?
12. ¿Cuál de las siguientes transiciones entre los estados de un proceso no se puede producir en un
sistema con un algoritmo de planificación no expulsivo?
a. Bloqueado a Listo
b. Ejecutando a Listo
c. Ejecutando a Bloqueado
d. Listo a Ejecutando
13. Considere el siguiente conjunto de procesos planificados con un algoritmo de turno rotatorio con
una rodaja de 1 unidad de tiempo, ¿Cuánto tardarán en acabar todos ellos?