• No se han encontrado resultados

Problemas de Sistemas de Archivo

N/A
N/A
Protected

Academic year: 2021

Share "Problemas de Sistemas de Archivo"

Copied!
26
0
0

Texto completo

(1)

Problemas de Sistemas de Archivo

SO2

Abril 2.000

PROBLEMAS RESUELTOS

Cuesti´on 1

Dado un disco de cabeza m´ovil con 200 cilindros, numerados de 0 a 199 se considera que: Actualmente sirve una solicitud en el cilindro 143.

Previamente se solicit´o el acceso al cilindro 125.

La cola de solicitudes se mantiene en orden FIFO: 86, 147, 91, 177, 94, 150, 102, 175, 130. Se pide:

Determinar el movimiento total de la cabeza necesario para satisfacer estas solicitudes con los siguientes algoritmos de planificaci ´on de disco:

– FCFS. – SSTF. – SCAN. – LOOK. – C-SCAN.

Cuesti´on 2

Dado un disco de cabeza m´ovil con 200 cilindros, numerados de 0 a 199 y con un tiempo promedio de acceso (rotaci ´on + transferencia) de 20 unidades de tiempo se trata de determinar el tiempo total de servicio que se requiere para atender las siguientes peticiones:

(0,30), (40,10), (45,40), (60, 60), (100,50), (120, 5), (140, 100), (160, 120)

donde la primera componente de cada petici ´on se refiere al instante de tiempo en el que se efect ´ua dicha petici ´on y la segunda componente indica el cilindro al que se pretende acceder. Se considera que el tiempo de posicionamiento entre cilindros contiguos es igual a 1 unidad de tiempo.

Aplicar para el c´alculo del tiempo total de servicio los siguientes algoritmos: FCFS.

SSTF. SCAN. LOOK.

(2)

C-SCAN.

Nota: El cabezal del disco se encuentra inicialmente posicionado en el cilindro 0 y el servicio de las peticiones se realiza en el sentido de n ´umeros de cilindro crecientes.

Cuesti´on 3

Dada una estructura de disco de doble cara con 80 cilindros y 18 sectores por pista y un tama ˜no de sector de 512 bytes, se pide:

Determinar la capacidad del disco.

Dada la correspondencia entre sectores f´ısicos y l´ogicos, se trata de determinar la direcci ´on f´ısica (cilindro, cabeza, sector) del n ´umero de sector l´ogico 1234.

De forma an´aloga se desea determinar cual es el n ´umero de sector l´ogico asociado a la direcci ´on f´ısica (47, 1, 15). Cilindro Cabeza Sector Sector l´ogico

0 0 0 0 ... ... ... ... 0 0 17 17 0 1 0 18 ... ... ... ... 0 1 17 35 1 0 0 36 ... ... ... ... ... ... ... ... 79 1 17 2879

Cuesti´on 4

Dado un disco de 20 Mb de capacidad total con los siguientes par´ametros: Clusters (bloques) de tama ˜no 1K. Sectores de 512 bytes.

N´umeros de bloque de 16 bits. Se pide:

Calcular el n ´umero de bloques necesarios para la gesti´on de bloques libres mediante:

– Lista enlazada. – Mapa de bits.

Determinar la estructura del disco si lo utilizamos enteramente para MS-DOS:

– Calcular el n ´umero de sectores reservados a la FAT y su copia.

– Calcular el n ´umero de sectores reservados para el directorio ra´ız (considerar un m´aximo de 512 entradas). – Determinar el n ´umero de clusters de datos disponibles.

Calcular el mejor y peor caso en el n ´umero de accesos a bloques de disco para leer el 33

cluster de un fichero MS-DOS situado en el directorio ra´ız en el siguiente caso:

(3)

Realizar el mismo c´alculo si el fichero se encuentra en el directorio\PRUEBA que contiene 33 entradas en total. NOTA: En los dos ´ultimos apartados de esta cuesti´on 4 se asumir´a que las lecturas en la FAT y en el directorio ra´ız obtienen un bloque entero, en lugar de un solo sector.

Cuesti´on 5

Determinar el tama ˜no m´aximo te´orico (sin tener en cuenta el tama ˜no real que tendr´a el dispositivo sobre el que deba residir el fichero) de un fichero UNIX, especificando los bloques direccionados con cada tipo de puntero. Los par´ametros corresponden a los siguientes valores:

Punteros a zonas de datos de 32 bits. Tama ˜no de bloque 1K (1 zona = 1 bloque). Estructura de nodo-i:

– 10 punteros directos. – 1 puntero indirecto. – 1 puntero indirecto doble. – 1 puntero indirecto triple.

Realizar el mismo c´alculo para un fichero en MINIX con los siguientes par´ametros: Punteros a zonas de datos de 16 bits.

Tama ˜no de bloque 1K (1 zona = 1 bloque). Estructura de nodo-i:

– 7 punteros directos. – 1 puntero indirecto. – 1 puntero indirecto doble.

Cuesti´on 6

Determinar la estructura de un disco de 20 Mb en MINIX con los siguientes par´ametros: Punteros a zonas de datos de 16 bits.

Tama ˜no de bloque 1K (1 zona = 1 bloque). Tama ˜no de nodo-i de 32 bytes.

N´umero m´aximo de nodos-i: 512. Se pide:

Especifique claramente todas las estructuras de datos que forman el sistema de archivos y los bloques que ocupan. En caso de resultar da ˜nada la estructura del mapa de bits de zonas, piense la forma de reconstruirla con la infor-maci ´on de la que se dispone en el resto de estructuras del sistema de archivos (se supone que ´estas se conservan inalteradas).

(4)

Cuesti´on 7

Suponga que se ha desarrollado una versi´on de MINIX en la cual el tama ˜no del bloque se ha cambiado a 128 bytes (1 bloque = 1 zona).

Suponga tambi´en que se dispone de un disco duro (/dev/hd5) formateado con bloques de 128 bytes, con capacidad para almacenar 10240 bloques con un n ´umero m´aximo de ficheros posibles igual a 127.

En este disco existen tres directorios:

Directorio / Con 10 entradas (todas las entradas incluidas)

Directorio /bin Con 16 entradas (´ıdem)

Directorio /lib Con 20 entradas (´ıdem)

La longitud de todos los ficheros es de 768 bytes, salvo dos ficheros, /bin/medianoy /bin/grandecuyas longitudes respectivas son 1024 bytes y 10240 bytes.

SE PIDE:

1. C´omo est´a estructurado el disco.

2. N´umero de bloques para el mapa de nodos-i. 3. N´umero de bloques para el mapa de zonas. 4. N´umero de bloques de nodos-i.

5. N´umero total de zonas de datos. 6. N´umero de nodos-i utilizados. 7. N´umero de zonas utilizadas para:

(a) Contener datos convencionales de ficheros regulares. (b) Contener entradas de directorios.

(c) Contener referencias a otros bloques. Justifique adecuadamente sus respuestas.

Cuesti´on 8

En el sistema operativo MINIX se introducen los siguientes cambios en el dise˜no del sistema de ficheros: El tama ˜no de bloque se reduce a 32 bytes.

El tama ˜no de una entrada de directorio se reduce a 8 bytes (2 bytes para el n ´umero de nodo-i y 6 para el nombre del fichero).

El tama ˜no del nodo-i se reduce a 16 bytes. Los primeros 8 bytes se emplean para almacenar informaci ´on general (atributos de fichero), representada en la figura por XX, y los 8 bytes restantes para almacenar los punteros a las zonas pertenecientes al fichero: dos punteros directos, un indirecto simple y un indirecto doble, tal y como muestra la figura: XX n ´umero de zona 0 n ´umero de zona 1 indirecto indirecto doble

(5)

