Certámen Nº1 Teoría de Sistemas Operativos 1.- Explique qué es un Sistema Operativo. (10) Un SO es un conjunto de programas relacionados entre sí que: • contribuyen al funcionamiento del hardware del computador • Controla la ejecución de programas de aplicación • Actúa como interfaz entre el hardware y el usuario. 2.- Nombre y explique los objetivos generales de diseño de un Sistema Operativo. (10) Conveniencia: el SO debe permitir al usuario utilizar el hardware de una manera natural y transparente. Eficiencia: el SO debe lograr que los recursos físicos del sistema computación sean utilizados en forma organizada y coherente. Escalable: el SO debe tener la capacidad de permitir la actualización de los diversos componentes de un sistema computacional, sin afectar a los servicios que provee. Certámen Nº1 Teoría de Sistemas Operativos 3.- Nombre los cuatro administradores básicos de un Sistema Operativo y nombre los objetivos de dos de ellos. (2 objetivos por cada uno)(10) Administrador de procesos Crea y elimina procesos de usuario y sistema. Suspende y reanuda procesos. Sincroniza procesos. Comunica procesos. Maneja la situación de “deadlock”. Administrador de memoria Mantiene un historial de las zonas de memoria y quien las está utilizando. Decide qué procesos deben ser cargados en memoria. Asigna y quita espacio de memoria cuando es necesario. Administrador de Archivos Crea y elimina archivos y directorios. Provee las primitivas para manipular archivos y directorios. Manipulación de archivos en medios de almacenamiento secundario. Administrador de I/O Provee una interfase genérica entre el dispositivo y el controlador (device-driver). Provee los controladores para dispositivos específicos. 4.-Explique detalladamente por qué un sistema monoprogramado es más fácil de implementar que uno multiprogramado. (15) Un sistema monoprogramado no contiene registros de procesos tales como PCB, ya que no hay cambios de contexto entre ellos (un proceso ocupa la CPU cuando el anterior ha terminado todas sus instrucciones) Un sistema de multiprogramación, debido a que permite que 1 o más procesos se encuentren en memoria, debe tener ciertos servicios auxiliares, tales como planificadores de procesos, registros que permitan el cambio de contexto entre procesos, etc. 1 2 Certámen Nº1 Teoría de Sistemas Operativos 5.-Explique por qué es necesario la exclusión mutua y nombre las cuatro condiciones necesarias para obtener una buena solución de exclusión mutua. (15) La exclusión mutua nace de la necesidad de que dos o más procesos puedan acceder a zonas compartidas sin interferir entre ellos. Condiciones para dar buena solución de exclusión mutua. • Dos o más procesos no deben encontrarse al mismo tiempo dentro de sus secciones críticas • No se deben hacer hipótesis sobre la velocidad o el número de CPU. • Ningún proceso que esté en ejecución fuera de su sección crítica puede bloquear a otros procesos. • Ningún proceso debe esperar eternamente para entrar a su sección crítica. Certámen Nº1 Teoría de Sistemas Operativos 6.- La empresa Daemon Ltda. está tratando de dar solución al problema de Lectores y Escritores, (visto en clases). Desafortunadamente, la persona que estaba solucionando el problema se fue y sólo dejó un código, pero que tiene algunos errores. La misión que se la ha encargado es encontrar el o los errores, repararlos y explicar detalladamente cuál es y cuándo se produce. (20) semaphore mutex=1; semaphore db=1; int rc=0; void lector(void){ down(&mutex); rc++; up(&mutex); if(rc==1) down(&db); lea_base_datos(); down(&mutex); rc--; up(&mutex); if(rc==0) up(&db); use_datos(); //sección no crítica } void escritor(void){ cree_data(); down(&db); escriba_base_datos(); up(&db); } 3 4 Certámen Nº1 Teoría de Sistemas Operativos Certámen Nº1 Teoría de Sistemas Operativos Tal como está el código, puede suceder lo siguiente: No habiendo procesos accediendo a la DB, un escritor entra a ella • realiza un down(&db) Î db para de 1 a 0 y el escritor escribe en la DB por un lapso de tiempo. En ese instante, llega un lector. • Hace un down(&mutex) para asegurar la exclusión mutua en la variable rc (que es una variable compartida) y la incrementa Î rc=1. Una vez realizado este incremente, hace un up(&mutex) para liberar dicho recurso. • Como rc==1 (es el primer lector que llega), debe realizar un down(&db). • Pero db=0, por lo que el proceso se va a dormir. Pero supongamos que llega otro proceso. • Nuevamente hace un down(&mutex) antes de incrementar rc. Ahora rc=2. • Como no es el primer proceso, para a leer la base de datos. ÎERROR. Contradice la definición del problema que dice que cuando un escritor está modificando la DB, ningún otro proceso puede acceder a ella. 7.- Suponga que hay dos procesos, A y B. El proceso A tiene 11 instrucciones (A0ÆA10) y B tiene 8 (B0ÆB8). Ambos procesos hacen uso de una misma impresora y un mismo plotter. El proceso A usa la impresora desde A1 hasta A5 y la impresora desde A4 hasta A9. En forma análoga, el proceso B ocupa la impresora desde B1 hasta B5 y el plotter desde B4 hasta B7. A) Establezca una trayectoria que permita que ambos procesos terminen sin bloquearse. Explique. (10) Una solución (hay varias), puede ser asignar la CPU a un proceso y después al otro. º Para solucionar esto, es necesario intercambiar las instrucciones, tal como indican las flechas en la página anterior. 5 6 Certámen Nº1 Teoría de Sistemas Operativos B) Explique detalladamente cuándo y por qué puede producirse un bloqueo mutuo. (10) º Si el planificador hace que los procesos entren al rectángulo marcado, se produce un bloqueo mutuo en (A4, B4). Ejemplo. Tiempo 0 1 2 3 4 5 6 7 Proceso A A0 A1 A2 8 9 A3 A4 10 11 etc A4 ... Proceso B Comentario El plotter es asignado a A B0 B1 B2 B3 B4 Cambio de contexto La impresora es asignada a B B Necesita el plotter, El proceso B no puede seguir, ya que el plotter está asignado a A Cambio de contexto A necesita la impresora. No puede seguir ya que está asignada a B B Necesita el plooter A necesita la impresora ... B4 ... Se cumplen las condiciones para un bloque mutuo. Cada proceso está esperando un recurso que está asignado al otro y éste último no lo ha dejado de utilizar. 7