1 1.- PROBLEMA (30%) Un sistema de gestion de memoria soorta esacios de direcciones logicas de 32 bits y un modelo de memoria aginado con tama~nos de agina de 4K bytes. Con estos datos, la tabla de aginas alcanza un tama~no demasiado grande ara mantenerla or comleto en memoria, or lo que se debe adotarse alguna tecnica que ermita mantener tan solo una arte de ella. Una de las tecnicas osibles se basa en adotar un esquema de gestion de memoria, que denominaremos seccionado / aginado. Este esquema consiste en dividir los esacios de direcciones en secciones y las secciones, a su vez, en aginas, siendo 1 seccion = 2 N aginas. En este caso N =11. La memoria rincial es un esacio de direcciones de 30 bits, en el cual se reserva unbuer de 256K bytes ara albergar una arte de la tabla de aginas. Cuando se referencia una seccion cuya tabla de aginas no esta resente en memoria, debe sustituirse la tabla de aginas de una seccion resente or la de la seccion demandada. SE PIDE: 1. Dado el esquema de secciones aginadas de gestion de memoria, reresente gracamente una direccion logica y una direccion fsica, indicando todos sus camos. Reresente tambien el mecanismo de traduccion de direcciones indicando todas las tablas manejadas, sus tama~nos, y la estructura y tama~no de cada elemento o descritor de la tabla. Dicho mecanismo debe generar un error cuando un roceso genere una direccion que no ertenece a su esacio de direcciones. sección ágina deslazamiento s d 9 11 12 DIRECCION FISICA MMU TABLA DE SECCIONES s 1 9 n 6 m 512 TABLA DE PAGINAS DE 1 SECCION 2048 1 18 f ERROR < DIRECCION LOGICA marco deslazamiento f d 18 12 descritor de seccion: : bit de validez (resencia en memoria), n: numero de aginas de la seccion, m: marco de la seccion de la tabla de aginas, descritor de agina: : bit de validez, m: marco de la seccion de la tabla de aginas, otros bits.
2 2. >Cuantas tablas de aginas de secciones caben en el buer de memoria rincial?. Suonga que todos los descritores de las tablas de traduccion ocuan siemre un numero entero de bytes (.e. ara un descritor de 12 bits se necesitan 2 bytes). (CUESTION ANULADA) Teniendo en cuenta que un descritor de agina son (como mnimo) 19 bits, odemos considerar que se reserva (como mnimo) 3 bytes ara el mismo. La tabla aginas de una seccion ocuara (como mnimo) 6K bytes (2048 osiciones x 3 bytes), o lo que es lo mismo, 1.5 aginas. Como la tabla de aginas de una seccion debe comenzar en un rinciio una agina, se reservaran 2 aginas ara la tabla de aginas de cada seccion. Como 256K bytes = 64 aginas, caben en total las tablas de aginas corresondientes a 32 secciones. NOTA: El que una seccion de la tabla de aginas ocue mas de 1 agina, en este caso 2, diculta su gestion, ues obliga a tener las 2 aginas de forma consecutiva en el buer de memoria y ademas se deserdicia 0.5 aginas. Parece mas adecuado elegir el tama~no de una seccion de manera que su tabla de aginas corresondiente ocue exactamente 1 agina. Por ejemlo, elegir 1 seccion=2 10 aginas y descritores de agina de 4 bytes. 3. Diga las diferencias entre un esquema seccionado / aginado y un esquema segmentado / aginado. El esquema segmentado es una forma de dividir los esacios de direcciones en unidades logicas como como conjuntos de rocedimientos, conjuntos de datos, ilas, etc..., mientras que el esquema seccionado se basa en dividirlos or gruos de aginas contiguos, es decir en unidades de tama~no jo. El esacio de direcciones de un roceso suele constar, normalmente de varios segmentos (.e. en UNIX los segmenetos de texto, datos y ila), sin embargo es raro que 1 roceso ocue mas de 1 seccion (8M bytes). En este ultimo caso, el esquema seccionado aginado se reduce a simle aginacion. 4. Escriba la exresion del tiemo de acceso efectivo a memoria (TAE) en funcion de los siguientes arametros: TAM: tiemo de acceso a memoria. TP: tiemo de servicio de un fallo de agina. 1 : robabilidad que la tabla de aginas de la seccion referenciada se encuentre en memoria. 2 : robabilidad que la agina referenciada se encuentre en memoria. Suonga que todas las tablas que se utilizan en la traduccion de direcciones residen en memoria rincial. TAE = TAM + 2 TAM + (1 ; 2 ) TP + 1 TAM + (1 ; 1 ) TP
3 2.- CUESTIONES (30%) 1. Dado un disco de 360K bytes de caacidad y formateado en DOS con los siguientes arametros: Tama~no de bloque: 512 bytes. Tama~no de una entrada de directorio: 128 bytes. Numero de bloques reservado ara el directorio raiz: 8. SE PIDE: (a) Determinar el numero de bloques y el tama~no de la FAT de dicho disco. (b) Reresentar en la gura el estado nal de la FAT tras las siguientes ordenes DOS. Asimismo reresentar la secuencia de numeros de bloque asociado a cada chero. Nota: Mediante A: se identicara la unidad corresondiente al disco en cuestion. C:\format A: C:\dir A: Directorio de A:\ No se encontro el archivo C:>coy autoexec.bat A: C:>coy ansi.sys A: C:>coy \windows\win.bat A: C:>mkdir A:\dos C:\dir A: Directorio de A:\dos. <DIR> 07/09/95 17:34.. <DIR> 07/09/95 17:34 2 archivo(s) 0 bytes 362200 bytes libres C:>coy \dos\edit.exe A:\dos C:>coy \dos\backu.com A:\dos C:>del A:\win.bat C:>mkdir A:\windows C:>coy \dos\restore.com A:\dos C:>del A:\dos\backu.com FAT(0-7) FAT(8-15) FAT(16-23) F ichero Longitud Lista de bloques autoexec.bat 1340 12-13-14 ansi.sys 412 15 win.bat 750 (16-17)BORR. edit.exe 820 19-20 backu.com 1226 (21-22-23)BORR. restore.com 510 5
4 2. Sea un disco de 64M bytes con formato MINIX (unteros a bloques en disco de 16 bits, tama~no de bloque 1K byte, entradas de directorio de 16 bytes, nodos-i de 32 bytes con 7 unteros directos, 1 untero indirecto y 1 untero doblemente indirecto) y una caacidad de 2048 cheros. Sobre este disco se crea un sistema de directorios en el que el directorio raiz tiene 512 entradas que corresonden a cheros vacios. En esta situacion, se crea un subdirectorio /zz que contiene un unico chero f1. Dibuje la estructura del disco y diga los bloques a los que se acceden ara obtener el nodo-i del chero /zz/f1 a artir de su nombre de ruta absoluto.
5 3.- CUESTIONES (20%) 1. Se tiene un esquema de roteccion en el que ara que un roceso ueda realizar una oeracion sobre un objeto, se requiere que el roceso osea una caacidad. Las caacidades de un roceso son controladas or el s.o. en una tabla de caacidades cuyos elementos se identican de 0 a N. Las oeraciones que se ueden realizar sobre una caacidad son: idca = adquirir(oeracion, objeto): Adquiere una caacidad ara realizar una oeracion sobre un objeto. Devuelve el identicador de la caacidad si funciona con exito y -1 si no se tiene rivilegio suciente ara adquirirla. Para adquirir una caacidad, cada objeto tiene una lista de acceso que esecica el nivel de rivilegio mnimo necesario ara adquirir una caacidad sobre cada oeracion de un objeto. liberar(idca) : Destruye oinutiliza ara su uso la caacidad esecicada or el identicador idca. No obstante, un objeto uede tener otra caacidad igual con distinto identicador. transferir(idca, roceso) : Transferir a un roceso la caacidad idca. El roceso que la enva, ierde la caacidad. idca = ermiso(oeracion, objeto) : Consulta en la tabla de caacidades si alguna de ellas da derecho a realizar la oeracion sobre el objeto. En caso ositivo devuelve el identicador de alguna de las que da derecho. En caso negativo devuelve -1. Cuando un roceso crea un roceso hijo, este hereda las caacidades que en el momento de la creacion tiene el roceso adre y su nivel de rivilegio. Dado este esquema de roteccion, considerese un sistema con dos objetos A y B sobre los que se uede realizar las oeraciones x, y, z y cuyas listas de acceso son: A : (x,3), (y,2), (z,1) B : (x,2), (y,1), (z,1) y dos rocesos P1 y P2 con niveles de rivilegio 3 y 1, resectivamente, que ejecutan la siguiente lista de oeraciones: 1 P1: a = adquirir(y, A) 7 P1: Crea un hijo P3 13 P2: g = ermiso (y, A) 2 P2: b = adquirir(y, A) 8 P3: e = adquirir(x, A) 14 P2: liberar(g) 3 P2: c = adquirir(y, B) 9 P3: transferir(p2,e) 15 P2: Ejecuta A.y 4 P1: d = adquirir(y, A) 10 P3: transferir(p2,d) 16 P2: Ejecuta A.z 5 P1: transferir(a, P2) 11 P1: f = adquirir(z, A) 6 P2: liberar(c) 12 P3: transferir(f, P2) Diga que oeraciones roducen un error de ejecucion y dibuje la lista de caacidades de los tres rocesos al nal de la ejecucion de las oeraciones anteriores.
6 2. Comare los siguientes algoritmos de lanicacion de disco enumerando las ventajas e inconvenientes relativos en cada caso. (a) SSTF y SCAN (b) SCAN y C-SCAN
7 4.- PRACTICAS (20%) Escribir un rograma ara el shell de UNIX que realice las siguientes oeraciones: Mover a /usr/bin todos los archivos ejecutables que se encuentren en alguno de los directorios esecicados como arametro en la lnea de ordenes. Si en la lnea de ordenes se esecica un nombre que no corresonde a un directorio, el rograma debera detectarlo, informar al usuario y no realizar la busqueda en el. Antes de mover un archivo, el sistema debera edir conrmacion al usuario, que escogera la ocion s olaocion n. Al mismo tiemo, el rograma generara dos archivos de "informe". El rimero, /tm/todos.txt contendra los nombres de todos los archivos comrobados, sean ejecutables o no. El segundo, movidos.txt contendra los nombres de los archivos que se han movido a /usr/bin. Nota: Se suone que el rograma se ejecuta sin restriccion de ermisos sobre los archivos y directorios a los que accede.