En el proceso de arranque de una máquina tipo MINIX se utiliza un

Anuncio
Examen de Sistemas Operativos II
EJERCICIO 2
Febrero de 2007
Tiempo estimado: 75 min.
Puntuación: 5 puntos
En una máquina tipo MINIX se utiliza un disco de arranque con las siguientes características:
 tamaño: 360K.
 formateado para soportar 95 i-nodos útiles
 el primer bloque del disco es el 0.
SE PIDE (utilizar las hojas de respuestas que se adjuntan):
a) Indicar los números de bloques de disco asignados a cada uno de los componentes del sistema de
ficheros propuesto (formato lógico del disco). Razonar brevemente la respuesta. (1 punto)
b) Teniendo en cuenta que cada entrada de un directorio consume 16 bytes (2 para el número de inodo y 14 para el nombre del fichero) y que las dos primeras entradas están asignadas a los
ficheros . y .., indicar RAZONADAMENTE
b.1) ¿Cuántos ficheros de 1K byte pueden llegar a crearse como máximo en este disco
(colgando del directorio raíz)?. ¿Cuántos bloques de disco consume el directorio raíz?. (1
punto)
b.2) ¿Cuántos ficheros de 8 Kbytes? ¿Cuántos bloques de disco consume el directorio raíz?
(1 punto)
c) Suponiendo que el contenido completo de S.F. consta de: directorio raíz (/), directorio (/d1),
directorio (/d2), directorio (/d1/d11) y fichero (/d1/d11/f1), que el tamaño de todos los
directorios/ficheros es menor de 1024 bytes y que los directorios/ficheros se crearon en el orden
en el que se han presentado, indicar los accesos que el G.F realiza a la tabla de i-nodos y a la cache
de bloques cuando un proceso de usuario con directorio de trabajo “/d2” ejecuta la llamada
open(“/d1/d11/f1”,…). Suponer que en la tabla de i-nodos del G.F. sólo están cargados los i-nodos del
directorio raíz y del directorio de trabajo del proceso de usuario y que la llamada al sistema no
falla. (2 puntos)


Respecto a la tabla de i-nodos del Gestor de Ficheros:
 Los ÚNICOS campos a tener en cuenta para solucionar el ejercicio son: i-zone[9]
(números de zona para punteros directos, indirecto simple e indirecto doble), i_size
(tamaño del fichero), i_nlinks (número de enlaces), i_mount (indica sistema de
ficheros montado) e i_mode (bits de protección, tipo de fichero y bits SETUID y
SETGID).
 En cada entrada de la hoja de soluciones se pueden indicar hasta tres campos que se
modifiquen/consulten de un determinado i-nodo, anotando el número de i-nodo al que
se accede, el nombre del campo(s) y una breve descripción de la razón del acceso (por
cada campo).
Respecto a la cache de bloques del Gestor de Ficheros:
 Rellenar una entrada de la hoja de soluciones por cada bloque que se cargue en la
