Sistemas Operativos II CONVOCATORIA EXTRAORDINARIA Facultad de Informática / Escuela Universitaria de Informática / APELLIDOS NOMBRE EUI o FI DNI ?? ?? ?? ?? ?? 10 de Septiembre de 2001 FIRMA No desgrape las hojas. Conteste exclusivamente en los espacios reservados para tal fin. Utilice el reverso de cada hoja para sus anotaciones. Responda de forma breve y precisa. El examen consta de 18 cuestiones, que valen 0.5 puntos cada una excepto la 5 y la 18 que valen 1 punto cada una Enumere y clasifique las técnicas de gestión contigua y las técnicas de gestión dispersa de la memoria. 1. Gestión contigua: Particiones múltiples fijas, particiones múltiples variables. Gestión dispersa: Paginación, segmentación, segmentación paginada. Enumere las llamadas al sistema en Unix cuya eficiencia podría verse aumentada por el hecho de compartir segmentos con un proceso que ya se está ejecutando en memoria. Diga para cada una de ellas qué segmentos podrían compartirse. 2. ?? fork(): crear un nuevo proceso, clonando el proceso que la invoca. o Puede compartirse el segmento T. El segmento D solo puede compartirse en modo “copy on write”.) ?? exec() : cambiar la imagen de memoria o Solo puede compartirse el segmento T. Sea un sistema de memoria virtual segmentado-paginado. Los espacios de direcciones lógicas son de 8Gbytes y el tamaño de página es de 2Kbytes. Un espacio de direcciones puede tener hasta 256 segmentos y los descriptores de página tienen 4 bytes. Diga cual será el tamaño de la tabla de páginas de un segmento. 3. 8GB ? Dir. lógicas de 33 bits. 256 segmentos ? 8 bits para el número de segmento. Páginas de 2 KB ? 11 bits para el desplazamiento. Nº bits para nº de página ? 33 – (8 + 11) = 33 – 19 = 14 214 = 16384 descriptores Tamaño tabla = 16384 * 4 = 65536 = 64 KB Sistemas Operativos II CONVOCATORIA ORDINARIA Escuela Universitaria de Informática / Facultad de Informática 7 de junio de 2001 Explique brevemente cual es el principal inconveniente que puede presentar la segmentación por demanda cuando se la compara con la paginación por demanda. 4. La gestión de la memoria es más complicada, pues la búsqueda de un segmento víctima ante un fallo de página se convierte en un problema de asignación dinámica de memoria, con los inconvenientes que este conlleva: ?? Fragmentación externa importante ?? Posible necesidad de compactación ?? Posible necesidad de seleccionar más de una víctima. Todo ello hace el algoritmo de fallo de segmento más complicado e ineficiente que el de fallo de página. Sea un sistema con doble nivel de paginación donde las direcciones lógicas tienen 15 bits, el tamaño de página es de 1Kbyte y cada tabla de primer nivel puede contener cuatro descriptores de tablas de segundo nivel. La memoria física tiene 4 marcos asignables a procesos, se encuentra inicialmente vacía y los marcos libres se asignan en orden creciente. Suponga que un mismo proceso emite la siguiente secuencia de direcciones lógicas: 7168, 26624, 16508, 5120, 7168, 26624, 12288, 7168, 26624, 16508, 5120, 12288 Esta secuencia se repite indefinidamente Diga qué página ocupará cada marco de la memoria física después de la primera repetición de la secuencia suponiendo que el algoritmo de reemplazo de páginas es el OPTIMO y utilizando la siguiente notación: (i,j): identifica la página cuyo descriptor de primer nivel es el i, y cuyo descriptor de segundo nivel es el j. NOTA: Las tablas de páginas de 1er y segundo nivel las gestiona el sistema operativo y por tanto no se ubican en la memoria asignable a procesos. 5. 7168, 26624, 16508, 5120 Marco 0 (0,7) Marco 1 (3,2) Marco 2 (2,0) Marco 3 (0,5) 7168 26624 12288 X 7168 26624 16508 5120 X (0,7) X X (3,2) X (1,4) 12288 (0,5) (0,5) (1,4) Sea un sistema de memoria virtual segmentado-paginado en el que la tabla de segmentos se ubica íntegramente en registros de la MMU y las tablas de páginas se encuentran en memoria principal, existiendo una TLB para los descriptores de páginas más frecuentemente usados. La probabilidad de que un descriptor se encuentre en la TLB es p1. Los descriptores de páginas ocupan dos palabras. La tabla de páginas de un segmento ocupa una página y se construye sobre un marco de la memoria principal en el momento que se referencia por primera vez una página de ese segmento (es decir, por demanda). Esto ocurre con una probabilidad p2 y supone un coste de N1 accesos a memoria y si, además no existe un marco libre, el coste de desalojar una página de memoria y escribirla en disco (page out). La probabilidad de que no exista un marco libre se supondrá del 100% y la de que haya que refrescar la víctima en disco también del 100%. Si, se tiene que: ?? El tiempo de acceso a una palabra de memoria es TAM ?? El tiempo de acceso a los registros de la MMU es despreciable frente al TAM ?? El tiempo de lectura/escritura de una página en disco es TAD 2 Sistemas Operativos II CONVOCATORIA ORDINARIA Escuela Universitaria de Informática / Facultad de Informática 7 de junio de 2001 diga cual será el incremento del TAE de este sistema respecto a uno que tuviese las tablas de páginas en registros de la MMU. Escriba la expresión y el resultado en nanosegundos para los siguientes valores numéricos: p1=0.99, p2=0.001, N1=1024, TAM=10ns, TAD=1ms. NOTA: Los marcos con las tablas de páginas nunca son elegidos como víctimas. Inc. TAE = (1-p1)*( (1-p2)*2TAM + p2*(N1*TAM + TAD) ) + TAM 6. Inc. TAE = = = 0.01*(0.999*2*10 + 0.001*(1024*10+1000000)) + 10 0.01*(19.98 + 0.001*1010240) + 10 = 0.01*1030.22 + 10 = 20.3022 ns Porcentualmente ? 20.3022/10= 2.03022 = 203.022% Diga si las siguientes afirmaciones sobre el modelo del área activa son verdaderas (V) o falsas (F): 7. V Si la suma de los tamaños de las ventanas del área activa de los distintos procesos de un sistema es mayor que el número de marcos de memoria física, entonces en el sistema se produce hiperpaginación. Si el espacio de direcciones lógicas de un proceso es de 1024 páginas y el tamaño del área activa en un instante dado es de 512 páginas, entonces puede asegurarse que el proceso provocará hiperpaginación en todos los casos. Una MMU que pudiese provocar una interrupción cada cierto número fijo de referencias a memoria y gestionase el bit de referencia, podría calcular de forma exacta el tamaño del área activa. En un sistema cuyo tamaño de ventana de área activa es 1024, el tamaño del área activa en un instante t vale 1024 si, y solo si, las últimas 1024 páginas de una serie de referencias son distintas. F Si se aumenta el número de marcos que tiene asignados un proceso, entonces aumentará el tamaño del área activa. F F F Se tiene un sistema con memoria virtual que utiliza la técnica de la segmentación paginada por demanda. En este sistema se ejecuta un proceso A con tres segmentos T (código), D (datos) y S (pila). Los segmentos de datos y de pila pueden crecer. Las longitudes de estos segmentos se especifican en la tabla 1. La memoria física consta de 4 marcos de 512 bytes cuyo contenido en un instante t es el de la tabla 2, donde la nomenclatura Ti indica la página lógica i del segmento T (ej: D0 es la página 0 del segmento D). Segmento Longitud T 2500 D 1500 S 300 Marco 0 T2 1 D0 2 T1 3 S0 Tabla 1 Tabla 2 Si en ese instante t se produjese la referencia a memoria que se especifica en los siguientes casos, diga si se produciría fallo de página y, en caso afirmativo, el tipo de fallo (violación de protección, dirección fuera de rango, página en disco, ...) y el manejo o tratamiento que recibiría por parte del sistema operativo. a) Acceso a la dirección (D,1000) para escribir en una variable. b) Acceso a la dirección (T, 3510) para ejecutar una instrucción. 3 Sistemas Operativos II CONVOCATORIA ORDINARIA Escuela Universitaria de Informática / Facultad de Informática 8. 7 de junio de 2001 Tipo de fallo Manejo (D,1000) ? Fallo de página. La página D1 debe cargarse en memoria reemplazando a una de las cuatro cargadas. (T,3510) ? Dirección fuera de rango. La dirección no está dentro del tamaño segmento. El sistema abortará el proceso. del Ídem que en la pregunta anterior, pero considerando los siguientes accesos: c) Acceso a la dirección (D, 1510) para crear una variable dinámica. d) Acceso a la dirección (T,950) para ejecutar una instrucción. 9. Tipo de fallo Manejo (D,1510) ? Fallo de página. Aunque la dirección está fuera del rango actual del segmento D, el sistema permite que crezca dicho segmento. La página D2 será asignada al proceso (puede que no se necesite cargarla desde disco si todavía no ha sido utilizada y pertenece al área de datos sin valores iniciales), reemplazando a una de las ya cargadas. (T,950): Sin fallo. No requiere ningún manejo pues es una dirección de la página T1, ya presente en memoria. Suponga que en un sistema de memoria virtual se desea realizar una implementación de los siguientes algoritmos: a) LRU (Last Recently Used) b) SEGUNDA OPORTUNIDAD c) LFU (Least Frequently Used) Diga, para cada uno de ellos, qué registros hardware sería estrictamente necesario que la MMU actualizase cada vez que se referencia una página, para poder realizar una implementación de dichos algoritmos. Los posibles registros hardware son: Bit de modificación, Bit de referencia, Bit de validez, Contador del número de veces que una página ha sido referenciada, Tiempo de la última referencia a una página, Registro de desplazamiento en el que el bit de referencia se introduce como bit de mayor peso. 10. LRU: Tiempo de la última referencia a una página. (El registro de desplazamiento para el bit de referencia no sería siempre utilizable porque para implementar exactamente este algoritmo debería disponer de un número muy grande de bits y el desplazamiento debería realizarse tras cada acceso, no periódicamente como se explicó en clase.) SEGUNDA OPORTUNIDAD: Bit de referencia. LFU: Contador de referencias. 4 Sistemas Operativos II CONVOCATORIA ORDINARIA Escuela Universitaria de Informática / Facultad de Informática 7 de junio de 2001 Se tiene un disco con sectores de 512 bytes y una partición de 80Mb. Esta partición se formatea en MS-DOS con formato FAT-16 y FAT duplicada y directorio raiz de 112 entradas, siendo 1 cluster = 4 sectores consecutivos. Detalle la estructura de la partición y los tamaños de cada uno de los elementos de esta partición. 1 cluster = 2 KB. 11. Partición = 80 MB = 40*1024 clusters = 40960 clusters (aprox.) Tam. FAT = 40960*2/512 = 81920/512 = 160 sectores Tam. raíz = 112*32/512 = 112 / 16 = 7 sectores Estructura: 1 sector de arranque. 160 sectores para primera copia FAT. 160 sectores para segunda copia FAT. 7 sectores para directorio raíz. 40960 – (328/4) = 40960 – 82 = 40878 clusters. En la partición del problema anterior se tiene un directorio C:\DOS con 33 entradas y un fichero C:\DOS\copy.exe cuyo tamaño es 64Kb. Si el manejador de disco siempre realiza los accesos de lectura y escritura por sectores de 512 bytes, detalle sobre la tabla siguiente los accesos a realizar en el peor de los casos para leer el último cluster completo de este fichero. NOTAS: a) En la tabla siguiente, “Elemento de la partición accedido” se refiere a FAT, Dir raiz , Datos, etc... b) Suponga que no es necesario acceder la FAT duplicada c) Suponga que el fichero no está abierto.. Elemento 12. partición Descripción del acceso accedido Número accesos Total accesos 7 7 Raíz Búsqueda de la entrada DOS en el directorio raíz. Datos Búsqueda de la entrada COPY.EXE en 3 directorio C:\DOS. Implica tres accesos porque hay hasta 16 entradas de directorio en un sector. Se lee la entrada de directorio, se abre el fichero y se cargan sus atributos en memoria. 10 FAT Obtención del 16º número de cluster en la 15 FAT para el fichero COPY.EXE, a partir del primero obtenido en su entrada de directorio. 31 Datos Hay que acceder los cuatro sectores del cluster 35 4 5 Sistemas Operativos II CONVOCATORIA ORDINARIA Escuela Universitaria de Informática / Facultad de Informática 7 de junio de 2001 Se tiene un disco con sectores de 512 bytes y una partición de 400Mb. Esta partición se formatea con el sistema de ficheros de MINIX especificando un número máximo de ficheros de 24575 a) Si el tamaño de un bloque es de 1 Kbyte, diga cuál debe ser el tamaño mínimo de zona para poder formatear esta partición. b) Suponiendo que se adopta el tamaño de zona del apartado anterior, detalle la estructura de la partición y los tamaños de cada uno de los elementos de esta partición. (NOTA. Una referencia a zonas tiene 16 bits, el tamaño de un nodo-i es de 32 bytes y una entrada de directorio son 16 bytes) Tam. zona = (400 * 1024 * 1024 ) / (64 * 1024) bytes = 13. = 400 * 1024 / 64 = 400 * 16 = 6400 bytes Pero como hay que redondear a la potencia de dos que esté inmediatamente por encima ? 8 KB 1 bloque de arranque 1 superbloque 3 bloques para mapa de bits de nodos-i (24576 bits). 7 bloques para mapa de bits de zonas. (400*1024 / 8)/8192 = 50/8 = 7 768 bloques para nodos-i: (24*1024*32/1024)= 768. 408820 para zonas de datos 400*1024 – 780 = 409600 – 780 = 408820. En la partición del problema anterior el directorio raiz tiene 33 entradas, el directorio /bin tiene 33 entradas y se tiene un fichero directorio /bin/copy cuyo tamaño es 64Kb. Si el manejador de disco siempre realiza los accesos de lectura y escritura por bloques de 1Kb, detalle sobre la tabla siguiente los accesos a realizar en el peor de los casos para acceder la última zona completa de este fichero. NOTAS: a) En la tabla siguiente, “Elemento de la partición accedido” se refiere a Superbloque, Mapas de zonas, etc. b) Suponga que el fichero no está abierto. 14. Elemento partición accedido Descripción del acceso Número accesos Total accesos Nodos-i. Lectura del nodo-i 1 (Esto normalmente no es necesario ya que el directorio raíz está siempre abierto). 1 1 Zonas. Búsqueda de la entrada “bin” en el directorio raíz. Se puede encontrar en el primer bloque de la primera zona. Se obtiene su número de nodo-i. 1 2 Nodos-i. Lectura del nodo-i que guarda los atributos de “/bin”. 1 3 Zonas. Búsqueda de la entrada “copy” en el directorio “/bin”. Se encuentra en el primer bloque de la primera zona. Se obtiene su número de nodo-i. 1 4 6 Sistemas Operativos II CONVOCATORIA ORDINARIA Escuela Universitaria de Informática / Facultad de Informática 7 de junio de 2001 Nodos-i. Lectura del nodo-i que guarda los atributos de “copy”. 1 5 Zonas. Lectura del primer bloque de la primera 1 zona de índice para obtener el número de la octava zona del fichero “copy”, lugar donde se encuentra la información a acceder. 6 Zonas. Acceso a la octava zona del fichero “copy”. 14 El dibujo adjunto esquematiza una parte de un sistema de ficheros Minix después de una caída del sistema En este sistema de ficheros existen dos inconsistencias. Márquelas sobre el dibujo y diga en que consisten. Nodo -i: 1 Nodo -i: 2 8 Nodo -i: 3 Nº enlaces: 3 Long: 78 Nº enlaces: 2 Long: 78 Nº enlaces: 1 Long: 1112 Referencias directas Referencias directas Referencias directas 1 2 NIL NIL 2 3 . . . . . . Zona 1 Zona 2 1 . 1 .. 2 xy - 2 . 1 .. 3 xy - NIL Mapa de bits de nodos-i 0 1 2 3 0 1 1 1 Mapa de bits de zona 1 2 3 0 1 1 0 . . . 0 15. La zona 2 está asignada a dos ficheros: al directorio /xy y al fichero /xy/xy. La zona 3 está asignada al nodo-i nº 3 y no está marcada como “en uso” en el mapa de bits de zonas. Explique brevemente cómo se implementa un enlace físico y un enlace simbólico en Unix. Enlace físico: Dos o más entradas de directorio (“enlaces” en 16. terminología UNIX) referencian el mismo fichero y, por tanto, tienen el mismo número de nodo-i. Enlace simbólico: Se crea un nuevo fichero de tipo “link” y en su contenido se guarda el nombre de ruta (absoluto o relativo, no importa) del fichero al que haga referencia. 7 Sistemas Operativos II CONVOCATORIA ORDINARIA Escuela Universitaria de Informática / Facultad de Informática 7 de junio de 2001 Se tiene la siguiente lista de peticiones de acceso a bloques de una partición de disco: 52, 31, 157, 143, 230, 112, 89, 0, 175, 188 Si el disco tiene 250 bloques, numerados del 0 al 249, y el cilindro inicial sobre el que se encuentra el cabezal es el 151 diga cual sería la trayectoria recorrida por el cabezal del disco con los siguientes algoritmos: a) SSTF b) LOOK con dirección inicial descendente 17. 157, 143, 112, 89, 52, 31, 0, 175, 188, 230. 143, 112, 89, 52, 31, 0, 157, 175, 188, 230. Se tiene un sistema Unix en el que existen tres usuarios: so1, so2 y ast. Los usuarios so1 y so2 pertenecen al grupo prac mientras que ast pertenece al grupo guest. Asimismo, se tiene un directorio cuyo listado es el siguiente: prop. rws rws rwx rwx grup. rw--x rwr-- otros --x --x ----- propietario. so1 so1 so1 ast grupo prac prac prac guest fichero type trunc script1 script2 La descripción de los ficheros de este directorio es la siguiente: type arg1: visualiza el contenido del fichero arg1 por la salida estándar. trunc arg1: borra el contenido del fichero arg1, truncándolo pero sin eliminarlo. script1: fichero ASCII con órdenes del shell de Unix. script2: fichero ASCII con órdenes del shell de Unix. Represente el resultado de la cuestión anterior mediante una matriz de acceso en la que los objetos son script1 y script2 y las operaciones a considerar son la operaciones type y trunc, descritas anteriormente, y sh donde sh es el shell de Unix. 18. (so1,prac) (so2,prac) (ast,guest) script1 script2 type trunc sh --- trunc sh --- type trunc type sh 8