E. U. de Informática Departamento de Informática Aplicada Examen Final de Sistemas Operativos I EJERCICIO 1 15 de Junio de 1996 SOLUCIÓN Un ordenador tarda 1000 mseg. en ejecutar un programa teniendo la CPU dedicada. Para ejecutar 3 programas de 1000 mseg. cada uno en el mismo ordenador con una planificación de Tiempo Compartido, ¿cuánto se tardaría en ejecutar los 3 programas completos? a) < 3000 mseg. b) = 3000 mseg. c) > 3000 mseg. Razonar la respuesta. Se tardaría más de 3000 mseg. pues además del tiempo de CPU necesario para ejecutar las instrucciones de los procesos, hay que añadir el tiempo necesario para realizar los cambios de contexto que tienen lugar durante la ejecución de los tres programas para compartir el procesador repartido en el tiempo. El mecanismo más simple para proteger las regiones críticas es mediante la inhibición de interrupciones, sin embargo, no se suele utilizar, ¿por qué? Si la región crítica no es corta, se pueden perder interrupciones. Inhibiendo interrupciones no solamente se impide que otro proceso cooperante que desee entrar en la región crítica pueda continuar su ejecución, sino que también se impide que prosigan el resto de los procesos que no van a intentar entrar en la misma región crítica. Este sistema no es válido en entonos multiprocesador, pues la inhibición de interrupciones no afecta a todos los procesadores. Es peligroso darle al usuario este medio, pues un error en su programa puede hacer que se queden las interrupciones inhibidas indefinidamente, con lo que el sistema se iría al traste. Indicar las ventajas de poder tener solamente alguna parte de un programa en memoria para ejecutarlo. El tamaño de un programa no está limitado por la cantidad de memoria principal. Ya que para ejecutar un programa puede necesitarse menos memoria de la que ocupa su tamaño total, se pueden cargar más programas simultáneamente, es decir, se aumenta el grado de multiprogramación, con la consiguiente mejora en el aprovechamiento de la CPU. ya que de cada programa solamente hay que cargar la parte necesaria en un momento dado, a la hora de cargar un proceso o expulsarlo a disco se requieren menos operaciones de E/S, con lo que se consigue una ejecución global más rápida. ¿Qué problemas pueden plantear las operaciones de E/S Memoria? ¿Qué soluciones hay? en los sistemas con Intercambio de Se producen problemas cuando se saca de memoria a un proceso en espera de una operación de E/S, pues la dirección del buffer en el momento de la petición de E/S puede no coincidir con la dirección asignada al volver a cargarlo en memoria una vez finalizada la operación de E/S. Soluciones: 1. No sacar de memoria un proceso en espera de una operación de E/S. 2. Que las operaciones de E/S se realicen en primer lugar sobre buffers del sistema operativo, en lugar de hacerlo directamente sobre el buffer indicado por el usuario. En la asignación de espacio de disco para ficheros, existen varias alternativas. ¿Cuál utilizarías para cada uno de los siguientes casos, teniendo en cuenta que los fichero son de tamaño fijo? a) Los ficheros suelen ser pequeños y son accedidos secuencialmente. Asignación Contigua b) El tamaño medio de los ficheros es grande y normalmente se accede secuencialmente. Asignación Encadenada c) Los ficheros suelen ser grandes y con acceso al azar. Asignación Indexada En un disco, la asignación de espacio contigua, enlazada e indexada ¿puede tener fragmentación interna o externa? a) Contigua: Fragmentación Externa e Interna (en el último bloque de cada fichero). b) Enlazada: Fragmentación Interna (en el último bloque del fichero). c) Indexada: Fragmentación Interna (en el último bloque del fichero y en su bloque de índices).