TAREA 2._Resuelva los problemas (1, 2, 4, 5, 9, 10, 12, 15, 16, 17, 18, 20, 22, 23, 27) de la página(148-151) del libro: Sistemas Operativos diseño e implementación de Tanenbaum y Woodhull
Suponga que va a diseñar una arquitectura de
computadora avanzada que realizará la conmutación de procesos por hardware, en
lugar d>e-tenerinterrupciones. ¿Qué información necesitaría la CPU? Describa
cómo podría funcionar la conmutación de procesos por hardware.
La CPU está ejecutando sólo un programa, en el curso de un
segundo puede trabajar con varios programas, dando a los usuarios la ilusión de
paralelismo. A veces se usa el término seudoparalelismo para referirse a esta
rápida conmutación de la CPU entre programas, para distinguirla del verdadero
paralelismo de hardware de los sistemas multiprocesador.
En todas las computadoras actuales, al menos una
parte de los manejadores de interrupciones se escribe en lenguaje ensamblador.
¿Por qué?
Se incurren en menos errores y los
que se cometen son más fáciles de localizar además, los programas en
lenguaje ensamblador son más fáciles de modificar que los programas de lenguaje
máquina, Pero existen limitaciones.
4.
En un sistema con hilos, ¿hay una pila por hilo o una pila por proceso?
Explique.
Por cada hilo
hay una pila diferente, pues cada hilo puede ejecutarse en su propio ritmo. Permite a una aplicación realizar varias tareas a la vez (concurrentemente).
Los distintos hilos de ejecución comparten una serie de recursos tales como el
espacio de memoria, los archivos abiertos, situación de autenticación, etc.
5. ¿Qué es una condición de competencia?
Es un fenómeno que se produce cuando uno o
varios procesos compiten por uno o varios recursos produciendo el bloqueo en la
ejecución de esos procesos, lo que a la postre termina con el cuelgue del
sistema.
9.
Considere una computadora que no cuenta con la instrucción TEST AND SET LOCK
pero sí tiene una instrucción que intercambia el contenido de un registro y una
palabra de memoria en una sola acción indivisible. ¿Se puede usar esta
instrucción para escribir una rutina enter_region como la de la Fig. 2-10?
Al igual que todas las soluciones basadas en regiones
críticas, el proceso debe invocar enter_region y leave_region en los
momentos correctos para que el método funcione.
10. Bosqueje la
forma en que un sistema operativo que puede inhabilitar interrupciones podría
implementar semáforos. Implementar
semáforos.
Se proponen dos operaciones DOWN
(aplicada a un semáforo verifica si el valor es mayor que 0) y UP (incrementa
el valor del semáforo seleccionado) si uno o más procesos están durmiendo en
espera, imposibilitados de completar una operación DOWN previa, el sistema
escoge uno de ellos.
12.
En la sección 2.2.4 se describió una situación con un proceso de alta
prioridad, H, y uno de baja prioridad, L, que condujo a la repetición infinita
de H. ¿Ocurre el mismo problema si se usa planificación round robin en vez de
planificación por prioridad? Explique.
La solución está en la introducción de
variables de condición, junto con dos operaciones que se realizan con
ellas, WA y SIGNAL. Cuando un procedimiento de monitor descubre que no puede
continuar. Esta acción hace que el proceso invocador se bloquee, y también
permite la entrada de otro proceso al que antes se le había impedido
entrar en el monitor.
15.
Suponga que tenemos un sistema de transferencia de mensajes que usa buzones. Al
enviar mensajes a un buzón lleno o tratar de recibirlos de un buzón vacío, un
proceso no se bloquea, sino que recibe de vuelta un código de error. El proceso
responde al código de error intentándolo de nuevo, una y otra vez, hasta que
tiene éxito. ¿Da este esquema lugar a condiciones de competencia?
Por qué
el sistema recibe un mensaje de error y trata de ejecutar el mensaje
por defecto.
16.
En la solución al problema de la cena de filósofos (Fig. 2-20), ¿por qué se
asigna HUNGRY (Hambriento) a la variable
de estado en el procedimiento take_forks (tomar tenedores)?
El filósofo tiene una condición a modificar el programa de
modo que, después de tomar el tenedor izquierdo, el programa verifique si
el tenedor derecho está disponible.
17.
Considere el procedimiento put_forks (poner tenedores) de la Fig. 2-20. Suponga
que se asigna el valor THINKING (pensando) a la variable de estado state
después de las dos llamadas a test (probar), en lugar de antes. ¿Cómo afectaría
este cambio la solución para el caso de tres filósofos? ¿Y para 100 filósofos?
Como acotación, vale la pena señalar que si bien los problemas de
lectores y escritores y del peluquero dormido no implican transferencia
de datos, pertenecen al área de IPC porque implican sincronización entre
varios procesos.
18.
El problema de lectores y escritores se puede formular de varias formas en lo
tocante a cuál categoría de procesos puede iniciarse y cuándo. Describa
minuciosamente tres variaciones diferentes del problema, cada una de las cuales
favorece (o no favorece) alguna categoría de procesos. Para cada variación,
explique qué sucede cuando un lector o un escritor quedan listo para acceder a
la base de datos, y qué sucede cuando un proceso termina de usar la base de
datos.
Los
lectores subsecuentes se limitan a incrementar un contador; conforme los
lectores salen, decrementan el contador, y el último en salir ejecuta.
20.
Los planificadores round robin normalmente mantienen una lista de todos los
procesos ejecutables, y cada proceso aparece una y sólo una vez en la lista.
¿Qué sucedería si un proceso ocurriera dos veces en la lista? ¿Puede usted
pensar en alguna razón para permitir esto?
Hay que
tratar de saber que quiere hacer el planificador porque puede que se ejecute un
error y bloquear el sistema.
22.
Cinco trabajos están esperando para ejecutarse. Sus tiempos de ejecución
esperados son 9, 6, 3, 5 y X. ¿En qué orden deben ejecutarse si se desea
minimizar el tiempo medio de respuesta? (Su respuesta dependerá de X.)
23.
Cinco trabajos por lotes, A a E, llegan a un centro de cómputo casi al mismo
tiempo, y tienen tiempos de ejecución estimados de 10, 6, 2, 4 y 8 minutos. Sus
prioridades (determinadas externamente) son 3, 5, 2, 1 y 4, respectivamente,
siendo 5 la prioridad más alta. Para cada uno de los siguientes algoritmos de
planificación, determine el tiempo de retorno medio de los procesos. Ignore el
gasto extra por conmutación de procesos.
(a) Round robin.
(b) Planificación por prioridad.
(c) Primero que llega, primero que se atiende (ejecutados en el orden
10, 6, 2, 4, 8).
(d) El primer trabajo más corto.
27. Explique por qué se usa comúnmente
la planificación de dos niveles.
Es más eficiente el intercambio de los procesos con
un planificador de dos niveles. Cada conmutación implicaba escribir el proceso actual en disco y leer
uno nuevo del disco.
No hay comentarios:
Publicar un comentario