SisOp final 27-02-14
De Cuba-Wiki
Aclaraciones
Cada ejercicio se califica como Bien, Regular o Mal. Este examen se aprueba obteniendo al menos cinco ejercicios Bien y a lo sumo uno Mal.
Enunciado
Procesos
- Una PCB clásica para el manejo de procesos contiene todos los recursos para que el proceso pueda ejecutar, por ejemplo Registros, Archivos abiertos, etc. ¿Cómo debe modificarse para soportar threads?
- Proponga un escenario en donde un proceso requiera la modificación de algún valor de la PCB. Escriba el pseudocódigo de las rutinas para realizar ese cambio y quién (SO o proceso) es responsable de cada una.
- En Unix/Linux los procesos no pueden acceder a puertos de entrada/salida directamente, salvo que explícitamente se le de permiso. ¿Cómo podría implementarse?
Sincronización
- Defina condición de carrera (race condition).
- ¿Cuáles son las 4 condiciones de Koffman y para qué nos sirven?
- ¿Por qué es necesaria la primitiva Test & Set para la implementación de semáforos?
- ¿Alcanza con la primitiva T&S en arquitecturas multi-procesador? En caso afirmativo justificar. En caso negativo, proponer una solución.
Scheduling
- Suponga un sistema operativo que utiliza RR como scheduler, donde cada entrada de la cola de procesos es un puntero a la PCB.
- ¿Es posible implementar un sistema de asignación de prioridades (i.e. darle más tiempo de procesamiento) a procesos manteniendo RR como scheduler? Justificar.
- Esta implementación, ¿soporta scheduling de threads? Si la respuesta es afirmativa, muestre un ejemplo. Si la respuesta es negativa, proponga una modificación que lo permita.
- ¿Puede haber inanición en MFQ? En caso afirmativo dar un ejemplo. En caso negativo, indicar el mecanismo que lo evita.
Memoria
- Explique ventajas de la paginación multinivel. ¿Qué problema resuelve la TLB?
- Explique el mecanismo por el cual la paginación protege al espacio de memoria de un proceso.
- Describa dos estructuras para el manejo de espacio libre de la memoria. Indique diferencias entre ellas, ventajas y desventajas.
Manejo de disco
- ¿Por qué los algoritmos de scheduling de accesos al disco se miden en cilindros? ¿Cambia algo con la nueva tecnología de los discos rígidos de estado sólido?
- Dé un escenario en donde SCAN sea más eficiente que FCFS.
- Un sistema utiliza RAID5 sobre 4 discos para almacenar la información:
- ¿Hasta cuántos discos se pueden romper sin que se pierda información? Justifique.
- ¿La falla de algún disco es más grave que otras? Justifique.
- ¿Tiene sentido realizar copias de seguridad? Justifique.
Sistemas de archivos
- Discutir la conveniencia de un sistema de archivos basado en FAT vs inodos si se busca realizar de manera eficiente una copia de seguridad total.
- ¿Para qué sirven y en qué afectaría no tener los nodos de doble indirección?
- En algunas implementaciones de inodos, los bloques directos (i.e. los datos del archivo) son almacenados en el mismo inodo (si es que entran). ¿Cuál es la ventaja?
Sistemas distribuidos
- Describa el algoritmo de ordenamiento de eventos en sistemas distribuidos propuesto por Lamport.
- Un algoritmo de commit distribuido funciona de la siguiente manera: opera sobre una red donde los paquetes pueden perderse o demorarse, y cuando un nodo quiere escribir sobre cierto archivo que está replicado en todos los nodos, envía un pedido de escritura. Si recibe confirmación de todos los nodos, escribe y le notifica a los demás que pueden hacer lo propio. Alguien nota que este algoritmo puede fallar si los nodos se caen entre la escritura y la notificación y propone para solucionarlo el envío de mensajes de confirmación de parte de los nodos. ¿Este algoritmo resuelve el problema? Justifique.