SisOp final 27-02-14

De Cuba-Wiki

Plantilla:Back

Aclaraciones[editar]

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[editar]

Procesos[editar]

  1. 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?
  2. 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.
  3. 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[editar]

  1. Defina condición de carrera (race condition).
  2. ¿Cuáles son las 4 condiciones de Koffman y para qué nos sirven?
  3. ¿Por qué es necesaria la primitiva Test & Set para la implementación de semáforos?
  4. ¿Alcanza con la primitiva T&S en arquitecturas multi-procesador? En caso afirmativo justificar. En caso negativo, proponer una solución.

Scheduling[editar]

  1. 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.
  2. ¿Puede haber inanición en MFQ? En caso afirmativo dar un ejemplo. En caso negativo, indicar el mecanismo que lo evita.

Memoria[editar]

  1. Explique ventajas de la paginación multinivel. ¿Qué problema resuelve la TLB?
  2. Explique el mecanismo por el cual la paginación protege al espacio de memoria de un proceso.
  3. Describa dos estructuras para el manejo de espacio libre de la memoria. Indique diferencias entre ellas, ventajas y desventajas.

Manejo de disco[editar]

  1. ¿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?
  2. Dé un escenario en donde SCAN sea más eficiente que FCFS.
  3. 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[editar]

  1. 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.
  2. ¿Para qué sirven y en qué afectaría no tener los nodos de doble indirección?
  3. 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[editar]

  1. Describa el algoritmo de ordenamiento de eventos en sistemas distribuidos propuesto por Lamport.
  2. 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.