Sistemas Operativos II CONVOCATORIA ORDINARIA Escuela Universitaria de Informática / Facultad de Informática • • • • • APELLIDOS NOMBRE DNI FIRMA 25 de junio de 1999 No desgrape las hojas. Conteste exclusivamente en los espacios reservados para tal fin. Utilice el reverso de cada hoja para sus anotaciones. Emplee letra clara y legible y responda de forma breve y precisa. El examen consta de 21 cuestiones, que valen 0.33 puntos cada una y dos problemas de 1.5 puntos. De entre todos los esquemas de gestión de memoria estudiados (tanto con asignación contigua como con asignación dispersa), indique cuáles cumplen cada una de las siguientes características: 1 a) Posibilidad de compartir memoria: Segmentación, paginación, segmentación paginada b) Presentan fragmentación externa: segmentación, particiones variables En un PC con un Intel Pentium (páginas de 4 Kbytes), tres procesos P1, P2 y P3 han emitido algunas direcciones lógicas que la MMU ha traducido en sus direcciones físicas asociadas. Asuma que los tres procesos están en memoria y que no se utiliza memoria virtual ni intercambio. Indique qué tipo (o tipos) de gestión de memoria pueden utilizarse en ese sistema para que se haya podido dar esa traducción, cuando los tres procesos emitan la misma dirección lógica. Elija entre: segmentación, paginación, segmentación paginada e imposible (la traducción no puede llevarse a cabo suponiendo que los tres procesos están a la vez en memoria). Dirección lógica: (0, 5120) 2 segmentación Dirección lógica: (0, 17080) 3 Direcciones físicas: P1: 6000, P2: 18000, P3: 40960 Direcciones físicas: P1: 4792, P2: 17080, P3: 33464 Segmentación paginada En un sistema de gestión de memoria segmentado-paginado se tiene una MMU donde únicamente se permiten 8 segmentos por proceso y se emplean dos niveles de paginación, implementando ambos en memoria principal. La tabla de segmentos se ha implementado en registros, con un tiempo de acceso igual a 2 ns. El tiempo de acceso a memoria (TAM) es igual a 20 ns. Para mejorar el rendimiento, se tiene un conjunto de registros asociativos (TLB), donde se guarda como clave tanto el número de segmento como los dos números de página. El tiempo de acceso para estos registros asociativos es igual a 10 ns. Indique cuál será el tiempo de acceso efectivo (TAE) de este sistema, si las direcciones lógicas a traducir se encuentran en el TLB en el 90% de los accesos. 4 Taef= (Tam+Ttlb)tasa_acier+(1-tasa_acier)(3Tam+Ttlb+Treg) Taef= (20+10) 0.9 +(0.1)(60+10+2)= 27+7.2=34.2 Se tiene un sistema de gestión de memoria virtual basada en segmentación paginada por demanda, donde existen dos procesos A y B. Las direcciones lógicas tienen 18 bits, el tamaño de página es 1Kb y cada proceso puede llegar a tener 4 segmentos. Las direcciones físicas son de 12 bits. La memoria física se encuentra inicialmente vacía y se da la siguiente secuencia de direcciones: (A, 0, 800) (B, 1, 3000) (B, 0, 28202) (A, 1, 0) (B, 3, 782) (B, 1, 2048) (A, 0, 523) (B, 0, 27990) (A, 0, 121) Indicar cuál es el contenido final de la memoria, si se utiliza un algoritmo de reemplazo: a) LRU local. 5 Marco 0=(A,0,0); Marco 1=(B,0,27); Marco 2=(B,1,2); Marco 3=(A,1,0) b) óptimo global. 6 Marco 0=(A,0,0); Marco 1=(B,1,2); Marco 2=(B,0,27); Marco 3=(B,3,0); En un sistema se sabe que, con su carga normal, habitualmente se da hiperpaginación. Marque cuáles de las siguientes acciones podrían llevarse a cabo para que no se dé este problema con una V y con una F las que no solucionarían el probema : 7 F Añadir otra partición al espacio de intercambio. V Impedir que se incremente el grado de multiprogramación cuando queden pocos marcos libres. F Sustituir el disco por otro con menor tiempo de acceso. V Extraer de la memoria (swap out) algunos procesos cuando la tasa de fallos de página supere cierto límite. F Sustituir la MMU por otra que admita espacios lógicos de mayor tamaño. En un disco con algún formato UNIX, se tienen los siguientes ficheros: /usr/X11/bin/xinit /usr/X11/bin/xemacs /usr/bin/as /usr/bin/awk /usr/man/man1/as.1 /usr/man/man1/awk.1 Indique cuál es el número mínimo de enlaces físicos que tendrá el directorio /usr y qué entradas de directorio originan cada uno de esos enlaces. 2 8 5 enlaces físicos /usr /usr/. /usr/X11/.. /usr/bin/.. /usr/man/.. Asumiendo que el directorio de trabajo actual del intérprete de órdenes es /usr/man/man1, dé el nombre de ruta relativo más corto posible para hacer referencia al fichero /usr/X11/bin/xinit. 9 ../../X11/bin/xinit Indique el número de bloque donde comienzan cada una de las áreas de un disquete de 1.44 MB en MINIX, después de utilizar la orden mkfs.minix -n14 /dev/fd0. Asúmase un número de 480 nodos-i con un tamaño de 32 bytes cada uno, zonas de 1024 bytes y entradas de directorio de 16 bytes. 10 Arrq B0 Super B1 Mapa Nodos-i B2 Mapa Zonas B3 Nodos-i B4...B18 Datos B19............B1439 Suponga que un disco con 200 cilindros, numerados de 0 a 199, esta sirviendo una petición sobre el cilindro 143 tras terminar de servir una en el cilindro 125. La cola de peticiones contiene los siguientes números de cilindro: 86, 147, 91, 177, 94, 180, 181, 118. Indique para los algoritmos de planificación LOOK y C-SCAN el número de cilindros recorridos para atender dicha secuencia de solicitudes. 11 LOOK = 133 C-SCAN = 373 Implementar un shell script cuya misión principal sea lanzar cada 5 minutos el programa “/bin/estadísticas” cuya salida se vuelca al fichero “/tmp/estad”. En caso de interrupción del shell script, este deberá mover el fichero de salida al directorio inicial de trabajo del usuario. 12 trap ´mv /tmp/estad $HOME; exit´ 2 1 15 while sleep 300 do /bin/estadisticas > /tmp/estad done 3 ¿Cuántos bloques de datos y cuántos nodos-i ocupa un fichero vacío en UNIX ¿ 13 Bloques de datos = 0 bloques Nodos-i = 1 nodo-i Partiendo de la existencia de un archivo denominado fich1, que se creó ejecutando la orden echo “hola” >fich1 Indique el contenido del primer bloque de datos de los ficheros que se crean en los siguientes casos: • ln –s fich1 fich2 • ln fich1 fich3 14 Contenido de fich2 = fich1 Contenido de fich3 =contenido de fich1 ya que son el mismo fichero = hola Indique la secuencia de bloques de datos que ocupa el directorio "so2" en los casos siguientes: § Disco con un sistema de archivos MS-DOS. Nombre so2 Entrada de directorio FAT 0 XX 1 XX 2 EOF 3 20 4 2 ... ... ... XX 17 21 Ptr. 1r blq. 17 .. .. 20 4 21 25 XX 22 23 23 24 24 EOF 25 26 26 27 27 22 .. .. 15 Bloques de datos del directorio so2 =17,21, 25,26, 27, 22, 23, 24 § Disco con un sistema de archivos Unix (Minix). Nodo-i 17 Entrada de directorio Nodo-i Atributos 17 XX Blq. 17 Blq. 18 35 40 Nombre So2 Ptr. 1 Ptr. 2 Ptr. 3 Ptr. 4 Ptr. 5 Ptr. 6 Ptr. 7 17 21 25 26 27 22 23 36090 37000 404 1024 11400 365 715 840 980 9086 Ptr. S. Indirecto 18 Ptr. D. Indirecto - 40567 64500 10567 16 Bloques de datos del directorio so2 =17,21, 25,26, 27,22, 23,40 Teniendo en cuenta las características utilizadas en las prácticas 3 y 4 de construcción de un simulador de gestión de memoria. 4 Indíquese qué elementos se han de evaluar a la hora de comprobar si una dirección pertenece al espacio de un proceso bajo un sistema de gestión de memoria virtual basado en paginación por demanda. 17 Tamaño del proceso o número de páginas que ocupa el proceso Indíquese qué elementos se han de evaluar a la hora de comprobar si una página está en memoria física. 18 El bit de validez en la tabla de páginas Se dispone de un disco de 10 cabezales, 512 cilindros y 512 bytes por sector, con una capacidad total de 100 MB. Indique el número de bloques por pista en los siguientes casos: 19 a) 2 sectores por bloque lógico = 20 bloques lógicos por pista, total 40 sectores b) 5 sectores por bloque lógico = 8 bloques lógicos por pista, total 40 sectores Dado el bloque lógico 56, obtener las direcciones CHS (cilindro, cabezal, sector), teniendo en cuenta que 5 sectores forman un bloque lógico. 20 Cilindro 0, cabezal 7, sectores 0,1,2,3,4 Dado el siguiente listado del contenido de un directorio UNIX: -rwsr--r-x -r---w----rw----r-- 1 calif grupo1 1 calif grupo1 1 calif grupo1 1014 May 17 11:10 miprog 14487 Jun 25 09:11 datos 2099 Jun 25 08:49 punt2 Y los usuarios “ramon” (perteneciente al grupo “grupo1”), “marta” (perteneciente al grupo “grupo3”) y “juan” (perteneciente al grupo “grupo2”). Indique, de entre los tres usuarios citados, quienes podrán utilizar el programa “miprog”, y con él, procesar la información existente en los ficheros “datos” y “punt2” (para ello, únicamente se necesita leer el contenido de ambos ficheros). 21 Grupo 1, no puede ejecutar miprog Grupo 2 y 3 pueden ejecutar miprog y leer en ejecución los ficheros datos y punt2. 5 PROBLEMA 1 Sea un sistema de memoria virtual basado en segmentación paginada por demanda. El tamaño de marco es de 1024 bytes, las direcciones lógicas son de 15 bits y las direcciones físicas son de 13 bits. a) Teniendo en cuenta que en dicho sistema un segmento ha de poder ser ubicado totalmente en memoria. Indique el tamaño máximo de segmento en páginas, así como el número máximo de segmentos por proceso con dicho tamaño de segmento. a) Tamaño máximo de segmento en páginas = 8 páginas Número de segmentos con tamaño máximo por proceso = 4 b) Dicho sistema trabaja con una única tabla de páginas por proceso, en la que aparecen en primer lugar todos los descriptores de página del segmento 0, a continuación los del segmento 1, etc.. En un instante dado existen dos procesos ejecutándose en el sistema P1 y P2 con parte de sus segmentos en memoria. Teniendo en cuenta que el contenido de la memoria principal es el que se indica en la siguiente tabla: Memoria Principal Núm. marco contenido 0 (P2, 0, 3) 1 (P2, 3, 1) 2 (P1, 3, 2) 3 (P1, 0, 2) 4 (P2, 1, 3) 5 (P1, 1, 3) 6 (P1, 2, 1) 7 (P2, 2, 2) Página Segmento Proceso con el formato (proceso, segmento, página) y considerando que la última dirección solicitada por cada uno de los procesos hace referencia a la última página de los respectivos segmentos, dicha última página sólo contiene 500 direcciones válidas. Indique el contenido de las tablas de segmentos y de las tablas de páginas. (Nota: para que sea menos tedioso se proporcionan las tablas a rellenar). Proceso P 1 Tabla de segmentos Número de Tamaño Base segmento 0 1 2 3 2548 3572 1524 2548 0 3 7 9 Tabla de páginas marco Bit validez 0 1 2 3 4 5 6 7 8 9 10 11 3 5 6 2 i i v i i i v i v i i v 6 Proceso P 2 Tabla de segmentos Número de Tamaño Base segmento 0 1 2 3 3572 3572 2548 1524 0 4 8 11 Tabla de páginas marco Bit validez 0 1 2 3 4 5 6 7 8 9 10 11 12 0 4 7 1 i i i v i i i v i i v i v C) En dicho sistema se solicita una secuencia de accesos a páginas por parte de 3 procesos P1, P2 y P3 dentro de su espacio lógico de direcciones, como se muestra en la siguiente tabla. El último acceso indica que el proceso termina, lo que implica que sus páginas deben ser eliminadas de memoria en ese instante. Proceso P1 P2 P3 (seg,pag) (0,1) (2,2) (0,0) (seg,pag) (1,2) (2,2) (0,0) (seg,pag) (3,0) (2,1) (1,0) Terminado Terminado Terminado El sistema atiende a los procesos siguiendo un turno rotatorio, de tal forma que permite a un proceso emitir una dirección y luego se lo permite al siguiente. Ejemplo: (P1, 0,1), (P2,2,2), (P3,0,0), (P1,1,2) ...... Para controlar el número de páginas que deben residir en memoria por cada proceso, se decide utilizar un modelo de área activa, empleando 4 referencias. La estrategia utilizada es la siguiente: • • • • • Siempre se asigna el marco más bajo que haya libre. Cada vez que se solicita un nuevo acceso a memoria por parte de un proceso, se calcula su área activa teniendo en cuenta dicha solicitud. Sólo deben estar presentes en memoria las páginas que forman las áreas activas de todos los procesos, siempre y cuando exista disponibilidad de memoria física. Por tanto, se han de sacar de memoria aquellas que no formen parte del área activa calculada. Si al calcular el área activa de un proceso P, se detecta que no hay suficiente memoria física, el proceso es suspendido. Cuando se produzca nueva disponibilidad de memoria física, debe cargarse en memoria el área activa del primer proceso que se encuentre suspendido Complete la tabla siguiente a partir de un instante en que el estado de la memoria física está completamente ocupada (como se muestra en la tabla) teniendo en cuenta el esquema propuesto y la secuencia de accesos complete la siguiente tabla: 7 Proc Seg. . P2 0 Pág. Marco 0 Marco 1 Marco 2 Marco 3 Marco 4 Marco 5 Marco 6 Marco 7 3 P2, 0, 3 P2 3 1 P2, 0, 3 P2, 3, 1 P1 3 2 P2, 0, 3 P2, 3, 1 P1, 3, 2 P1 0 2 P2, 0, 3 P2, 3, 1 P1, 3, 2 P1, 0, 2 P2 1 3 P2, 0, 3 P2, 3, 1 P1, 3, 2 P1, 0, 2 P2, 1, 3 P1 1 3 P2, 0, 3 P2, 3, 1 P1, 3, 2 P1, 0, 2 P2, 1, 3 P1, 1, 3 P1 2 1 P2, 0, 3 P2, 3, 1 P1, 3, 2 P1, 0, 2 P2, 1, 3 P1, 1, 3 P1, 2, 1 P2 2 2 P2, 0, 3 P2, 3, 1 P1, 3, 2 P1, 0, 2 P2, 1, 3 P1, 1, 3 P1, 2, 1 P2, 2, 2 P1 0 1 P2, 0, 3 P2, 3, 1 P1, 0, 1 P1, 0, 2 P2, 1, 3 P1, 1, 3 P1, 2, 1 P2, 2, 2 P2 2 2 ______ P2, 3, 1 P1, 0, 1 P1, 0, 2 P2, 1, 3 P1, 1, 3 P1, 2, 1 P2, 2, 2 P3 0 0 P3,0,0 P2, 3, 1 P1, 0, 1 P1, 0, 2 P2, 1, 3 P1, 1, 3 P1, 2, 1 P2, 2, 2 P1 1 2 P3,0,0 P2, 3, 1 P1, 0, 1 P1, 1, 2 P2, 1, 3 P1, 1, 3 P1, 2, 1 P2, 2, 2 P2 2 2 P3,0,0 _______ P1, 0, 1 P1, 1, 2 P2, 1, 3 P1, 1, 3 P1, 2, 1 P2, 2, 2 P3 0 0 P3,0,0 _______ P1, 0, 1 P1, 1, 2 P2, 1, 3 P1, 1, 3 P1, 2, 1 P2, 2, 2 P1 3 0 P3,0,0 P1,3,0 P1, 0, 1 P1, 1, 2 P2, 1, 3 ______ P1, 2, 1 P2, 2, 2 P2 2 1 P3,0,0 P1,3,0 P1, 0, 1 P1, 1, 2 P2, 2,1 ______ P1, 2, 1 P2, 2, 2 P3 1 0 P3,0,0 P1,3,0 P1, 0, 1 P1, 1, 2 P2, 2,1 P3,1,0 P1, 2, 1 P2, 2, 2 P1 T P3,0,0 ______ ______ ______ P2, 2,1 P3,1,0 ______ P2, 2, 2 P2 T P3,0,0 ______ ______ ______ ______ P3,1,0 ______ ______ P3 T ______ ______ ______ ______ ______ ______ ______ ______ 8 PROBLEMA 2 Se desea inicializar un disco de 15Mb con sectores de 512 bytes para poderlo utilizar en Linux, previendo que sobre ese dispositivo no se crearán más de 780 ficheros. Como Linux admite tanto el formato FAT como el de MINIX, habrá que decidir cuál resulta más conveniente. Por tanto, hay que elegir entre: 1) Inicializar con FAT12, lo cual implica utilizar clusters de 4 Kb y 32 sectores para el directorio raíz. 2) Inicializar con FAT16, empleando clusters de 512 bytes y 32 sectores para el directorio raíz. 3) Inicializar con MINIX, empleando zonas de 1 Kb, y un número máximo de nodos-i igual a 800 (Los nodos-i guardan 7 punteros directos, 1 indirecto simple y 1 indirecto doble, ocupando 32 bytes cada uno, como siempre. Los punteros a bloque son de 16 bits.). SE PIDE: Indicar cuánto espacio (en Kb) se pierde en cada sistema para guardar la cabecera de la partición. Téngase en cuenta que en los formatos FAT habrá que guardar dos copias de ella (la principal y una auxiliar): a) FAT12: Sect arranque+ sect. 2ª arranque + FAT + FAT + Raíz 1sector + 1sector+ 12sectores+12sectores+32sectores= 29Kb (con un sólo sector de arranque =28,5Kb) b) FAT16: Sect arranque+ sect. 2ª arranque + FAT + FAT + Raíz 1sector + 1sector+120sectores+120sectores+32sectores=137Kb (con un sólo sector de arranque =136,5Kb) c) MINIX:1b arranque+ 1b super + mapa nodos-i 1b + 2b mapa zonas 25b nodos-i =Total cabecera 30Kb Tras iniciar la partición, se crean en ella 100 ficheros de 7800 bytes, 100 con 2100 bytes y 2 con 600 Kb cada uno. Indique cuánto espacio se pierde en cada sistema debido a fragmentación interna (hay que considerar también las zonas de índice). d) FAT12: (8192-7800)*100+(4096-2100)*100+ 0 =39200+199600=238800bytes e) FAT16:(8192-7800)*100+(2560-2100)*100+ 0 =39200+46000=85200bytes f) MINIX:(8192-7800)*100+índ.1022*100+(3072-2100)*100+ índ. (1022+862)*2 =39200+102200+97200+ 3768=242368bytes De entre los tres formatos propuestos, ¿cuál preferiría y por qué? g) 9 10