Gestión de ficheros

Anuncio
Examen Final – Gestión de Ficheros - Sistemas Operativos II
Febrero 2009
Apellidos: ................................................................................................................................................
Nombre: ..................................................................................................... Nº matrícula: ......................
Puntuación total: 1,8 puntos
Tiempo estimado: 20 minutos.
Se pide responder a cada una de las siguientes cuestiones sobre Minix 3:
1) Enumere y explique para qué sirven
los dos mensajes que puede recibir el GF que no
provienen de llamadas al Sistema (sean éstas del GF o del GP), ni son mensajes especiales de
control (vistos en clase como “otros mensajes”). (0,5)
Estos dos mensajes son “revive” y “unpause”.
Cuando el GF realiza una operación de lectura por ejemplo sobre el terminal y ésta no se puede
completar, dado que el GF no puede quedarse bloqueado indefinidamente a la espera de que haya
suficientes caracteres en el terminal, el driver de terminal toma nota de la operación pendiente y
devuelve SUSPEND, para que el GF no quede bloqueado. Más adelante, cuando se complete la
operación (suficientes teclas pulsadas), el driver de terminal envía el mensaje “revive” al GF para
que éste a su vez, desbloquee al proceso de usuario que originó el servicio
Cuando el Gestor de Procesos intenta enviar una señal a un proceso debe averiguar si dicho
proceso está bloqueado en un pipe o fichero especial (terminal) por el GF (en cuyo caso debe ser
despertado con el error EINTR). Dado que el GP no controla dicho estado debe enviar un mensaje
al GF para ello. Este mensaje es “unpause” el cual hace que el proceso salga de su bloqueo
2) Describa los pasos o puntos más relevantes en el proceso de montaje de un dispositivo sobre
un directorio. (0,6)
1) Se carga en la tabla de superbloques el superbloque del SF a montar.
2) Carga el I-nodo del directorio /user (sobre el que se va a montar), si éste no estuviera ya en la
Tabla de I-Nodos.
3) Carga el I-nodo del directorio raíz del SF a montar
4) Activa el campo i_mount del l-nodo del directorio /user. Con ello se indica que sobre el
directorio /user se va a montar un SF.
5) En el superbloque del SF a montar se pone en el campo s_imount un puntero al I-nodo del
directorio /user y en el campo s_isup un puntero al I-nodo del directo-rio raiz del SF a montar.
6) Carga en la caché los bloques de los mapas de bits de I-nodos y zonas del SF a montar (estos
bloques permanerán en la caché hasta que se desmonte el SF).
3) Calcule y detalle el gasto total de zonas que realizaría el hecho de crear un fichero con un
tamaño de 45.084 KB en un sitema de ficheros estándar. Por gasto total de zonas debe
entenderse el total de zonas que dejan de estar libres en el área de zonas del sistema de
ficheros. (0.7)
Una zona tiene 1 bloque de 4 KB.
Un fichero de 45.084 KB requiere por tanto 11.271 zonas de datos (sólo para la informacion).
Vamos a calcular cuántos bloques/zonas de indireccion se requieren para acceder a dichas zonas.
En el I-nodo caben 7 apuntadoresdirectos a zonas de datos de información., más
1 apuntador (Simpe Indirecto) a una zona en la que caben 1024 apuntadores y por último
1 apuntador (Doble Indirecto) que vamos a necesitar, aunque no vamos llenar completamente la
zona apuntada por éste. Veamos cuantas zonas simples indirectas necesitamos:
.
Hasta aquít enemos 7 + 1024 zonas de informacion y 1 zona de punteros. Nos faltan :
11.271 – 7 – 1024 = 10240 zonas de información.
Como cada bloque/zona de indirección da para 1024 zonas de datos de información,
Necesitamos 1024 0/ 1024 = 10 bloques/zonas de indirección.
Con lo que al final habremos cubierto las 11.271 zonas de datos para informacion, gastando
1 zona simple indirecto guardada en el I-inodo +
1 zona doble indirecta guarda en el I-nodo +
10 zonas simple indirectos guardas en la zona doble indirecta.
Total 12 zonas de apuntadores a zona.
Gasto total del fichero 11.271 + 12 = 11.283 zonas
Descargar