A continuaci ´on se indican los contenidos de los bloques de un dispositivo de bloques que contiene un sistema de ficheros MINIX. El tama ˜no de este dispositivo de bloques es de 32K y el n ´umero m´aximo de ficheros que puede contener es 99. ´Unicamente se han representado los contenidos relevantes para la resoluci ´on del problema, indic´andose con un – los campos vac´ıos. La leyenda superior B- i indica que el n ´umero de bloque es el i, y el resto indica el contenido del bloque. B- 7 00 0 0 0 0 XX 57 – – – B- 8 XX 58 – – – XX 59 60 61 – B- 15 XX 64 – – – XX 88 – – – B- 17 XX 65 66 67 68 XX 90 – – – B- 61 62 63 – – – – – – – – – – – – – – B- 67 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 B- 68 85 86 87 – – – – – – – – – – – – – B- 57 1 . 1 .. 2 bin 3 users B- 58 2 . 1 .. 4 cc 5 mined B- 59 3 . 1 .. 6 dso00 7 dso01 B- 60 8 dso02 9 dso03 10 dso04 11 dso05 B- 62 12 dso06 13 dso07 14 dso08 15 dso09 B- 63 16 dso10 17 dso11 18 dso12 19 dso13 B- 64 16 . 3 .. 20 msh.c – – B- 88 17 . 3 .. 21 msh.c – – SE PIDE:

1. Obtener el ´arbol de directorios contenido en el dispositivo de bloques.

2. Indicar, ordenadamente, los n ´umeros de bloque a los que se ha de acceder al ejecutar la llamada open("/users/dso11/msh.c", O RDONLY)

y el motivo por el que se accede a dichos bloques.

3. Indicar el tama ˜no en bloques del fichero/users/dso10/msh.c. NOTA: En esta cuesti´on se asume que el nodo-i n

0 ocupa espacio en el ´area de nodos-i. En la pr´actica este nodo-i no utiliza espacio en ning ´un sistema UNIX, ya que el valor cero se utiliza para indicar que una entrada de directorio ha sido borrada. Sin embargo, en este problema los c´alculos ser´an m´as sencillos si asumimos que tambi´en ocupar´a espacio.

Cuesti´on 9

Se desea dise˜nar un sistema de archivo UNIX para unos discos de 320 Kb cuyos bloques van a ser de 1 Kb (1 zona = 1 bloque).

(6)

SE PIDE:

1. ¿ Cu´al podr´a ser el tama ˜no m´ınimo de un puntero a zona ? 2. ¿ Cu´antos punteros podr´an ubicarse en una misma zona ?

3. Si se necesita 32 bytes por cada nodo-i y de ellos 16 pueden destinarse a punteros a zona, ¿ qu´e esquema de los siguientes es preferible y por qu´e ?

(a) Que todos los punteros sean directos.

(b) Todos los punteros directos, excepto un puntero indirecto simple. (c) Todos los punteros directos, excepto dos punteros indirectos simples.

(d) Todos los punteros directos, excepto un puntero indirecto simple y otro indirecto doble.

Cuesti´on 10

Se tiene un dispositivo de almacenamiento de 32 Kb, con bloques de 512 bytes (1 zona = 1 bloque). Este dispositivo va a ser inicializado para poder utilizar un sistema de archivo similar al de MINIX con entradas de directorio de 16 bytes, un m´aximo de 31 archivos y nodos-i de 16 bytes de los cuales 60 bits pueden dedicarse a punteros directos a zona. Se supone que el tama ˜no de los punteros a zona es el m´ınimo posible.

SE PIDE:

1. Decidir c´omo quedar´a estructurado el disco. Es decir, cu´antos bloques se dedican a cada una de las estructuras que mantiene el sistema de archivo.

2. ¿ Cu´al ser´a el tama ˜no m´aximo de un archivo ?

3. Asumiendo que no se permite crear enlaces f´ısicos, ¿ cu´antas entradas podr´a tener como m´aximo un directorio ? ¿ Cu´antos bloques podr´a llegar a ocupar ?

4. ¿ Cu´antos bloques pueden llegar a quedar libres si se crea el m´aximo n ´umero de archivos posible, pero todos ellos con tama ˜no m´ınimo ?

5. Determinar c´omo quedar´an los mapas de bits de nodos-i y de zonas despu´es de realizar las acciones que se citan a continuaci ´on (y en ese orden). Se supone que un 1 en el mapa de bits indica que el elemento representado est´a libre. Adem´as, se supone que siempre se utiliza el nodo-i o zona libre con n ´umero m´as bajo.

Comentar tambi´en qu´e bloques tiene asignados cada archivo. Las acciones son las siguientes:

Inicializar el disco.

Crear un directorio/dir1. Crear un directorio/dir2.

Crear y escribir un archivo/dir1/ade 2.000 bytes. Borrar el directorio/dir2.

Crear y escribir un archivo/dir1/bde 4.900 bytes. Crear y escribir un archivo/dir1/cde 3.500 bytes. Borrar el archivo/dir1/a.

A˜nadir datos al archivo/dir1/c. Se a˜nade 1 Kb al final del archivo.

6. Determinar el contenido de los archivos de tipo directorio que hayan quedado tras realizar las acciones citadas en el punto anterior.

(7)

Cuesti´on 11

Dado un disco de cabezal m´ovil con 100 cilindros, numerados del 0 al 99 donde: Actualmente se est´a sirviendo una petici ´on sobre el cilindro 50.

La petici ´on anterior fue realizada sobre el cilindro 30.

Quedan las siguiente peticiones por atender: 81, 23, 95, 70 y 48.

SE PIDE:

1. Determinar cu´antos cilindros se recorrer´an para servir estas peticiones utilizando: SSTF y LOOK.

2. Decidir si alguna de las dos estrategias anteriores es la ´optima. En caso negativo, describir una estrategia ´optima para el caso en que se conozcan las peticiones a atender. Decidir si esta estrategia sigue siendo v´alida si llegan m´as peticiones mientras se est´an sirviendo las ya encoladas.

Cuesti´on 12

Se tiene un sistema de archivo UNIX sobre un dispositivo con los directorios que a continuaci ´on se describen y donde s´olo se han usado los nodos-i que aparecen en tales entradas de directorio.

Adem´as, se supone que cuando se necesita crear un nuevo archivo, este utiliza el nodo-i libre con el n ´umero m´as peque ˜no posible.

1 . 1 .. 2 users 4 unix 5 dev 6 bin 2 . 1 .. 10 felipe 12 alfonso 5 . 1 .. 11 tty0 13 tty1 11 console 6 . 1 .. 20 ls 21 cat 22 less 23 sh 10 . 2 .. 23 mysh 25 ed 12 . 2 .. SE PIDE:

1. Dibujar la estructura de directorios.

