Segundo Parcial 10/06/2004 (Sistemas Operativos)

De Cuba-Wiki
Saltar a: navegación, buscar
Back.png Volver a la página de la materia

==Ejercicio 1== Dónde se encuentra la Lista de Control de Usuario? Para qué sirve? Y cómo se diferencia de la Lista de Control de Accesos? Justifique.

En un sistema con LCU, en la DAB existe una entrada que identifica un archivo que contiene la informacion de los usuarios del sistema. Alli se encuentra otra tabla que dice que para cada usuario, en que archivo se encuentra sus permisos de LCU. Cada uno de estos archivos, tiene una tabla que indica a que archivos y con que permisos puede acceder dicho usuario.
La diferencia con las LCA es que estas existe una por archivo, y dice quienes pueden acceder al mismo, y de que manera.
Para mas informacion ver Capítulo 15 - Administracion De La Informacion: Pagina 8-9.


==Ejercicio 2== Describa las acciones en la Administración de la Información que desencadena la ejecución de la primera instrucción READ por parte de un proceso considerando que ya se realizó exitosamente un OPEN en modalidad OUTPUT previamente. Justifique.
Se llama al SAS para que busque en la TNA el ID del archivo. Ese ID se pasa al SAP quien lo utiliza para encontrar la informacion del archivo en la TAA, y llama a la VCA, que dara un error, y abortara el pedido debido a que el archivo se abrio para OUTPUT y se lo esta tratando de leer.
Para mas informacion ver Capítulo 15 - Administracion De La Informacion: Pagina 2-5.


==Ejercicio 3== Qué rutina de la administración de la Información controla el manejo de la Concurrencia de acceso a archivos? Dónde se encuentra (en qué Tabla) la información que utiliza para ello? Qué otra función realiza esa rutina?
PREGUNTAR.
La rutina de la VCA.
La informacion se encuentra en la TAA, que indica cuantos procesos, y quienes estan accediendo al archivo en este momento.
Esta rutina (la VCA) tambien se encarga de verificar los permisos y derechos de acceso de los procesos a los archivos.


==Ejercicio 4== Cuál es el objetivo de tener lenguaje de control y cómo se asocia con la Planificación de la Carga? Justifique.
PREGUNTAR.
El lenguaje de control sirve para abrir, ejecutar y guardar archivos, y como la planificacion se encarga de decidir que trabajos se ejecutan necesita una herramienta para poder trabajar con los archivos y vincularlos a trabajos.


==Ejercicio 5== Cuáles son las planificaciones de carga para realizar balance de carga en un sistema interactivo. Justifique.
Son la planificacion por contencion, la ponderada y la algoritmica.
Para mas informacion ver Capítulo 16 - Planificacion De La Carga: Pagina 4.


==Ejercicio 6== En el modelo estocástico de teoría de colas se pide que  ? < cµ. Indique la importancia de esta restricción.
Si no utilizacemos esta restriccion estaríamos incluyendo casos en los que se incrementa indefinidamente
la cantidad de trabajos por atender sin posibilidad de retorno. Esta restriccion dice que la velocidad del sistema para atender trabajos es mas rapido que la velocidad a la que estos llegan.
Para mas informacion ver Capítulo 16 - Planificacion De La Carga: Pagina 5.


==Ejercicio 7== Suponga que existen dos puntos distantes que deben mantener comunicación en forma cifrada utilizando el método DES. Por cada sesión de comunicación desean cambiar su clave pues los espías son muchos y muy hábiles. Existe un único canal de comunicación y la distancia es tal que la frecuencia de cambios NO puede ser satisfecha por medio de mensajeros o correo. Proponga una solución en la cual sea esto posible, o sea que por cada sesión de comunicación sea posible utilizar una clave DES distinta.
PREGUNTAR.
Una opcion seria en cada mensaje, enviar la clave que se va a utilizar en el siguiente. Si los espias no logran decifrar nunca ningun mensaje, entonces el metodo sera seguro. Si logran decifrar uno, luego podran decifrar el resto.
Para mas informacion ver Capítulo 18 - Proteccion Y Seguridad: Pagina 8-9.


==Ejercicio 8== Sea una instalación con Usuarios, Programadores y System Programmer; que cuenta con recursos de Archivos, Compiladores y Programas fuente. Construya una estructura dinámica con autorizaciones razonables y que además permita realizar las siguientes acciones :
a) permitir a los programadores grabar archivos
b) que los usuarios puedan eliminar la autorización dada a los programadores en el punto a)
c) que el System Programmer pueda realizar pruebas sobre archivos reales como si fuera un usuario más de la instalación
d) que el System Programmer tenga control total sobre los programadores
Archivos Compiladores Programas fuente Usuarios Programadores System Programmer
Usuarios Owner
Programadores Write Execute Owner
System Programmer Read Owner Read/Write Switch Control
Capítulo 18 - Proteccion Y Seguridad: Pagina 4.


Ejercicio 9[editar]


a)- Explique en qué consiste el método de enciframiento One-Time-Pad
b)- Utilícelo para encriptar la palabra EXAMEN con la clave "035192" (indique el alfabeto que utilizó)
El one-time pad consiste en sumarle a cada letra del mensaje una letra diferente, sacada de una clave tan larga como el mensaje mismo. Esta clave no se vuelve a utilizar para ningun otro mensaje, lo que lo hace totalmente seguro al metodo.

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25

EXAMEN = 4,23,0,12,4,13
Clave = 0, 3, 5, 1, 9, 2
Resultado = 4, 0, 5, 13, 13, 15 = EAFNNP