cache para ser consultado/modificado o por cada bloque que encontrándose ya en la
cache se consulte/modifique. En la columna “Descripción” indicar el tipo de bloque al
que se está accediendo (superbloque (S), bloque de mapa de bits de i-nodos (MBI-N),
bloque de mapa de bits de zonas (MBZ), bloque de i-nodos (I-N), bloque de directorio
(DIR), bloque indirecto (Ind) o bloque de datos (DAT)), así como la razón del acceso.
Examen de Sistemas Operativos II
Febrero de 2007
Apellidos: ...................................................................................................
Nombre: ................................................................. Nº matrícula: ...................
EJERCICIO 2
HOJA DE SOLUCIONES
a) Indicar los números de bloques de disco asignados a cada uno de los componentes del sistema
de ficheros. Razonar brevemente la respuesta. (1 punto)
A
Nºs de bloques
0
S
1
MBI
MBZ
2
3
DATOS
I-NODOS
4
5
6
7
359
Explicación:
Autoarranque: ocupa un único bloque
Superbloque: ocupa un único bloque
Mapa de bits de i-nodos (MBI): necesitamos 96 bits para reflejar el estado de 96 i-nodos.
Ocupa un único bloque
Mapa de bits de zonas (MBZ): necesitamos tantos bits como zonas de datos (360 zonas - 7
administrativas= 353 bits). Ocupa un único bloque.
I-nodos: En cada bloque de 1024 bytes caben 32 i-nodos. Para albergar 95 i-nodos útiles (96
contando con el i-nodo 0) necesitamos 3 bloques de datos
Bloques de datos: del número 7 al número 359: 353 bloques.
b.1) Número máximo de ficheros de 1 Kbyte que pueden llegar a crearse colgando del directorio
raíz. (1 punto)
Disponemos de 353 bloques de datos. El número máximo de ficheros de 1Kbyte que pueden
crearse viene determinado por el hecho de que este sistema de ficheros sólo dispone de
capacidad para 95 i-nodos útiles (1 para el directorio raíz y 94 para otros ficheros).
Asignando un bloque de datos (1Kbyte) a cada uno de los 94 ficheros, nos restan 353-94 = 259
bloques. Tal y como se indica en el siguiente apartado, el directorio raíz consume dos bloques, por
lo que nos restarían 257 bloques que no se usarían en esta situación
Número de bloques de disco que consume el directorio raíz:
El directorio raíz tendría 94 + 2 (para . y ..) entradas = 96. En un bloque de 1024 bytes caben 64
(1024/16) entradas. El directorio raíz consume dos bloques de datos en esta situación.
b.2) Número máximo de ficheros de 8 Kbytes que pueden llegar a crearse colgando del
directorio raíz. (1 punto)
Disponemos de 353 bloques de datos. Un fichero de tamaño 8 Kbytes consume 9 bloques de
datos (7 bloques de datos a los que apuntan los 7 punteros directos del i-nodo, 1 indirecto simple
y 1 bloque de datos al que apunta el indirecto simple). Disponiendo de 353 bloques podríamos
crear 39 (353/9 = 39,222…) ficheros de 8 Kbytes y sobrarían 2 bloques, de los cuales 1 hace
falta como bloque de datos del directorio raíz (tal y como se calcula en el siguiente apartado) y el
otro no se usaría en esta situación.
Número de bloques de disco que consume el directorio raíz:
El directorio raíz tendría 39 + 2 (para . y ..) entradas = 41. En un bloque de 1024 bytes caben 64
(1024/16) entradas. El directorio raíz consume un bloque de datos en esta situación.
c) Llamada al sistema df = open(“/d1/d11/f1”, …). (2 puntos)
Tabla de i-nodos:
Nº de
i-nodo
Nombre del Campo(s)
1
i_mount, i-mode, i-zone[0]
2
i_mount, i-mode, i-zone[0]
4
i_mount, i-mode, i-zone[0]
5
i-mode
Descripción: razón del acceso
Comprueba que no hay un sistema de ficheros montado. Comprueba que se
trata de un directorio y consulta si el proceso tiene permiso de búsqueda.
Obtiene el número del primer bloque de datos (el bloque 7).
Comprueba que no hay un sistema de ficheros montado. Comprueba que se
trata de un directorio y consulta si el proceso tiene permiso de búsqueda.
Obtiene el número del primer bloque de datos (el bloque 8).
Comprueba que no hay un sistema de ficheros montado. Comprueba que se
trata de un directorio y consulta si el proceso tiene permiso de búsqueda.
Obtiene el número del primer bloque de datos (el bloque 10).
Comprueba si el proceso tiene permiso de apertura indicado en el segundo
parámetro de la llamada open.
Cache de bloques:
Número
de
bloque
Descripción: tipo de bloque y razón del acceso
DIR /. Busca una entrada con nombre “d1” y obtiene su número de i-nodo (el 2).
7
I-N. Obtiene los 32 bytes del i-nodo 2.
4
DIR /. Busca una entrada con nombre “d11” y obtiene su número de i-nodo (el 4).
8
I-N. Obtiene los 32 bytes del i-nodo 4.
4
DIR /. Busca una entrada con nombre “f1” y obtiene su número de i-nodo (el 5).
10
I-N. Obtiene los 32 bytes del i-nodo 5.
4
Descargar