Sistemas Operativos Convocatoria de julio, 1994/1995 Primera parte 1 (2½ puntos) En un sistema informático existe una jerarquía de memorias, es decir, varios soportes de almacenamiento, unos más rápidos, caros y escasos; otros, más lentos, baratos y abundantes (ej. memoria RAM vs. disco). Explique la influencia que puede tener esta jerarquía de memorias a la hora de diseñar un sistema operativo. Apoye su argumentación con ejemplos en la gestión de la memoria, entrada/salida y sistemas de ficheros. 2 (2½ puntos) Conteste las siguientes cuestiones sobre gestión de memoria: a) Mencione tres ejemplos de algoritmos que no favorezcan el cumplimiento del Principio de Localidad. b) Describa apoyándose en un ejemplo la anomalía de Belady. c) Para los siguientes esquemas de gestión de memoria: Segmentación, Paginación, Segmentación/Paginación ¿cómo se podría llevar a cabo la compartición de memoria? 3 (2½ puntos) Diseñe un sistema concurrente en el que un proceso servidor atiende peticiones de otros procesos clientes, que las realizan a través de dos funciones cuyos prototipos en pseudo-C serían: void escribe_variable ( int nuevo_valor ); int lee_variable (); El proceso servidor contendrá una variable entera interna, inicializada a cualquier valor. La petición de escribe_variable deposita el valor nuevo_valor en la variable del servidor. La función lee_variable retorna el valor actual de esa variable (o por lo menos el que tenía en el momento de atenderse la petición). Las peticiones deben resolverse evitando en lo posible los problemas de exclusión mutua, postergación indefinida o interbloqueo de la forma más eficiente. En cualquier caso, la sincronización entre procesos se efectuará mediante semáforos convencionales (operaciones signal/wait o P/V). Suponga que está disponible un tipo de datos Semáforo. Suponga además que todos los procesos comparten el mismo espacio de memoria (o sea, que comparten las variables). Así pues, tiene que diseñar las funciones lee_variable, escribe_variable y el algoritmo del proceso servidor. NOTA: se le pide un diseño algorítmico, por lo que no está obligado a utilizar un lenguaje concreto. PISTA o SUGERENCIA: si lo cree conveniente, puede crear semáforos locales en cualquier punto del programa, tomar su dirección en un puntero o definir vectores de semáforos. 4 (2½ puntos) TEST. En cada uno de los 15 apartados numerados, señale cuál opción es correcta. En caso de que existan varias opciones ciertas, se considerará como correcta la más completa o precisa. La puntuación absoluta de esta pregunta se establecerá a partir de la fórmula puntuación = 1/6 x respuestas correctas - 1/18 x respuestas erróneas Observe que las preguntas no contestadas no puntúan, y que las contestadas erróneamente penalizan. Señale con bolígrafo sus respuestas sobre estas hojas de enunciado, rodeando la letra de la opción correcta con un redondel. Si se equivoca, enmiende la respuesta con una tachadura en la opción incorrecta y rodee la letra que considere correcta. Las preguntas respondidas con lápiz o con múltiples redondeles no tachados se considerarán no contestadas. 1. ¿Cuál de estas instrucciones sólo se debería ejecutar en modo privilegiado? a) Inhabilitar las interrupciones b) Leer el valor del reloj c) Leer los vectores de interrupción d) Escribir en un área de memoria de otro proceso 2. La afirmación de que un sistema operativo es un programa dirigido por eventos implica que a) responde a interrupciones b) atiende eventos generados por los periféricos c) atiende eventos generados por los programas d) son ciertas todas las anteriores 3. Considere un semáforo cuyo valor actual es 3. Una operación de V ó signal sobre el mismo... a) Dejará un valor de 2 en el semáforo b) Dejará un valor de 4 en el semáforo c) Dejará un valor de 4 en el semáforo, excepto si existían procesos en espera por el mismo, en cuyo caso quedará con 3. d) Dejará un valor de 4 en el semáforo y despertará a uno de los procesos en espera, si lo hay, en cuyo caso quedará con valor 3. 4. Las regiones críticas condicionales no permiten a) sincronizar procesos concurrentes b) realizar todas las funciones de las que son capaces los semáforos c) especificar procesos concurrentes d) trabajar con datos compartidos 5. Una planificación de procesos SJF a) minimiza el tiempo de espera máximo de un proceso b) reparte uniformemente el tiempo de CPU de los procesos c) exige el conocimiento de la duración en CPU de los procesos d) todas las anteriores son ciertas 6. Un sistema operativo distribuido pretende a) Reforzar las medidas de seguridad sobre usuarios b) Favorecer la compartición de recursos c) Centralizar la administración de recursos dispersos o distribuidos d) Todas las anteriores son ciertas 7. ¿Cuál de estos sucesos genera siempre una excepción? a) Fallo de página b) Llamada a procedimiento c) Escritura en memoria d) Cambio a modo no privilegiado (modo usuario) 8. Las llamadas al sistema... a) son algunos de los servicios del sistema b) algunas de ellas son servicios del sistema c) son los servicios del sistema disponibles d) son formas de acceder a los servicios del sistema 9. Respecto al problema de la exclusión mutua, el empleo de instrucciones atómicas a) disminuye el riesgo de la postergación indefinida de procesos b) permite reducir la complejidad de los algoritmos para resolver el problema c) evita las ineficiencias por espera activa d) no afecta de modo sustancial al problema 10. Los semáforos son herramientas de a) comunicación entre procesos b) sincronización entre procesos c) planificación de procesos d) todas las anteriores son ciertas 11. Los monitores son herramientas que a) incorporan la abstracción de tipos de datos b) permiten la compartición de datos por procesos concurrentes c) permiten sincronizar procesos concurrentes d) todas las anteriores son ciertas 12. Una planificación de procesos no expulsiva (non-preemptive) a) impide la aparición del efecto convoy b) combinada con un temporizador, permite dar soporte a sistemas de tiempo compartido c) impide garantizar tiempos de espera uniformes d) posterga a los procesos de menos prioridad, a no ser que se utilice envejecimiento (aging) 13. Si en un Round-Robin se hace más pequeño el cuanto de tiempo, a) se pierde menos tiempo en tareas improductivas b) tiende a aumentar el número medio de cambios de contexto c) tiende a aumentar el tiempo de respuesta d) todas las anteriores son falsas 14 La diferencia entre un método multicola sin realimentación y otro método multicola con realimentación es a) que la realimentada está mejor alimentada b) que la no realimentada está a dieta c) que la realimentada permite la circulación de procesos entre colas d) todas las anteriores son falsas 15 Un sistema operativo a) gestiona los recursos de un sistema informático b) ofrece programas de aplicación para hacer más cómodo el uso del sistema c) protege a los usuarios de operaciones indebidas por parte de otros usuarios d) incrementa la capacidad disponible en la CPU para ejecutar procesos El tiempo de realización de esta prueba es de dos horas. Razone adecuadamene sus respuestas. No dé por supuesto nada: sea lo más claro posible y no deje lagunas a la libre interpretación del evaluador.