Para mas informacion ver Capítulo 18 - Proteccion Y Seguridad: Pagina 9.


==Ejercicio 10== Dada las matrices de recursos que se indican :
ALOC R1 R2 R3 R4 NECESIDAD R1 R2 R3 R4
P0 0 1 0 0 P0 0 0 0 0
P1 2 0 0 1 P1 2 0 2 0
P2 3 0 3 0 P2 0 0 0 0
P3 2 1 1 1 P3 1 0 0 0
P4 0 0 2 0 P4 0 0 2 1
DISPONIBLE < 0 0 0 0 >
a) Pruebe que el sistema se encuentra en estado seguro
b) Si se altera la matriz de necesidad para reflejar que el proceso P2 puede solicitar una instancia más del recurso R3. Interprete esta nueva matriz como la matriz de REQUERIMIENTO/ESPERA y pruebe ahora si el sistema está en deadlock. De estarlo indique los procesos involucrados en el deadlock.
Secuencia Segura: P0, P2, P1, P3, P4
Podemos ejecutar P0 pero despues el sistema se queda blockeado pues no podemos ejecutar ningun otro proceso. Los procesos en deadlock son P1, P2, P3, y P4 pues todos esperan un recurso que lo tiene una persona de ese mismo grupo.

Para mas informacion ver Capítulo 17 - Abrazo Mortal - Deadlock: Pagina 5, 7.


==Ejercicio 11== En una instalación en un momento dado se produce la siguiente espera circular:
Indique si el sistema se encuentra en Deadlock. De dos respuestas posibles y justifique ambas.
Si los recursos R4 y R5 y R2 tienen una sola instancia, luego el sistema esta en deadlock pues los 3 procesos esperan un recurso que tiene otro proceso dentro del mismo conjunto, y nunca reciviran.
Supongamos ahora que R4 tiene 2 instancias, una utilizada por P2, y una por un proceso P3. Y P1 solo necesita una instancia mas para terminar. Puede pasar luego, que P3 termine, libere el recurso, y P1 con ese recurso pueda continuar y terminar, rompiendo asi la dependencia circular.

Para mas informacion ver Capítulo 17 - Abrazo Mortal - Deadlock: Pagina 4.
==Ejercicio 12== De por lo menos dos razones para que en una instalación no se utilice el algoritmo del Banquero para prevenir deadlocks. NOTA: No es considerada válida la no utilización por causa del overhead del método.
El sistema es monoprogramacion, por lo que no tiene sentido tal algoritmo.
El sistema utiliza otros metodos para evitar deadlocks, como ser recursos totalmente compartibles, recursos desalojables, recursos que solo se pueden adquirir en cierto orden creciente (impide deadlocks).
El sistema utiliza un metodo para recuperacion de deadlocks, como el de checkpoints.
Los programas han sido testeados y demostrados correctos entre si, por algun metodo arbitrario, el cual demuestra que es imposible que se produzca un deadlock entre dichos programas.
Se ha dedicido que es mejor simplemente matar a los procesos cuando se produce un deadlock.
O simplemente se ha decidido ignorarlos.

Para mas informacion ver Capítulo 17 - Abrazo Mortal - Deadlock: Pagina 4.


==Ejercicio 13== a) Genere un grafo de precedencia para Si con i = 1 a 6 que pueda ser expresado con fork/join y no con parbegin/parend. Justifique
b) Idem anterior pero que no pueda ser expresado con fork/join y sí con parbegin/parend. Justifique.
PREGUNTAR el punto B.
a. Ver Capítulo 19 - Procesos Y Programacion Concurrentes: Pagina 7.
b. No existe. Con fork/join se puede representar cualquier cosa que se puede con parbegin/parend.
Para mas informacion ver Capítulo 19 - Procesos Y Programacion Concurrentes: Pagina 5.


==Ejercicio 14== Diseñe las estructuras de lenguaje y los valores iniciales de las variables para implementar exclusión mutua con: a) Semáforos b) Monitores
PREGUNTAR


==Ejercicio 15== Para el siguiente grafo de precedencia se muestran dos programas que lo resuelven. Uno o ambos de esos programas son incorrectos. Justifique el porqué.
S1 S1
Begin C1 = 2
Parbegin FORK L1
S2 S5
S3 C2 = 2
S4 FORK L2
S5 S8
Parend GO TO JUNTOC2
Parbegin L2: S9
S6 JUNTOC2: JOIN C2
S7 S11
S8 GO TO JUNTO C1
S9 L1: C3 = 2
Parend FORK L3
Parbegin S4 ; S7
S10 GO TO JUNTOC3
S11 L3: C4 = 2
Parend FORK L4
End S2
S12 GO TO JUNTOC4
L4 : S3
JUNTOC4: JOIN C4
S6
JUNTOC3: JOIN C3
JUNTOC1: JOIN C1
S10
S12


S1 S1
Begin C_12 = 2
Parbegin FORK L_4
S2 S5
S3 C_11 = 2
S4 FORK L_9
S5 S8
Parend GO TO J11
Parbegin L_9: S9
S6 J11: JOIN C_11
S7 S11
S8 GO TO J12
S9 L_4: C_10 = 2
Parend FORK L_2
Parbegin S4
S7
S10 GO TO J10
S11 L_2: C_6 = 2
Parend FORK L_3
End S2
S12 GO TO J6
L_3: S3
J6: JOIN C_6
S6
J10: JOIN C_10
J12: JOIN C_12
S10
S12
PREGUNTAR