2. Determinar c´omo quedar´an, dando su contenido, los archivos tipo directorio tras realizar sobre el sistema los si-guientes mandatos: $ cp /users/felipe/mysh /users/alfonso/sh $ ln /users/alfonso/sh /users/alfonso/bash $ mv /users/felipe/ed /bin $ rm /dev/tty0 $ rm /bin/sh $ ln -s /unix /users/alfonso/sistema $ cp /users/felipe/* /users $ mv /bin/cat /unix

Nota: Se supone que el usuario que efect ´ua estas operaciones posee los derechos de acceso necesarios para que ninguna de ellas provoque un error.

(8)

SOLUCIONES

Cuesti´on 1

1. Algoritmo FCFS: Las peticiones se sirven en orden de llegada.

Cil. actual Cil. a servir Desplaz. (cil.)

143 86 143 - 86 = 57 86 147 147 - 86 = 61 147 91 147 - 91 = 56 91 177 177 - 91 = 86 177 94 177 - 94 = 83 94 150 150 - 94 = 56 150 102 150 - 102 = 48 102 175 175 - 102 = 73 175 130 175 - 130 = 45 TOTAL: 565

2. Algoritmo SSTF: Se sirve primero aquella petici ´on que implique un menor desplazamiento. El asterisco (*) simbo-liza la posici ´on actual de la cabeza de lectura/escritura. El cilindro a servir aparece subrayado.

Cil. actual Cilindros pendientes Desplaz. (cil.)

143 86, 91, 94, 102, 130, *, 147, 150, 175, 177 147 - 143 = 4 147 86, 91, 94, 102, 130, *, 150, 175, 177 150 - 147 = 3 150 86, 91, 94, 102, 130, *, 175, 177 150 - 130 = 20 130 86, 91, 94, 102, *, 175, 177 130 - 102 = 28 102 86, 91, 94, *, 175, 177 102 - 94 = 8 94 86, 91, *, 175, 177 94 - 91 = 3 91 86, *, 175, 177 91 - 86 = 5 86 *, 175, 177 175 - 86 = 89 175 *, 177 177 - 175 = 2 TOTAL: 162

3. Algoritmo SCAN: Ya que el ´ultimo cilindro servido fue el 125 y nos encontramos en el 143, supondremos que la direcci ´on de servicio es ascendente. Se realizan dos pasadas, la primera ascendente en la que servimos todas los cilindros entre la posici ´on actual y el final del disco (cilindro 199). Tras esto partimos del cilindro 199 en direcci ´on descendente y servimos todos los cilindros pendientes.

Direc. servicio Cilindros servidos Desplaz. (cil.)

Ascendente 147, 150, 175 y 177 199 - 143 = 56 Descendente 130, 102, 94, 91 y 86 199 - 86 = 113

TOTAL: 169

4. Algoritmo LOOK: Igual que el anterior, pero al servir en orden ascendente no llegamos al final del disco sino que invertimos el sentido de servicio al llegar al cilindro 177.

Direc. servicio Cilindros servidos Desplaz. (cil.)

Ascendente 147, 150, 175 y 177 177 - 143 = 34 Descendente 130, 102, 94, 91 y 86 177 - 86 = 91

(9)

5. Algoritmo SCAN circular (C-SCAN): Suponemos sentido de servicio ascendente. Al llegar al ´ultimo cilindro del disco (el 199), volvemos al cilindro 0 sin servir ninguna petici ´on y desde all´ı iniciamos de nuevo el servicio en orden ascendente.

Direc. servicio Cilindros servidos Desplaz. (cil.)

Ascendente 147, 150, 175 y 177 199 - 143 = 56

Descendente Ninguno 199 - 0 = 199

Ascendente 86, 91, 94, 102 y 130 130 - 0 = 130

TOTAL: 385

Cuesti´on 2

Emplearemos las siguientes abreviaturas:

CA: Cilindro actual.

CS: Cilindro a servir.

Desp: Desplazamiento en cilindros desde el actual al que debe ser servido.

TS: Tiempo de servicio del cilindro a servir. Incluye posicionamiento, rotaci ´on y transferencia. Su valor ser´a igual,

en este problema, a:      ! #"$ &% (' )*+-,/. 1. Algoritmo FCFS:

Inst. CA Cola petic. CS Desp TS

0 0 30 30 30 50 50 30 10, 40 10 20 40 90 10 40, 60 40 30 50 140 40 60, 50, 5, 100 60 20 40 180 60 50, 5, 100, 120 50 10 30 210 50 5, 100, 120 5 45 65 275 5 100, 120 100 95 115 390 100 120 120 20 40 430 120 Vac´ıa - - -2. Algoritmo SSTF:

Inst. CA Cola petic. CS Desp TS

0 0 *, 30 30 30 50 50 30 10, *, 40 40 10 30 80 40 10, *, 60 60 20 40 120 60 5, 10, 50, * 50 10 30 150 50 5, 10, *, 100 10 40 60 210 10 5, *, 100, 120 5 5 25 235 5 *, 100, 120 100 95 115 350 100 *, 120 120 20 40 390 120 Vac´ıa - -

-3. Algoritmo SCAN: Suponemos que una vez se ha programado una operaci ´on SEEK sobre el controlador de disco no hay manera de abortarla. Adem´as, cuando no queden peticiones en el sentido actual, se programa un SEEK hasta el final del disco en ese sentido.

(10)

Inst. CA Cola petic. CS Desp TS 0 0 0 , 30 30 30 50 50 30 10,0 , 40 40 10 30 80 40 10,0 , 60 60 20 40 120 60 5, 10, 50,0 199 139 139 259 199 5, 10, 50, 100, 120,1 120 79 99 358 120 5, 10, 50, 100,1 100 20 40 398 100 5, 10, 50,1 50 50 70 468 50 5, 10,1 10 40 60 528 10 5,1 5 5 25 553 5 Vac´ıa - - -4. Algoritmo LOOK:

Inst. CA Cola petic. CS Desp TS

0 0 0 , 30 30 30 50 50 30 10,0 , 40 40 10 30 80 40 10,0 , 60 60 20 40 120 60 5, 10, 50,1 50 10 30 150 50 5, 10,1 , 100 10 40 60 210 10 5,1 , 100, 120 5 5 25 235 5 0 , 100, 120 100 95 115 350 100 0 , 120 120 20 40 390 120 Vac´ıa - -

-5. Algoritmo C-SCAN: Suponemos que una vez se ha programado una operaci ´on SEEK sobre el controlador de disco no hay manera de abortarla. Adem´as, cuando no queden peticiones en el sentido actual, se programa un SEEK hasta el final del disco en ese sentido.

Inst. CA Cola petic. CS Desp TS

0 0 0 , 30 30 30 50 50 30 10,0 , 40 40 10 30 80 40 10,0 , 60 60 20 40 120 60 5, 10, 50,0 199 139 139 259 199 5, 10, 50, 100, 120,1 0 199 199 458 0 0 , 5, 10, 50, 100, 120 5 5 25 483 5 0 , 10, 50, 100, 120 10 5 25 508 10 0 , 50, 100, 120 50 40 60 568 50 0 , 100, 120 100 50 70 638 100 0 , 120 120 20 40 678 120 Vac´ıa - -

-Cuesti´on 3

1. Capacidad del disco. Tendremos que averiguar cuantos sectores tiene el disco y despu´es multiplicar la cifra obtenida por el tama ˜no del sector. As´ı:

N´um. sectores = N´um. caras * N´um. cilindros * Sectores / pista

2.880 = 2 * 80 * 18

(11)

2. Direcci´on f´ısica del bloque l´ogico 1234. Suponemos un solo sector por bloque. Las direcciones f´ısicas tienen la siguiente estructura:

(n ´um. cilindro, n ´um. cara, n ´um. sector)

Adem´as, la numeraci ´on se sigue del siguiente modo: hasta que no se han numerado todos los sectores de una cara no se pasa a la siguiente cara del mismo cilindro y hasta que no se hayan numerado todas las caras de un cilindro no se pasa al siguiente.

Por tanto, para obtener la direcci ´on f´ısica efectuaremos lo siguiente:

(a) Dividiremos la direcci ´on l´ogica por el n ´umero de sectores por pista. O sea: 1234 div 18 = 68

1234 mod 18 = 10

Esto quiere decir que con la direcci ´on l´ogica 1234 se han podido “llenar” 68 caras y se est´a referenciando el und´ecimo sector (ya que empezamos a numerarlos a partir de cero) de la sexag´esima novena cara.

(b) Dividiremos el n ´umero de caras “completas” obtenido en el punto anterior por el n ´umero de caras por cilindro que admite el disco. As´ı:

68 div 2 = 34 68 mod 2 = 0

Esto se interpreta como que hemos podido “completar” 34 cilindros y estamos en la primera cara del trig´esimo quinto.

Por tanto, la direcci ´on f´ısica pedida es: ( 34, 0, 10 ) Es decir, cilindro 34, cara 0, sector 10.

3. Direcci´on l´ogica para la direcci´on f´ısica ( 47, 1, 15 ).

Suponiendo direcciones f´ısicas de la forma ( i, j, k ), basta con aplicar la f´ormula:

243 5

-66768!:9;=<;>?@BACD7E>GF*>H87E9JIK9 2ML

FNOP9Q

El resultado obtenido es:

243 R'6S  '=T @ ' D,UPVHW/Q X'6S  '6T Y SZR'*S  ' W ' . (' W/, S

Con lo que el n ´umero de bloque l´ogico es el 1725.

Cuesti´on 4

1. Bloques necesarios si se utiliza lista enlazada. La lista enlazada propiamente dicha utiliza un puntero al final de cada bloque para enlazarlo con el siguiente bloque libre. O sea, se utilizan los propios bloques libres para mantenerlos en la lista. Por tanto, no es necesario ning ´un bloque adicional para mantener el control sobre qu´e bloques tenemos libres.

En algunos casos, para compactar la lista, se utilizan unos pocos bloques libres para guardar (de manera similar a un ´ındice enlazado) todos los n ´umeros de los bloques disponibles. Esto no aporta ninguna variaci ´on al caso comentado en el p´arrafo anterior, pues estos bloques se van liberando a medida que se van asignando bloques disponibles. Al final, si se asignan todos los bloques a ficheros, no queda ning ´un bloque dedicado a mantener la lista enlazada.

(12)

2. Bloques necesarios si se utiliza mapa de bits.

El tama ˜no de bloque es de 1.024 bytes, con lo que en cada bloque tendremos 8.192 bits para mantener el mapa. Nuestro disco tiene 20 Mb. Eso representa 20 * 1.024 bloques, o sea, 20.480 bloques.

Por tanto, utilizando mapa de bits necesitamos:

243  ,/.U ' .G,V T  ' .G,V  ,$. T  ,\[ S 0^] 3 IKN_*`a

3. Estructura del disco.

(a) Tama ˜no de la FAT (en sectores):

Como utilizamos n ´umeros de cluster de 16 bits, en un sector de 512 bytes se podr´an mantener 256 n ´umeros de cluster. Por tanto, tendremos 256 entradas de la FAT en cada sector.

El n ´umero de clusters en nuestro disco ha sido calculado previamente y es igual a 20480. (En la pr´actica es ligeramente inferior, puesto que la informaci ´on mantenida en la cabecera no se organiza en clusters, sino en sectores, y no puede utilizarse para mantener ficheros. Sin embargo, esto no afecta demasiado a la hora de efectuar los c´alculos: el n ´umero correcto de clusters es 20383 como veremos dentro de un momento, pero al dividirlo entre 256 y redondearlo hacia arriba dar´a el mismo resultado.)

Por tanto:  >GbdcMegf  h ` b [7EIi`g=<;=F/  2 <F*> L >H*8$667E<;N*F  ,$./V T . , S$j T .

(b) Directorio ra´ız (en sectores):

Una entrada de directorio MS-DOS ocupa 32 bytes. Por tanto, en un sector tendremos:

 2 <F> L >H8/6*7#<;N*F   >Gbk ;;    >Gb ;"   ml#  SH' , ] , X'=j

Si el directorio ra´ız mantiene un m´aximo de 512 entradas, deberemos asignarle:

2 ` b [n=*7#<;N*F  SH' , '=j  ] , (c) Clusters de datos:

Del total de 20480 bloques que posee el disco, tenemos reservados los siguientes:

Por el sector de arranque primario o MBR (Master Boot Record): 1 sector (medio bloque). Por el sector de arranque de la partici ´on DOS: 1 sector (medio bloque).

Por la FAT y su copia: 80 + 80 = 160 sectores (80 bloques). Por el directorio ra´ız: 32 sectores (16 bloques).

O sea, en total 97 bloques. Por tanto, para clusters de datos tendremos 20480 - 97 = 20383 clusters. 4. Mejor y peor caso para leer el cluster 33

de un archivo del directorio ra´ız. Mejor caso

Tarea Accesos Acumul.

Lectura y b ´usqueda del archivo en el primer bloque del 1 1 directorio ra´ız. Encontramos la entrada de directorio de

ese archivo en este primer bloque del ra´ız. Obtenemos, por tanto, el n ´umero del primer cluster del archivo.

Recorrido de la FAT para buscar el trig´esimo tercer cluster 0 1 del archivo. Todos los n ´umeros de cluster explorados se

encuentran en la cach´e para la FAT.

(13)

Peor caso

Tarea Accesos Acumul.

Lectura y b ´usqueda del archivo en los sectores del directorio ra´ız (Existen 16 bloques en el ra´ız). Encontramos la entrada de di-rectorio del archivo en el ´ultimo bloque del didi-rectorio.

16 16

Recorrido de la FAT para buscar el trig´esimo tercer cluster del archivo. Todos los n ´umeros de cluster explorados se encuentran en distintos bloques de la FAT y, adem´as, el primero de ellos no estaba en la cach´e.

32 48

Acceso al cluster pedido. 1 37

5. ´Idem pero suponiendo que el archivo se encuentra en\PRUEBA. Mejor caso

Tarea Accesos Acumul.

Lectura y b ´usqueda del directorio\PRUEBAen el primer bloque del directorio ra´ız. Econtramos su entrada de directorio en este primer bloque. Leemos su entrada de directorio y obtenemos su primer n ´umero de cluster.

1 1

Buscamos la entrada del archivo en el primer cluster del directo-rio\PRUEBAy lo encontramos.

1 2

Recorrido de la FAT para buscar el trig´esimo tercer cluster del archivo. Todos los n ´umeros de cluster explorados se encuentran en la cach´e para la FAT.

0 2

Acceso al cluster pedido. 1 3

Peor caso. Recu´erdese que en un cluster de 1Kb podemos guardar hasta 32 entradas de directorio. Esto implica

que el directorio\PRUEBAnecesita dos clusters.

Tarea Accesos Acumul.

Lectura y b ´usqueda del directorio\PRUEBAen los bloques del directorio ra´ız. Encontramos el directorio en el ´ultimo bloque del directorio ra´ız. Con ello obtenemos el n ´umero de su primer cluster.

16 16

Buscamos el archivo entre las primeras 32 entradas del directorio \PRUEBAy no lo encontramos.

1 17

Buscamos en la FAT el n ´umero del siguiente cluster del directo-rio. No est´a en la cach´e.

1 18

Leemos la ´ultima entrada del directorio (en el segundo de sus clusters) y encontramos all´ı el archivo buscado.

1 19

Recorrido de la FAT para buscar el trig´esimo tercer bloque del archivo. Todos los n ´umeros de cluster explorados se encuentran en distintos bloques de la FAT y, adem´as, el primero de ellos no estaba en la cach´e.

32 51

(14)

Cuesti´on 5

Para determinar el tama ˜no m´aximo de un archivo en un sistema UNIX debemos tener en cuenta dos cifras:

El n ´umero m´aximo de bloques que puede llegarse a mantener. Esto se determina a partir del tama ˜no de los punteros a zona, ya que no podremos tener una partici ´on de disco mayor que este l´ımite y un archivo no puede extenderse por m´as de una partici ´on.

Cu´antos punteros a zona pueden llegarse a guardar a partir de un nodo-i, teniendo en cuenta los niveles de indirec-ci´on que pueden mantenerse.

El tama ˜no m´aximo del archivo ser´a el menor de estos dos valores. Veamos los dos casos presentados:

UNIX.

Seg ´un el l´ımite debido al tama ˜no de puntero, tenemos que el tama ˜no m´aximo ser´ıa: tam. partici ´on = 2op bloques = 4 Gbloques

Mq

4 Tbytes

Seg ´un el n ´umero de punteros tendremos:

En una misma zona podr´a llegar a haber 1024 / 4 = 256 punteros a zona, ya que una zona tiene 1024 bytes y cada puntero ocupa 4.

Por tanto, el n ´umero de punteros a zona ser´a:

Tipo de puntero Punteros directos

Directos en nodo-i. 10

Indirecto simple. 256

Indirecto doble. 256p = 65.536

Indirecto triple. 256o = 16.777.216

TOTAL: 16.843.018

Por tanto, esta cifra obtenida es menor que la anterior y el tama ˜no m´aximo del archivo ser´a de: 16.843.018 bloques = 16.842.018 KbMq

16’064 Gbytes

MINIX.

Debido al tama ˜no de puntero, el tama ˜no m´aximo es en este caso: tam. partici ´on = 2r&s bloques = 64 Kbloques

4q

64 Mbytes

Seg ´un el n ´umero de punteros tendremos:

En una zona podr´a haber 1024 / 2 = 512 punteros a zona, ya que una zona tiene 1024 bytes y cada puntero ocupa 2.

Tipo de puntero Punteros directos

Directos en nodo-i. 7

Indirecto simple. 512

Indirecto doble. 512p = 262.144

TOTAL: 262.663

Esto hace un total de 262.663 bloques

4q

256’5 Mbytes.

(15)

Cuesti´on 6

1. Estructura del disco.

Un disco MINIX tiene las siguientes partes: (a) Bloque de arranque:

1

.

(b) Superbloque:

1

.

(c) Mapa de bits para nodos-i:

1

.

Necesitamos un bit por archivo. Como el disco ´unicamente va a permitir 512 archivos, basta con 512 bits. En la pr´actica, el autor de MINIX a˜nadi ´o una entrada m´as en el mapa de bits, correspondiente al nodo-i 0. Por tanto, en el mapa existir´ıan realmente 513 bits, aunque en disco s´olo se necesitar´ıa espacio para guardar 512 nodos-i.

En este sistema un bloque tiene 1024 bytes (8192 bits), con lo que el mapa cabe en un solo bloque. (d) Mapa de bits para zonas:

3

.

Un disco de 20 Mb tiene 20480 bloques de 1 Kb. En cada bloque caben 8 * 1024 bits. Por tanto, se tendr´a:

243  ,/.U ' .t,V T  ' .G,V  ,/. T  ,\[ S 0u]

(e) Bloques para nodos-i:

16

.

Como cada nodo-i ocupa 32 bytes, en un bloque cabr´an 1024 / 32 = 32 nodos-i. Si vamos a tener 512 nodos-i, necesitaremos:

243 wv SH' , ] ,yx ('=j

(f) Bloques para datos:

20458

. ´

Unicamente hay que descontar los bloques vistos en los puntos anteriores de la capacidad total del disco.

243  ,/.$V T .{z|@ '  '  '  ]  '6j Q  ,/./V T .{z},t,  ,$./V S$T

2. Reconstrucci ´on del mapa de bits de zonas.

Suponiendo que el resto del disco no ha resultado da ˜nado, se podr´ıa realizar lo siguiente:

(a) Reinicializar todo el mapa de bits de zonas de manera que todos las zonas de disco aparezcan como libres. (b) Siguiendo el mapa de bits para nodos-i, recorrer todos los nodos-i utilizados. Para cada uno de ellos habr´a que

consultar sus punteros directos a zona y marcar tales zonas como ocupadas en el mapa de bits que se da ˜n ´o. Lo mismo para los punteros indirecto simple e indirecto doble, bajando hasta el nivel de zona de punteros directos. De esta manera todas las zonas utilizadas por todos los archivos son marcadas en el mapa de bits como “en uso”.

Una vez terminados estos dos pasos, el mapa de bits para zonas estar´a recuperado.

Cuesti´on 7

Dado que ha cambiado el tama ˜no del bloque, es necesario en primer lugar calcular la cantidad de elementos que puede contener un bloque en funci ´on de su tipo:

tipo de bloque tama ˜no del elemento n ´umero de elementos

mapas de bits 1 bit 1024

nodos-i 32 bytes 4

entradas de directorios 16 bytes 8

referencias a zonas 2 bytes 64

(16)

1. C´omo est´a estructurado el disco

Bloque de arranque- Superbloque- Mapa de nodos-i- Mapa de zonas- Nodos-i- Datos 2. N´umero de bloques del mapa de nodos-i.

1

El n ´umero m´aximo de nodos-i necesarios es igual a 127. Por lo tanto, basta un solo bloque para contener el mapa de nodos-i, puesto que tiene capacidad para 1024 bits.

3. N´umero de bloques del mapa de zonas.

10

El n ´umero total de zonas (bloques) es igual a 10.240. Como cada bloque tiene capacidad para 1024 bits, son necesarios 10 bloques para albergar todo el mapa de zonas.

4. N´umero de bloques de nodos-i.

32

El n ´umero m´aximo de nodos-i necesarios es igual a 127. Puesto que un bloque tiene capacidad para 4 nodos-i, son necesarios 32 para contener todos los nodos-i.

5. N´umero total de bloques de datos.

10.195

Se han consumido en los apartados anteriores 1, 10 y 32 bloques. Junto con los bloques de arranque y superbloque, dan un total de 45 bloques consumidos. Siendo el total de bloques igual a 10.240, quedan 10.195 bloques de datos, los cuales se pueden utilizar para albergar datos convencionales, entradas de directorios o referencias a otros bloques.

6. N´umero de nodos-i utilizados.

41

Un nodo-i por cada directorio o fichero regular.

Directorio ra´ız (/) 1

Directorio /bin 1

Directorio /lib 1

Ficheros regulares de / 10 - 2 (. y ..) -2 (/bin y /lib) 6 Ficheros regulares de /bin 16 - 2 (. y ..) 14 Ficheros regulares de /lib 20 - 2 (. y ..) 18

TOTAL 41

7. N´umero de bloques utilizados para:

(a) Contener datos convencionales de ficheros regulares.

304

El n ´umero de ficheros regulares es igual a 38. (41 menos 3 directorios). La ocupaci ´on en disco de los datos de estos ficheros es la siguiente:

36 ficheros regulares de 768 bytes (6 bloques) 216 1 fichero regular de 1024 bytes (8 bloques) 8 1 fichero regular de 10240 bytes (80 bloques) 80

TOTAL 304

(b) Contener entradas de directorios.

7

Directorio ra´ız (/) 10 entradas 2 Directorio /bin 16 entradas 2 Directorio /lib 20 entradas 3

TOTAL 7

(c) Contener referencias a otros bloques.

4

Los ficheros regulares de 768 bytes no utilizan los punteros indirectos del nodo-i, puesto que ocupan 6 zonas y en el nodo-i en MINIX existen 7 referencias directas.

El fichero /bin/mediano necesita 8 zonas de datos.

Las primeras 7 zonas son referenciados directamente en el nodo-i.

El bloque n ´umero 7 necesita la referencia simple indirecta del nodo-i. Esta referencia necesita una zona de

datos, cuyos primeros dos bytes apuntan a la zona n ´umero 7 del fichero, y el resto del bloque no se utiliza.

(17)

Las primeras 7 zonas son referenciadas directamente en el nodo-i.

Las 64 zonas siguientes necesitan la referencia simple indirecta del nodo-i. Esta referencia necesita una zona

de datos, que se utiliza completamente.

Las ´ultimas 9 zonas necesitan la referencia doble indirecta del nodo-i. Esta referencia necesita una zona de

datos, cuyos primeros dos bytes apuntan a otra zona de datos, que contiene las ´ultimas 9 referencias del

fichero.

Cuesti´on 8

El primer paso para resolver el problema consistir´a en determinar qu´e bloques son utilizados para mantener los nodos-i y otras estructuras al principio del disco.

Veamos:

Supondremos que el bloque de arranque sigue siendo ´unico:

1.

Necesitamos tambi´en un bloque para el superbloque:

1

. Mapa de bits para nodos-i:

1.

Como ´unicamente necesitamos 100 nodos-i y un bloque tiene 32 * 8 = 256 bits, basta con un bloque para mantener esta informaci ´on.

Mapa de bits para zonas de datos:

4.

Si el dispositivo tiene 32 Kb y el tama ˜no de bloque es de 32 bytes, tendr´a 1024 bloques. Si cada bloque puede mantener 256 bits, el mapa necesita 1024 / 256 = 4 bloques.

Bloques para nodos-i:

50.

Si hay 100 nodos-i y en cada bloque caben 2, necesitaremos 100 / 2 = 50 bloques. Bloques para datos:

967

.

Los bloques ya citados contabilizan un total de 57. Si el dispositivo tiene 1024, la diferencia 1024 - 57 = 967 ser´a la cantidad de bloques para datos (zonas) que tendr´a el dispositivo.

Con esto sabemos que:

Los bloques del 0 al 6 se utilizan para mantener el bloque de arranque, el superbloque y los mapas de bits.

El bloque 7 ser´a el primero que mantenga nodos-i. En concreto mantendr´a los nodos-i 0 y 1. En general, el bloque i entre 7 y 56, mantiene los nodos-i: (2*i - 14) y (2*i - 13).

El bloque 57 ser´a el primero que mantenga zonas para datos, directorios y zonas de punteros a zona. 1. ´Arbol de directorios.

Veamos sobre qu´e archivos mantenemos informaci ´on. Seg ´un lo dicho anteriormente los bloques 7, 8, 15 y 17 mantienen los nodos-i (0, 1), (2, 3), (16, 17) y (20, 21).

Contrastando esta informaci ´on con los bloques 57 a 60, 62 a 64 y 88, puede decirse que:

El bloque 57 mantiene el directorio ra´ız, puesto que utiliza el nodo-i 1 y sus entradas . y .. apuntan a dicho nodo-i. Tiene ´unicamente dos subdirectorios:bin(nodo-i 2) yusers(nodo-i 3).

Consultando el nodo-i 2, vemos que el directorio/binest´a guardado en la zona 58 y que s´olo tiene esa zona. Mantiene dos entradas:cc(nodo-i 4) ymined(nodo-i 5), pero no podemos decir nada m´as sobre ellas porque no sabemos nada de sus nodos-i.

(18)

Consultando el nodo-i 3 vemos que el directorio/usersest´a guardado en las zonas 59, 60, 62 y 63 (en este orden), ya que el n ´umero 61 se utiliza como puntero indirecto a zona.

Por tanto, este directorio tiene 16 entradas que corresponden a.,.., y 14 archivos cuyo nombre va dedso00 adso13.

El bloque 15 nos proporciona los nodos-i 16 y 17, correspondientes a los directorios/users/dso10y /users/dso11respectivamente. Ambos ocupan una zona ´unicamente. En ambos casos encontramos un ´unico archivomsh.cdentro de cada directorio.

El bloque 17 mantiene los nodos-i de estos dos archivos. Deberemos usarlo para tener una idea del tama ˜no de ambos archivos.

Por lo dicho hasta ahora, la estructura de directorios debe ser la siguiente (se adjunta el n ´umero de nodo-i corres-pondiente a cada archivo):

/ 1

...

...

bin 2 users 3 cc 4 mined 5 dso00 6 dso10 16 dso11 17 dso13 19 msh.c 20 msh.c 21

2. Ejecuci´on deopen( "/users/dso11/msh.c", O RDONLY ). Veamos qu´e accesos deben realizarse:

Bloque Explicaci ´on

57 Lectura del directorio ra´ız. Encontramos entradausers. 8 Lectura del nodo-i 3. Encontramos n ´umeros de zona donde leer

el directoriousers.

59 Buscamos en las primeras dos entradas el archivodso11. No lo encontramos.

60 Buscamos en las siguientes cuatro entradas. Tampoco tenemos suerte. 61 Leemos la zona que mantiene los siguientes punteros directos. 62 Buscamos en las siguientes cuatro entradas. No lo encontramos. 63 Buscamos en las siguientes cuatro entradas. Encontramos entrada.

Sabemos que el n ´umero de nodo-i es 17 y que estar´a en el bloque 15. 15 Encontramos que la zona para el directoriodso11es el 88.

88 Buscamos entradamsh.cen el directorio y la encontramos. El nodo-i a cargar para realizar la apertura es el 21.

17 Leemos el nodo-i 21 en el bloque 17. Con esto terminamos. 3. Tama ˜no en zonas de/users/dso10/msh.c.

(19)

Sabemos que cada zona de disco puede mantener 16 punteros a otras zonas. Partiendo de la informaci ´on del nodo-i 20, en el bloque 17, podemos saber:

Las zonas 65 y 66 son las dos primeras del archivo.

El n ´umero 67 es un puntero indirecto. En ´el se mantienen los siguientes 16 n ´umeros de zona.

El n ´umero 68 es un puntero doble indirecto. Su contenido nos da los n ´umeros de tres zonas m´as que contienen ya punteros directos. Por tanto, sabemos que el archivo tendr´a 32 zonas m´as (cuyos n ´umeros est´an guardados en las zonas 85 y 86).

El n ´umero 87 es un puntero indirecto. No sabemos nada de su contenido. Sin embargo, como m´ınimo tendr´a un puntero directo v´alido y como m´aximo 16.

Acumulando lo dicho anteriormente tendremos:

Que el fichero utiliza las zonas 67, 68, 85, 86 y 87 como zonas con punteros a zona. Por tanto, 5 zonas se necesitan para esto.

Que el fichero utiliza 2 + 16 + 2*16 = 50 zonas de datos, referenciados por el nodo-i o por las zonas de punteros 67, 85 y 86, mientras que la zona 87 aportar´a entre 1 y 16 zonas m´as. O sea se emplean entre 51 y 66 zonas de datos.

Esto hace que el total oscile entre

56

y

71

zonas.

Cuesti´on 9

1. Tama ˜no m´ınimo del puntero a zona.

En el disco tendremos 320 bloques, ya que su capacidad total es de 320 Kb y el tama ˜no de bloque (y de zona) es de 1Kb.

Para mantener 320 bloques necesitamos al menos

9 bits

, ya que 2~ = 256 (con 8 bits ´unicamente se pueden

referenciar 256 bloques diferentes) mientras que 2 = 512 (con 9 bits se podr´ıan referenciar 512 bloques).

2. Punteros por zona.

En una zona podremos mantener:

2    >Gb€[tN 2 >  >Gb€[:` 2 <;6F*N  T  ' .t,V Y  Y ' .:[, 0 Y ' .‚ ` 2 <;6FN/

3. Tipo de punteros en el nodo-i.

Si tenemos 16 bytes para punteros, podremos llegar a mantener en un mismo nodo-i:

2   '6j  T Y  ' , T Y (' V:[n, 0 ' Vƒ ` 2 <;6FN/

Las alternativas presentadas se convierten as´ı en las siguientes: (a) 14 punteros directos.

Permite un tama ˜no m´aximo del archivo de 14 Kb, pero los n ´umeros de bloque est´an todos accesibles una vez se carga el nodo-i en memoria.

El ´unico problema es que el tama ˜no m´aximo del archivo es excesivamente peque ˜no. (b) 13 punteros directos y uno indirecto simple.

Esta opci ´on es la m´as adecuada, puesto que si el tama ˜no del archivo no supera los 13 Kb, todos sus punteros se mantienen en el nodo-i. En caso de que el archivo sea mayor basta con mantener un puntero indirecto simple ya que esto admitir´ıa 910 punteros directos m´as. Obviamente, como la capacidad del disco es de 320 bloques, nunca se llegar´ıa a requerir m´as bloques de punteros.

(20)

(c) 12 punteros directos y 2 indirectos simples.

No es conveniente, puesto que el segundo puntero indirecto nunca se usar´ıa y se obligar´ıa a usar un bloque de punteros para los archivos con m´as de 12 Kb, mientras con la opci ´on anterior esto no era necesario hasta sobrepasar los 13 Kb.

(d) 12 punteros directos, 1 indirecto simple y 1 indirecto doble. Ocurre lo mismo que en el caso anterior.

Cuesti´on 10

1. Estructura del disco. El disco tendr´a: op#„r;…!p&†

‡

r&p

= 64 bloques. Estos se descomponen del siguiente modo:

1

bloque de arranque.

1

superbloque.

1

bloque para el mapa de nodos-i.

Tendremos 31 nodos-i, por tanto necesitamos 31 bits para “mapearlos”. Adem´as, en MINIX el nodo-i n ´umero cero, a pesar de no existir, ocupaba espacio en el mapa. Por tanto, habr´a 32 bits en el mapa. Con un bloque tenemos suficiente.

1

bloque para mapa de zonas de datos.

Como m´aximo tendr´ıamos 64 bits (algunos no hacen falta puesto que est´an ocupados por el bloque de arran-que, el superbloarran-que, los mapas, etc.). Con un bloque volvemos a tener bastante.

1

bloque para nodos-i.

Tendremos 31 nodos-i y cada uno de ellos necesita 16 bytes. Por tanto, se necesitan 496 bytes para almace-narlos, con lo que se usar´a un bloque.

59

bloques para datos.

Del total de 64 bloques del disco, 5 ya est´an ocupados. Por tanto, quedan 59 para datos. 2. Tama ˜no m´aximo de archivo.

Necesitamos conocer cu´antos bloques podremos referenciar mediante los 60 bits que mantiene un nodo-i para punteros directos.

El tama ˜no de un puntero a bloque ser´a:

64 bloques0 2s bloques0 punteros de 6 bits

Tenemos 60 bits disponibles. As´ı tendremos: 60 / 6 = 10 punteros directos. Como cada bloque es de 512 bytes, el archivo podr´a llegar a 5 Kb. 3. M´aximo n ´umero de entradas en un directorio.

En principio este valor no est´a limitado. ´Unicamente depende del n ´umero de archivos que se puedan crear. En nuestro caso, s´olo podremos crear 31 archivos. Si todos los archivos se encontraran en el directorio ra´ız tendr´ıamos:

Las entradas.y..que se referir´ıan al propio archivo del directorio ra´ız. 30 entradas m´as que acoger´ıan al resto de archivos.

Esto supone un total de

32 entradas

. Como cada entrada necesita 16 bytes, esto supondr´ıa 512 bytes; o lo que es lo mismo,

1 bloque

.

(21)

4. M´aximo n ´umero de zonas libres si se crean todos los archivos posibles.

Podremos llegar a crear 31 archivos. De ellos, al menos uno ser´a un directorio (el directorio ra´ız). Los treinta restantes pueden ser archivos regulares.

En UNIX se permite crear un archivo de longitud cero. Es m´as, este tipo de archivos no requieren ninguna zona de datos. Por tanto, si los 30 archivos regulares tienen tama ˜no m´ınimo no est´an ocupando zonas de datos.

Por todo lo anterior, estos archivos solamente ocupar´an la zona necesaria para el directorio ra´ız. Como ten´ıamos 59 zonas para datos, quedar´an libres

58 zonas

.

5. Mapas de bits.

En el mapa de bits para nodos-i tenemos la siguiente situaci´on:

El nodo-i 0 se considera en uso. Aparece en el mapa como usado, pero en la pr´actica no existe tal nodo-i. El nodo-i 1 mantiene el directorio ra´ız.

El nodo-i 2 mantiene el directorio/dir1. El nodo-i 3 mantiene el archivo/dir1/b. El nodo-i 5 mantiene el archivo/dir1/c.

Respecto al mapa de bloques de datos (zonas), sabemos lo siguiente (recu´erdese que la primera zona del mapa corresponde al primer bloque de datos; en nuestro caso el 5):

El directorio ra´ız est´a en la zona 5. El directorio/dir1est´a en la zona 6.

El archivo/dir1/best´a en las zonas 7, 12, 13, 14, 15, 16, 17, 18, 19 y 20. El archivo/dir1/cest´a en las zonas 21, 22, 23, 24, 25, 26, 27, 8 y 9. Los mapas de bits ser´an:

Mapa de nodos-i Mapa de zonas

0 0 0 0 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 – – – – –

6. Contenido de los archivos directorio del punto anterior. Ser´a el siguiente: 1 . 1 .. 2 dir1 2 . 1 .. 3 b 5 c

Cuesti´on 11

1. Cilindros recorridos con SSTF y LOOK.

(22)

Cil. actual Cilindros pendientes Desplaz. (cil.) 50 23. 48, *, 70, 81, 95 50 - 48 = 2 48 23, *, 70, 81, 95 70 - 48 = 22 70 23, *, 81, 95 81 - 70 = 9 81 23, *, 95 95 - 81 = 14 95 23, * 95 - 23 = 72 TOTAL: 121 LOOK

Direc. servicio Cil. servidos Desplaz. (cil.)

Ascendente 70, 81 y 95 95 - 50 = 45 Descendente 48 y 23 95 - 23 = 72

TOTAL: 117

2. Algoritmo “ ´optimo”

Ni el LOOK ni el SSTF dan el mejor resultado posible para las peticiones que nos plantea el problema. Si el sentido inicial de servicio fuera descendente el LOOK proporcionar´ıa un resultado ´optimo.

Dado un conjunto est´atico de peticiones, el recorrido ´optimo ser´ıa el siguiente:

Conocido el conjunto de peticiones y el cilindro donde est´a actualmente la cabeza, servirlas en el sentido hacia aquel extremo que quede m´as cerca del cilindro actual. Una vez llegado al cilindro de la ´ultima petici´on en tal sentido, invertir el sentido de servicio y pasar a servir las peticiones restantes.

En nuestro caso, las peticiones en los extremos (la de menor y mayor cilindro, respectivamente) son sobre los cilindros 23 y 95. El cilindro actual es el 50. Por tanto, el “extremo” m´as cercano es el cilindro 23, con lo que primero serviremos en orden descendente y despu´es en ascendente. As´ı,

Direc. servicio Cil. servidos Desplaz. (cil.)

Descendente 48 y 23 50 - 23 = 27 Ascendente 70, 81 y 95 95 - 23 = 72

TOTAL: 99

No obstante, este algoritmo no funcionar´ıa bien a medida que fueran llegando nuevas peticiones ya que deber´ıan recalcularse los “extremos” con cada nueva petici ´on y raramente se atender´ıan peticiones alejadas del cilindro actual.

Cuesti´on 12

(23)

/

unix

users bin

felipe alfonso sh ls cat less tty0 console tty1

ed mysh

dev

2. Estado final de los directorios.

1 . 1 .. 2 users 21 unix 5 dev 6 bin 2 . 1 .. 10 felipe 12 alfonso 8 mysh 5 . 1 .. 13 tty1 11 console 6 . 1 .. 20 ls 22 less 25 ed 10 . 2 .. 23 mysh 12 . 2 .. 3 sh 3 bash 7 sistema

(24)

CUESTIONES Y PROBLEMAS PROPUESTOS

Cuesti´on 1

Decidir si las siguientes afirmaciones sobre el sistema de archivos UNIX son verdaderas o falsas: La creaci ´on de un enlace f´ısico mediante el mandatolnimplica la utilizaci ´on de un nuevo nodo-i. La creaci ´on de un enlace simb ´olico mediante el mandatoln -sno requiere el uso de un nuevo nodo-i. El mandatomvnunca implica el uso de nodos-i libres ni la liberaci ´on de nodos-i en uso.

Para que un nodo-i pueda liberarse, deben eliminarse todos los enlaces f´ısicos y simb ´olicos sobre ese nodo-i. Dado un archivo/dir1/a, la ejecuci ´on del mandatorm /dir1/asiempre implica la liberaci ´on de su nodo-i. Se supone que el usuario tiene suficientes derechos de acceso a dicho archivo.

Cuesti´on 2

¿ Qu´e problemas plantear´ıa en UNIX la posibilidad de crear enlaces f´ısicos sobre archivos de tipo directorio ?

Cuesti´on 3

Explicar c´omo podr´ıan darse m´ultiples nombres a un mismo archivo en sistemas de archivo Windows 95 / 98 (FAT16 / FAT32).

Cuesti´on 4

Decidir si las siguientes afirmaciones sobre algoritmos de planificaci ´on de peticiones a disco son verdaderas o falsas: Si un manejador de disco no suele tener m´as de una o dos peticiones pendientes, en la pr´actica se planifica con estrategia FCFS.

Con una estrategia FCFS el tiempo de espera de una petici ´on en la cola del manejador es el m´ınimo posible. La estrategia SSTF es injusta porque puede marginar las peticiones sobre los cilindros m´as internos o externos del disco.

En un sistema multiprogramado se podr´a tener m´as de una petici ´on pendiente del mismo hilo de ejecuci ´on. En un sistema multiprogramado no se podr´a tener dos peticiones pendientes sobre el mismo cilindro.

Cuesti´on 5

Decidir si las siguientes afirmaciones sobre estructuras de directorios son verdaderas o falsas: El sistema de archivos de MS-DOS es un ejemplo de estructura de directorios de dos niveles. El sistema de archivos de UNIX es un ejemplo de estructura de directorios en grafo ac´ıclico.

(25)

MS-DOS fuerza a que todos los dispositivos de almacenamiento est´en montados sobre el mismo ´arbol de directorios. Una estructura en grafo ac´ıclico permite mantener varios enlaces sobre un mismo fichero regular.

Cuesti´on 6

Se tiene un sistema DOS donde el tama ˜no de cluster es igual a 4 Kb (8 sectores) y en el que las primeras 52 entradas de la FAT tienen los siguientes valores:

0 X 1 X 2 EOF 3 4 4 5 5 6 6 7 7 8 8 9 9 10 10 11 11 12 12 EOF 13 14 14 15 15 16 16 17 17 18 18 19 19 20 20 21 21 22 22 EOF 23 EOF 24 EOF 25 EOF 26 24 27 EOF 28 EOF 29 30 30 EOF 31 34 32 EOF 33 36 34 28 35 38 36 40 37 41 38 32 39 29 40 37 41 42 42 44 43 50 44 47 45 46 46 33 47 49 48 45 49 EOF 50 48 51 FREE

A continuaci ´on se listan tres directorios presentes en ese disco. Sus entradas tendr´an el siguiente formato (se suprimen los bytes reservados y los campos de fecha y hora de ´ultima actualizaci ´on):

Nombre Extensi ´on Atributos Primer cluster Longitud

El campo atributos se representar´a en binario. En MS-DOS, los ocho bits de este campo tienen el siguiente significado: Res. Res. Archivable Directorio Etiqueta Sistema Oculto Solo lect.

Los directorios mencionados tienen el siguiente contenido:

. 00010000 2 0 .. 00010000 54 0 IO SYS 00000111 3 40.755 DISCO C 00001000 0 0 MSDOS SYS 00000111 13 38.158 DOS 00010000 23 0 COMMAND COM 00000001 43 56.539 ARCHIVOS 00010000 27 0 . 00010000 23 0 .. 00010000 2 0 CONFIG SYS 00000000 34 8.034 LABEL EXE 00000000 31 9.566 ATTRIB EXE 00000000 39 11.284 DELTREE EXE 00000000 35 11.173 . 00010000 27 0 .. 00010000 2 0 A DAT 00000000 25 4.034 B 00000000 26 2.342 SE PIDE

(26)

1. Dibujar la estructura de directorios.

2. Utilizando las entradas que se conocen de la FAT, decir qu´e clusters pertenecen a cada archivo. ¿ Puede detectarse alguna inconsistencia ?

3. Comentar qu´e salida dar´ıa el mandatoDIR(sin argumentos) si nos encontramos en el directorio mantenido en el cluster 2.

4. Si se supone que el directorio que se encuentra en el cluster 2 funciona como directorio ra´ız, comentar c´omo quedar´ıa la FAT y los directorios tras haber realizado las siguientes acciones:

C:> DEL \DOS\CONFIG.SYS

C:> COPY \ARCHIVOS\A.DAT \A.BAK

suponiendo que la asignaci ´on de clusters libres se intenta realizar con aquellos que tengan menor n ´umero de cluster. 5. ¿ Qu´e pasar´ıa si la entrada 35 de la FAT apuntara al bloque 35 e intent´aramos ejecutar el mandatoDELTREE?

¿ Qu´e pasa en general si una entrada de la FAT apunta a ella misma ?

6. Suponiendo que el disco estudiado tiene una capacidad de 40 Mb, guarda FAT original y una copia (punteros de 16 bits) y el directorio ra´ız puede mantener 512 entradas, dar la estructura del disco y mencionar cu´antos clusters o sectores tendr´a cada parte.

7. Comentar cu´anto espacio se desperdicia debido a fragmentaci ´on interna en cada uno de los archivos que aparecen en el enunciado (Sin tener en cuenta el apartado 4).

8. Suponiendo bloques (y zonas) de 4 Kb y un disco de igual capacidad, con punteros a zona de 16 bits, entradas de directorio de 16 bytes, un m´aximo de 1024 archivos, nodos-i de 32 bytes con 7 punteros directos, un indirecto simple y uno doble:

Indicar c´omo se estructurar´ıa este mismo disco bajo MINIX.

Suponiendo que contiene ´unicamente estos mismos archivos y directorios, dar el contenido de los archivos de tipo directorio suponiendo que:

– Los archivos se crearon por niveles (primero todos los que aparecen en el directorio ra´ız y despu´es los

archivos que cuelgan de sus dos subdirectorios). Dentro de un mismo nivel se sigui ´o orden alfab´etico.

– Siempre se us´o el nodo-i m´as bajo disponible.

– El disco no conten´ıa ning ´un archivo previamente y no se han borrado ni creado m´as archivos.

Referencias

Documento similar

La Intervención General de la Administración del Estado, a través de la Oficina Nacional de Auditoría, en uso de las competencias que le atribuye el artículo

La campaña ha consistido en la revisión del etiquetado e instrucciones de uso de todos los ter- mómetros digitales comunicados, así como de la documentación técnica adicional de

Debido al riesgo de producir malformaciones congénitas graves, en la Unión Europea se han establecido una serie de requisitos para su prescripción y dispensación con un Plan

Como medida de precaución, puesto que talidomida se encuentra en el semen, todos los pacientes varones deben usar preservativos durante el tratamiento, durante la interrupción

Abstract: This paper reviews the dialogue and controversies between the paratexts of a corpus of collections of short novels –and romances– publi- shed from 1624 to 1637:

Entre nosotros anda un escritor de cosas de filología, paisano de Costa, que no deja de tener ingenio y garbo; pero cuyas obras tienen de todo menos de ciencia, y aun

Después de una descripción muy rápida de la optimización así como los problemas en los sistemas de fabricación, se presenta la integración de dos herramientas existentes

Por lo tanto, en base a su perfil de eficacia y seguridad, ofatumumab debe considerarse una alternativa de tratamiento para pacientes con EMRR o EMSP con enfermedad activa