Parcial II de Sistema de Operación – Semestre 201415

337 views

Published on

Published in: Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
337
On SlideShare
0
From Embeds
0
Number of Embeds
85
Actions
Shares
0
Downloads
3
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Parcial II de Sistema de Operación – Semestre 201415

  1. 1. Universidad Católica Andrés Bello Facultad de Ingeniería Escuela de Ingeniería Informática Sistemas de Operación Prof. Viviana Trujillo Parcial II 1 De tín marín En cada uno de las siguientes preguntas, señale cuál opción es correcta. Señale sus respuestas rodeando con un círculo la opción correcta. Si se equivoca, tache la respuesta incorrecta y rodee la opción que considere correcta. Escriba con tinta. Las preguntas respondidas con lápiz o con varios círculos no tachados se considerarán no contestadas. Factor de corrección: 1 mala elimina una buena. 1. Dentro de una región crítica: (a) Todo proceso que se ejecute fuera de su región crítica puede bloquear otros procesos. (b) Un proceso tiene que esperar para siempre para entrar a su región crítica. (c) Puede haber dos procesos de manera simultánea dentro de las regiones críticas. (d) No pueden hacerse suposiciones acerca de las velocidades o el número de CPUs. 2. Tenemos varios procesos que intentan acceder a secciones críticas sobre una zona de datos, y observamos que el algoritmo sólo funciona bien cuando hay tres o más procesos interesados en entrar en su sección crítica al mismo tiempo: si sólo hay dos procesos intentando entrar en la sección crítica, el algoritmo los deja esperando hasta que se incorpora un tercero. En este caso, este algoritmo es: (a) Válido, suponiendo que aparte de esta incidencia, cumple con la exclusión mutua, progreso y espera indefinida. (b) Inválido, no cumple la condición de progreso. (c) Inválido, no cumple la condición de espera indefinida. (d) Inválido, no cumple la condición de exclusión mutual. 3. Indique que opción es falsa en relación con los pipes. (a) Si el pipe está vacío, el lector se queda bloqueado hasta que algún escritor escriba en la misma. (b) Las operaciones de lectura pueden tener tamaños distintos a las operaciones de escritura. (c) Dos procesos que quieren comunicarse ejecutan ambos la llamada pipe. (d) El escritor puede escribir en el pipe aunque el lector no haya ejecutado una lectura del mismo. 1
  2. 2. 4. ¿El problema de la sección crítica puede ser resuelto con semáforos? (a) Depende de cómo estén implementados los semáforos. (b) Nunca. (c) Siempre. (d) Todas las anteriores son falsas. 5. Si una solución al problema de la sección crítica da lugar a inanición, entonces no cumple la condición: (a) Exclusión mutua. (b) Espera limitada. (c) Progreso. (d) Todas las anteriores son falsas. 6. En un sistema multihilo, (a) Los cambios de contexto entre hilos de un mismo proceso pesado son en general más costosos que los cambios de contexto entre hilos de diferentes procesos pesados. (b) Los hilos pueden estar soportados e implementados por el propio sistema operativo o bien pueden ser implementados a nivel de usuario. (c) Los hilos de un mismo proceso pesado comparten las variables globales y por tanto la comunicación entre ellos se puede realizar mediante la pila. (d) Todas las anteriores son ciertas. 7. ¿El problema de la sección crítica puede ser resuelto con semáforos? (a) Depende de cómo estén implementados los semáforos. (b) Nunca. (c) Siempre. (d) Todas las anteriores son falsas. 8. El bloque de control de proceso (BCP) contiene, al menos: (a) El grado de multiprogramación de un proceso. (b) El código, los datos y la pila de un proceso. (c) El estado y el identificador de un proceso. (d) Todas las afirmaciones anteriores son correctas. 9. Indique las opción que considere verdadera acerca de los mecanismos de sincronización de procesos. (a) Cualquier mecanismo es válido sobre cualquier plataforma. (b) La espera activa es el mecanismo más ineficiente en el uso de la CPU. (c) Con semáforos nunca se puede dar un interbloqueo. 10. Se ejecutan consecutivamente dos operaciones P o WAIT sobre un semáforo. ¿ Es esto posible? (a) Si. (b) No, si las ha realizado un solo proceso. 2
  3. 3. (c) No. (d) Si, siempre que no hayan sido procesos diferentes. 11. Un FIFO: (a) No existen en el Filesystem. (b) Sirve sólo para intercambio entre procesos relacionados entre sí. (c) Es equivalente a un archivo. (d) Es un Inode en memoria. 12. ¿Qué cambio de contexto tardará menos? (a) El producido entre dos hilos del mismo proceso implementados en el espacio de usuario. (b) El producido entre dos hilos de procesos distintos implementados en el espacio de usuario. (c) el producido por dos hilos del mismo proceso implementados en el núcleo. (d) El producido por dos hilos de distintos procesos implementados en el núcleo. 13. Cuando realizamos una operación V sobre un semáforo: (a) Se despertará siempre al primer proceso que realizó una operación P. (b) Ningún otro proceso puede estar en mitad de la ejecución de otra operación V sobre dicho semáforo, aunque si es posible que exista otro proceso en mitad de la ejecución de una operación P sobre el mismo semáforo. (c) En caso de existir algún proceso bloqueado, se despertará a uno de ellos según la política definida en la implementación del semáforo. (d) Todas las anteriores son ciertas. 14. ¿Cuál de las siguientes afirmaciones acerca de la llamada al sistema exec es falsa? (a) Permite ejecutar instrucciones con cualquier número de argumentos. (b) Si funciona bien, devuelve 0. (c) Puede cambiar el identificador efectivo de usuario. (d) Solo retorna si da error. 15. Las llamadas “instrucciones atómicas” del hardware: (a) Facilitan la implementación de algoritmos de sección crítica y de sincronización entre procesos. (b) Dependen del Opo de procesador, ya que hay instrucciones Opo Mesa y otras Opo Hoare. (c) Permiten soluciones universales a los problemas de sincronización, ya que están disponibles en cualquier procesador. (d) Evitan que exista interbloqueo en los algoritmos de sección crítica. 16. Cuando se crea un nuevo hilo, éste tiene acceso a: (a) Una copia del segmento de datos del proceso. (b) No tiene acceso al segmento de datos del proceso. (c) El segmento de datos del proceso. (d) El segmento de datos del proceso pero marcándolo preciamente como copy-on-write. 17. Cuál de los siguientes atributos es compartido entre todos los hilos de un mismo proceso: 3
  4. 4. (a) Una pila de ejecución. (b) Un estado de ejecución. (c) Un contexto de ejecución donde salvar cuando no se esté en ejecución. (d) Un código ejecutable. 2 Conciso pero profundo Responda con brevedad y precisión a las siguientes preguntas. 1. ¿Qué es la espera activa? 2. ¿Qué tipo de información guarda un semáforo, si es que guarda alguna? ¿Por qué cree que se estudian los semáforos en la asignatura de Sistemas Operativos? 3. ¿Qué ventajas tiene poder declarar hilos dentro de un proceso pesado? 4. Estamos desarrollando un shell. Necesitamos escribir el código que lanza el programa que el usuario le encarga ejecutar al shell. Para ello podemos elegir entre lanzar un nuevo hilo, o bien lanzar un nuevo proceso pesado. ¿Cuál de las dos opciones le parece más adecuada? 5. Cuando un proceso ejecuta una operación V sobre un semáforo y hay varios procesos esperando por ese semáforo, ¿Cuál o cuáles de los procesos en espera se desbloquea? ¿Uno al azar? ¿El más antiguo? ¿El de más prioridad? ¿Todos los procesos? 6. ¿Es un proceso un archivo ejecutable? 7. ¿Qué información, entre otras cosas, comparten un proceso A y su hijo B después de ejecutar el siguiente código? Proceso A if (fork() != 0) wait (&status); else execve (B, parámetros, 0); 8. Dados los siguientes procesos y sus respectivas secuencias de código, indica si existiría o no situación de interbloqueo y explica por qué. En cualquier caso, indica también la salida por pantalla y el valor final de los semáforos. Supón que inicialmente todos los semáforos tienen valor cero. 9. A continuación se muestra una propuesta de solución al problema de la sección crítica. ¿Crees que es una propuesta válida? Justifica tu respuesta. 4
  5. 5. //Variables globales e inicializaciones var esperando: array[0..n-1] of boolean; //inicializada en false m: boolean; //inicializada a false Proceso Pi llave: boolean; //inicializada en false j: integer; begin repeat SECCION NO CRITICA esperando[i]:= true; llave:= false; repeat llave:= Test_and_Set(m); until (not esperando[i] or llave); esperando[i]:= false; SECCION CRITICA j:= (i+1) mod n; while (j<> I and not esperando[j]) do j:= (j+1) mod n; if (j=i) then m:= false; else esperando[j]:= false; until false end. 10. A continuación se muestra una propuesta de solución al problema de la sección crítica para n procesos. ¿Crees que es una propuesta válida? Justifica tu respuesta. var eleccion: array [0..n-1] of boolean numero: array [0..n-1] of integer j: 0..n repeat eleccion[i] = true; numero[i] = min(numero[0],numero[1],...,numero[n-1])+1; eleccion[i] = false; for j:=0 to n-1 do begin while eleccion[j] do no-operar; while numero[j] !=0 and (numero[j],j)<(numero[i],i) do no-operar end; SECCION CRITICA numero[i] := 0; SECCION RESTANTE until false 5
  6. 6. 3 Bono Explicar de que se trata el problema de los filósofos comensales y dar una solución con monitores. 4 Nota 27 Preguntas = 0,74 c/u. Bono = 2 ptos. 6

×