Sistemas Operativos Práctico Nº 1

Sistemas Operativos
Trabajo Práctico n°1
UNIVERSIDAD NACIONAL DE T UCUMÁN
Facultad de Ciencias Exactas y
Tecnología
Depto. de Electricidad, Electrónica y
Computación
Sistemas Operativos
Práctico Nº 1
Tema: Procesos y Planificación del CPU
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. ¿Cuál es la diferencia clave entre un trap y una interrupción?
4. 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 proces o puede encontrarse en es tado "en ejecución", "bl oqueado" o "l i sto". Las
tra ns i ci ones entre es tos es ta dos s on como s e mues tra n.
5. 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é?
6. 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.
7. Si un proceso con multihilamiento utiliza la operación Fork, ocurre un problema si el hijo obtiene
copias de todos los hilos del Padre. Suponga que uno de los hilos originales estaba esperando la
entrada del teclado. Ahora hay dos hilos esperando la entrada del teclado, uno en cada proceso. ¿acaso
1
UNIVERSIDAD NACIONAL DE T UCUMÁN
Facultad de Ciencias Exactas y
Tecnología
Depto. de Electricidad, Electrónica y
Computación
Sistemas Operativos
Trabajo Práctico n°1
ocurre este problema en procesos con un solo hilo?
8. En la figura se muestra un servidor web con multihilamiento. Si la única forma de leer un archivo es
la llamada al sistema read normal con bloqueo, ¿cree usted que se están usando hilos a nivel usuario
o hilos a nivel del KERNEL para el servidor web? ¿Por qué?
Un Servidor Web con múltiples hilos
9. Se presentó anteriormente un servidor web con multihilamiento, mostrando por qué es mejor que un
servidor con un solo hilo y que un servidor de máquina de estados finitos. ¿Hay alguna circunstanc ia
en la cual un servidor con un solo hilo podría ser mejor? De un ejemplo.
10. ¿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.
11. ¿Puede darse alguna vez el apropiamiento de un hilo mediante una interrupción del reloj? De ser así,
¿bajo qué circunstancias? Si no es así, ¿por qué no?
12. 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 obtener una petición, despacharla y realizar
el resto del procesamiento necesario, suponiendo que los datos necesarios están en la caché del bloque.
Sí se necesita 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?
13. ¿Cuál es la mayor ventaja de implementar hilos en espacio de usuario? ¿Cuál es la mayor desventaja?
14. En un sistema con hilos, ¿hay una pila por cada hilo o una pila por cada proceso cuando se utiliza n
hilos a nivel de usuario? ¿y cuándo se utilizan hilos a nivel del KERNEL? Explique.
2
Sistemas Operativos
Trabajo Práctico n°1
UNIVERSIDAD NACIONAL DE T UCUMÁN
Facultad de Ciencias Exactas y
Tecnología
Depto. de Electricidad, Electrónica y
Computación
15. ¿Por qué es importante para el planificador diferenciar entre programas limitado s por E/S y programas
limitados por CPU?
16. Considere el siguiente conjunto de procesos, estando la duración de las ráfagas de CPU
específicamente en milisegundos:
Proceso
P1
P2
P3
P4
P5
Tiempo de ráfaga
10
1
2
1
5
Prioridad
3
1
3
4
2
Se supone que los procesos llegan en el orden P1, P2, P3, P4, P5 en el instante 0.
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 planificac ió 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?
17. 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 turnos cuando:
a. ¿El cuanto de tiempo es de 1 milisegundo?
b. ¿El cuanto de tiempo es de 10 milisegundos?
18. ¿Qué algoritmo de planificación será más conveniente para optimizar el rendimiento del procesador
en un sistema donde solo hay procesos que no realizan E/S?
19. 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?
3