Certámen Nº1 Teoría de Sistemas Operativos 1.

Anuncio
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
Descargar