ejercicio nº 10.

Anuncio
UNIVERSIDAD PONTIFICIA DE SALAMANCA EN MADRID
Facultad de Informática
Escuela Universitaria de Informática
Departamento de Lenguajes, Sistemas Informáticos e Ingeniería de Software
SISTEMA DE GESTIÓN DE FICHEROS.
EJERCICIO Nº1.
Una unidad de disco tiene 300 cilindros numerados del 0 al 299, 4 cabezas de Lectura/Escritura y 18
sectores por pista, de 512 bytes cada uno. El disco gira a 3600 rpm y el tiempo medio de
posicionamiento es de 30 milisegundos.
La velocidad de transferencia de datos es de 4 Mb/seg.
1) Calcular la capacidad del Disco en Mb.
2) Calcular la dirección del bloque del Cilindro 20, Superficie 2 y Sector 10.
3) Calcular el tiempo necesario para leer 3.540 bytes, distribuidos aleatoriamente en el disco.
EJERCICIO Nº 2.
Una unidad de disco tiene 305 cilindros, 4 cabezas de Lectura/Escritura y 15 sectores por pista de 512
bytes cada uno.
El tiempo de Latencia tl = 0,02 segundos.
El tiempo medio de posicionamiento es de 30 milisegundos.
La velocidad de transferencia es de 2 Mb/seg.
1) Calcular la capacidad del disco en Mb.
2) Calcular el tiempo necesario para la lectura 12 sectores situados consecutivamente en la misma
pista.
3) Calcular el tiempo que se necesitará para la lectura de 15 sectores distribuidos aleatoriamente en
el disco.
EJERCICIO Nº 3.
Dado un sistema operativo cuya forma de almacenamiento de la información en un soporte de
acceso directo se basa en el método de asignación contigua, determinar en qué bloques se deben
ubicar los ficheros F1 de 3.000 bytes y F2 de 6.000 bytes. Realizar la asignación por todos los
métodos de asignación contigua conocidos, pero de forma independiente para cada uno de los
ficheros.
El tamaño del bloque es de 512 bytes y en el momento de realizar la asignación, los bloques que
están ocupados en el disco son los siguientes:
3, 4, 5, 6, 15, 16, 17, 18, 33, 34, 35, 36, 50, 51, 52, 53,....
Definir la lista de espacio libre mediante un vector de bits, que represente la situación anteriormente
definida.
SISTEMA DE GESTIÓN DE FICHEROS
1
UNIVERSIDAD PONTIFICIA DE SALAMANCA EN MADRID
Facultad de Informática
Escuela Universitaria de Informática
Departamento de Lenguajes, Sistemas Informáticos e Ingeniería de Software
EJERCICIO Nº 4.
Supuesto un sistema operativo, que gestiona el espacio en disco utilizando la asignación contigua.
En un momento determinado, se realiza la siguiente llamada al sistema:
READ (F1,8)
Dicha llamada significa, que se quiere leer del fichero “F1”, el registro lógico nº 8.
Sabiendo que en el directorio actual tenemos además de otras entradas la siguiente:
Nombre
F1
tamaño
6540
bloque comienzo en disco
bytes
acceso
Sólo lectura
60
Sabiendo que el registro lógico tiene un tamaño de 128 bytes, que un bloque en el disco tiene un
tamaño de 512 bytes, el disco tiene 300 cilindros, 4 caras útiles y 17 sectores por pista.
Indicar a qué pista, cara y sector del disco habrá que acceder para poder leer del fichero “F1” el
registro lógico 8.
EJERCICIO Nº 5.
Un sistema operativo gestiona el espacio en disco mediante un vector de 5 punteros. Los tres
primeros apuntan a bloques de datos, el 4º puntero se utiliza para indexación a un nivel y el 5º para
indexación a dos niveles.
Si el tamaño de bloque (tanto de índice como de datos) es de 1024 bytes y el tamaño de cada puntero
es de 8 bytes, calcular el espacio máximo en disco que se puede gestionar con esta estructura.
EJERCICIO Nº 6.
Dado un sistema operativo cuya forma de almacenamiento se basa en el método de asignación
contigua, determinar en qué bloques se deberían ubicar un fichero F1, cuyo tamaño es de 12
registros lógicos y otro F2 de 3.400 bytes.
Realizar la asignación de forma independiente para cada estrategia de asignación de espacio
contiguo, teniendo en cuenta, que el tamaño del registro lógico para el fichero F1 es de 512 bytes y
el tamaño del bloque 1 Kbyte.
El almacenamiento de estos dos ficheros en el disco, se realizará, primero el F1 y después el F2,
indicando en cada momento la situación actual de la lista de espacio libre, que en el momento inicial
es la que figura a continuación:
LISTA DE ESPACIO LIBRE
N. BLOQUES
CONTIGUOS
2
2
6
1
SISTEMA DE GESTIÓN DE FICHEROS
9
6
18
1
40
10
60
3
70
6
80
12
2
UNIVERSIDAD PONTIFICIA DE SALAMANCA EN MADRID
Facultad de Informática
Escuela Universitaria de Informática
Departamento de Lenguajes, Sistemas Informáticos e Ingeniería de Software
EJERCICIO Nº 7.
Una unidad de disco gestionada por asignación contigua, dispone de 256 cilindros, 16 pistas por
cilindro y 9 sectores de 512 bytes por pista. El tiempo medio de posicionamiento es de 0,2 seg., la
velocidad de transferencia de 5 Mb/seg. y la velocidad de rotación del disco de 3600 rpm. En un
instante determinado, el espacio disponible está indicado por el siguiente mapa de bits:
1 1 1 0 0 1 1 0 0 0 0 0 1 1 1 0 0 0 1 1 0 1 1 1...
1) Calcular la capacidad del disco en Mb.
2) Suponiendo que los bloques son de un sector, para un fichero F1 con un tamaño de 1.280 bytes y
registros lógicos de 128 bytes:
a) Exprese mediante una lista de espacio libre por dirección base y desplazamiento, la
disponibilidad de espacio en el disco tras ubicar F1 con la estrategia del mejor ajuste.
b) Ubicado F1, indicar el tiempo invertido por el sistema en leer el fichero.
c) Calcular en que cilindro, cara y sector estará ubicado el registro lógico numero 7.
EJERCICIO Nº 8.
Un disco magnético dispone de 2 platos, 200 cilindros y 16 sectores por pista, cada sector tiene 512
bytes. El bloque se define con un tamaño de 2 sectores. La tabla de espacios libres para un momento
determinado es:
DIRECCIÓN BASE
DESPLAZAMIENTO
0
4
15
1
35
0
62
8
97
7
125
0
Se desea resolver los siguientes puntos:
1) Indicar en qué bloques se grabarían los ficheros mencionados a continuación y cómo se
modificaría la tabla al grabar los ficheros:
a) Si se graba un fichero F1 de 5250 bytes, con asignación contigua y estrategia del peor ajuste.
b) Si se graba un fichero F2 de 3000 bytes, de forma contigua y con la estrategia del mejor
ajuste.
2) Posteriormente se desean leer 500 bytes a partir del byte 2000 del fichero F2. Indicar qué cilindro,
superficie y sector tendremos que leer del disco.
3) Finalmente se quiere diseñar un sistema de archivos para ese disco que no utilice la asignación
contigua, sino una combinación entre asignación directa e indexada.
Para ello se utilizan en el directorio tres punteros de seguimiento de ficheros, los dos primeros
se utilizan para asignación directa y el tercero se utiliza para la asignación indexada.
El proyecto consiste en utilizar punteros índices de 8 bytes y se desea justificar el nivel de
indexación necesario que tenemos que desarrollar, para poder utilizar un fichero cuyo tamaño
máximo pueda grabarse en el disco citado en el enunciado del problema.
SISTEMA DE GESTIÓN DE FICHEROS
3
UNIVERSIDAD PONTIFICIA DE SALAMANCA EN MADRID
Facultad de Informática
Escuela Universitaria de Informática
Departamento de Lenguajes, Sistemas Informáticos e Ingeniería de Software
EJERCICIO Nº 9.
Un sistema utiliza el siguiente método de asignación de espacio en disco:



En la entrada de directorio del fichero, existe un campo, que contiene la dirección del primer
bloque del fichero, que es siempre un bloque índice.
En cada bloque índice, se almacena un conjunto de punteros de 16 bits cada uno, que apuntan
directamente a bloques de datos.
Los bloques de índices están asociados por una lista enlazada.
Sabiendo que cada bloque del disco tiene un tamaño de 512 bytes, calcular:
a) El tamaño máximo de espacio en disco que puede gestionarse mediante este método de
asignación.
Para un fichero de 37.527 registros lógicos de 80 bytes de longitud cada registro:
b) El número total de bloques utilizados por el sistema para ubicar el fichero en el disco.
c) El número total de registros adicionales que podría tener el fichero, sin que el número de
bloques índices asignados por el sistema al fichero aumente.
d) El número total de bloques utilizados por el sistema, para ubicar el fichero en el disco, si los
bloques índices están asociados mediante una lista doblemente enlazada.
EJERCICIO Nº 10.
Un dispositivo de disco magnético esta formado por 6 platos, 200 cilindros (numerados de 0-299) y
10 sectores por pista de 512 bytes cada uno. Los bloques del disco son de 1Kb y la velocidad de
transferencia es de 3MB por minuto. El tiempo de posicionamiento de las cabezas es de 12ms y la
velocidad de rotación del disco es de 3.600 r.p.m.
En un instante determinado, la tabla de bloques libres es la siguiente:
N. DE BLOQUE
SIGUIENTES LIBRES
1.250
6
3.872
5
8.931
2
11.120
1
a) Calcular el tiempo en grabar un fichero de 17.621 bytes.
b) Si el disco se gestionase mediante asignación indexada de forma que el bloque inicial tuviese
6 índices, 4 para apuntar directamente a bloques de datos, el 5º que apunte a una tabla de
índices de 1 nivel y el 6º a una tabla de 2 niveles. Cada índice ocupa 128 bytes. Indique
razonadamente los índices que tendríamos que seguir, para localizar el byte 16.250 de un
fichero.
EJERCICIO Nº 11.
Un sistema operativo gestiona sus ficheros con registros de longitud fija sin tramos. Los sectores son
de 512 bytes y el disco tiene 18 cabezas de 3000 cilindros y 9 sectores por pista.
En este sistema se estudian dos métodos de asignación de espacio en disco: (i) asignación indexada
con bloques índice doblemente enlazados y (ii) asignación indexada con dos niveles de bloques
índice.
SISTEMA DE GESTIÓN DE FICHEROS
4
UNIVERSIDAD PONTIFICIA DE SALAMANCA EN MADRID
Facultad de Informática
Escuela Universitaria de Informática
Departamento de Lenguajes, Sistemas Informáticos e Ingeniería de Software
Para cada uno de los sistemas anteriores, calcular:
a) El tamaño máximo de fichero en este disco.
b) El número de accesos necesario para leer el registro lógico 1.100 del fichero F1 que comienza en el
bloque 1.800 del disco. El tamaño de registro lógico para F1 es de 150 bytes.
c) La posición física de comienzo de F1 y de su primer bloque de datos.
EJERCICIO Nº 12.
Un sistema utiliza un vector de n punteros en la entrada de directorio de cada archivo, para acceder
a los distintos bloques asignados al archivo. Los cuatro primeros punteros del vector, apuntan
directamente a bloques de datos, mientras que el resto de los punteros, se utiliza para indexar a
distintos niveles (el quinto puntero tendrá un solo nivel de bloques índice, el sexto puntero tendrá
dos niveles de bloques índice, el séptimo puntero tendrá tres niveles de bloques índice, etc.).
El tamaño de los punteros es tal, que permite tener 4.294.967.296 punteros distintos y en cada
bloque se pueden almacenar un máximo de 256 punteros.
a) Calcular cuantos punteros como máximo podrá tener el vector en la entrada de directorio de
cada archivo.
NOTAS:

El número máximo de punteros en el vector de punteros deberá elegirse de tal forma, que la
suma del total de bloques de las estructuras que direccionan los punteros, no exceda del
número máximo de bloque direccionables.
 Para facilitar las operaciones aritméticas se aportan los siguientes datos:
28 = 256 216 = 65.536 224 = 16.777.216
232 = 4.294.967.296
b) Dado el número máximo de punteros de la entrada de directorio de cada archivo, calculado en el
punto anterior, calcular el tamaño máximo de fichero expresado en Mb.
c) En un sistema que sigue el anterior método de asignación de espacio en disco, una aplicación
procesa un archivo con una longitud de registro lógico de 250 bytes y utilizando agrupación de
registros por bloques, con registros de longitud fija sin tramos (bloques fijos). En un instante
determinado, se requiere leer el registro lógico número 37.525 (los registros lógicos del archivo
comienzan a numerarse a partir de cero). Sabiendo que el archivo se encuentra ubicado en un
disco con las siguientes características físicas:
Tiempo medio de posicionamiento 20 msg.
Velocidad de rotación del disco
7.500 rpm.
Velocidad de transferencia
500 Kbytes/sg.
Tamaño del bloque físico (sector) 1.024 bytes.
Calcular el tiempo que transcurre, desde el momento en que ya se ha leido la entrada de
directorio correspondiente al archivo, hasta que tiene cargado en memoria el bloque que
contiene dicho registro.
SISTEMA DE GESTIÓN DE FICHEROS
5
UNIVERSIDAD PONTIFICIA DE SALAMANCA EN MADRID
Facultad de Informática
Escuela Universitaria de Informática
Departamento de Lenguajes, Sistemas Informáticos e Ingeniería de Software
SOLUCIÓN DEL EJERCICIO Nª 1.
1) Calcular la capacidad del disco en Mb.
Capacidad = Nºcilindros x Nºsuperficies x Nºsectores x NºBytes por Sector
Capacidad = 300 x 4 x 18 x 512 = 11.059.200 Bytes
Sabiendo que un Mb = 1.048.576 tendremos: 11.059.200 / 1.048.576 = 10,547 Mb
2) Calcular la dirección del Bloque en el disco, que corresponde al Cilindro 20, Superficie 2 y
Sector 10.
Bloque = k + s(j + ip) = 10 + 18(2 + 4 x 20) = 10 + 18 x 82 = 1486
3) Calcular el tiempo que será necesario para leer 3540 bytes, distribuidos aleatoriamente en el
disco.
Nº Sectores = 3540 / 512 = 6,91 redondeando, 7 Sectores.
T = Nº Sectores * (tp + tl + tr) = 7(30 + tl + tr)
T = 7(30 + 8,333 + 0,122) = 7 x 38,455 = 269,185 mseg.
Para calcular el Tiempo de latencia (tl) tendremos:
Si a 3600 rpm
½
tl =
60 x 1000
tl
1 / 2 * 60 * 1000
3600
=
600
72
= 8,33 mseg.
Para calcular el tiempo de transferencia (tr) tendremos:
Vt = 4 Mb/seg. = 4 x 220 Bytes/seg. =
4*2
2
Si a 4 x 211
1
tr =
1000
4*2
11
20
9
 4 * 2 sectores/seg.
11
1000 mseg.
tr

1000

4 * 2048
1000
8192
 0 ,122
mseg.
SOLUCIÓN AL EJERCICIO Nº 2.
1) Calcular la Capacidad del disco en Mb.
Capacidad = NºCilindros x NºSuperficies xNºSectoresxNºBytes / Sector
Capacidad = 305 x 4 x 15 x 512 = 305 x 60 x 512 = 9.369.600 Bytes.
Sabiendo que 1 Mb = 1.048.576 tendremos: Cap =
9 .369 .600
1.048 .576
= 8,935 Mb.
2) Calcular el tiempo necesario, para la lectura de 12 Sectores situados consecutivamente en la
misma pista.
Tiempo de Acceso Ta = tp + tl + tr = 30 + 20 + 0,244 = 50,244 mseg.
SISTEMA DE GESTIÓN DE FICHEROS
6
UNIVERSIDAD PONTIFICIA DE SALAMANCA EN MADRID
Facultad de Informática
Escuela Universitaria de Informática
Departamento de Lenguajes, Sistemas Informáticos e Ingeniería de Software
Para calcular el tiempo de transferencia (tr) tendremos:
tr = 2 Mb/seg. = 2 * 220 = bytes/seg. =
Si a 212
2
21
2
9
= sect./seg.
1000 mseg.
tr =
1000
2
1
12
=
1000
4096
= 0,244 mseg.
tr
Para transferir sectores situados consecutivamente el único tiempo que se repetirá por sector,
será el de transferencia, por lo tanto:
Ta(12 sect.) = 30 mseg. + 20 mseg. + 12 x 0,244 mseg.
= 30 mseg + 20 mseg + 2,928 = 52,928 mseg.
Para transferir 15 sectores distribuidos aleatoriamente:
Ta(15 sect.) = 15 x 50,244 = 753,66 mseg.
SOLUCIÓN AL EJERCICIO Nº 3.
Tabla de bits:
0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1.....
_A_
_____B_____
__________C__________
_________D________
redondeando son 6 bloques.
redondeando son 12 bloques.
F1: 3000/512 = 5,8
F2: 6000/512 = 11,6
F1
F2
PRIMER AJUSTE
B
C
MEJOR AJUSTE
B
D
PEOR AJUSTE
C
C
SOLUCIÓN AL EJERCICIO Nº 4.
Factor de bloqueo = 512/128 = 4
F1
60
0 1 2
1 2 3
61
62
3 4 5 6 7 8
4 5 6 7 8 9 Posiciones
1º bloque 2º bloque 3º bloque
Bloque relativo =
9 ( posicion )
= 2,25  2
4 ( fbloqueo )
Bloque absoluto = Bc + 2Br = 62 Ba
b = k + sj + ips
b/ps = i + (k + sj)/ps
62/17x4 = 62/68 = 0 + 62/68 Cilindro = 0
(k + sj)/s = j + k/s
62/17 = 3 + 11/17
Superficie = 3 y Sector = 11
SISTEMA DE GESTIÓN DE FICHEROS
7
UNIVERSIDAD PONTIFICIA DE SALAMANCA EN MADRID
Facultad de Informática
Escuela Universitaria de Informática
Departamento de Lenguajes, Sistemas Informáticos e Ingeniería de Software
SOLUCIÓN AL EJERCICIO Nº5.
1
DATOS
2
DATOS
3
4
5
DATOS
0
DATOS
DATOS
...........
..........
127
0
...........
...........
DATOS
0
127
DATOS
0
DATOS
.........
.........
127
127
Nº PUNTEROS
=
Tam añ odebloque
DATOS
(RDODEF)
n º bytesporpuntero
Nº PUNTEROS
CAP. MAX.
=
1024
8
= 128 PUNTEROS.
= 3 x 1024 + 128 x 1024 + 128 x 128 x 1024 =
= 16.911.360 bytes /1.048.576 = 16,127 Mb.
SOLUCIÓN DEL EJERCICIO Nº 6.
FACTOR DE BLOQUEO = RDODEF
F1
 1024 
=2
 512 


= REG.LOG./FACTOR BLOQUEO = 12/2 = 6 BLOQUES
 3400 
= 4 BLOQUES
 1024 


AL PRIMER AJUSTE
AL MEJOR AJUSTE
F2 = RDOEXC
F1
2
6
15
18
40
60
70
80
F2
2
1
0
1
10
3
6
12
2
6
15
18
44
60
70
80
F1
2
1
0
1
6
3
6
12
2
6
15
18
40
60
70
80
SISTEMA DE GESTIÓN DE FICHEROS
AL PEOR AJUSTE
F2
2
1
0
1
10
3
6
12
2
6
15
18
40
70
80
F1
2
1
0
1
10
6
12
2
6
9
18
40
60
70
86
F2
2
1
6
1
10
3
6
6
2
6
9
18
44
60
70
86
2
1
6
1
6
3
6
6
8
UNIVERSIDAD PONTIFICIA DE SALAMANCA EN MADRID
Facultad de Informática
Escuela Universitaria de Informática
Departamento de Lenguajes, Sistemas Informáticos e Ingeniería de Software
SOLUCIÓN DEL EJERCICIO Nº 7.
1) Calcular la capacidad la capacidad del disco en Mb.
Cap = Nºcil. x Nºsup. x Nºsect. x NºBytes/sect.
Cap = 256 x 16 x 9 x 512 = 18.874.368 Bytes.
Cap = 18.874.368 / 1.048.576 = 18 Mb.
2) Suponiendo que los bloques son de un sector, para un fichero F1 con un tamaño de 1280 bytes y
registros lógicos de 128 bytes:
a)
Exprese mediante una lista de espacio libre por dirección base y desplazamiento, la
disponibilidad de espacio en el disco tras ubicar F1 con la estrategia del mejor ajuste.
 512 
Factor de bloqueo = 
= 4 Registros lógicos.

 128 
1280
Nº de bloques para F1 =
512
= 2,5  3 bloques.
Según el mapa de bits en el momento de la asignación del fichero F1, utilizando la
estrategia de mejor ajuste, quedará situado en los bloques 15, 16, y 17.
La lista de espacio libre expresada por la dirección base y desplazamiento quedará de la
forma siguiente:
DIRECCIÓN BASE
3
7
20
b)
DESPLAZAMIENTO
1
4
0
Una vez ubicado, indicar el tiempo invertido para leer el fichero F1.
El tiempo para leer 3 sectores del disco será:
T = (tp + tl + 3tr)= 200 mseg +
1 2 * 60 * 10
3
+ 3tr =
3600
= 200+8,33+3x0,097=200+8,33+0,29=208,62 mseg.
Para calcular tr tendremos:
20
Vt=5Mb/seg = 5 * 2 Bytes/seg =
5*2
2
Si a 5*2
11
9
20
= 5 * 2 11 Sect/seg.
3
10 mseg.
1
tr
tr =
10
3
5*2
c)
11
=
1000
10240
= 0,097 mseg.
El registro lógico nº 7, quedará ubicado en el bloque numero 16, por lo tanto su dirección
será:
16
16 * 9
=
16
144
=0+
16
16
144
9
=1+
SISTEMA DE GESTIÓN DE FICHEROS
7
9
Dirección = ( 0, 1, 7)
9
UNIVERSIDAD PONTIFICIA DE SALAMANCA EN MADRID
Facultad de Informática
Escuela Universitaria de Informática
Departamento de Lenguajes, Sistemas Informáticos e Ingeniería de Software
SOLUCIÓN AL EJERCICIO Nº 8.
1.
2.
Teniendo en cuenta que 1 bloque está formado por 2 sectores del disco:
1 Bloque = 2 x 512 = 1024 bytes.
El fichero F1 ocupa 5250/1024 = 6 bloques.
Por lo tanto se grabará en los bloques 62,63,64,65,66,67.
El fichero F2 ocupa 3000/1024 = 3 bloques.
Por lo tanto se grabará en los bloques 68,69,70.
Si queremos leer 500 bytes a partir del byte 200 del fichero F2, tendremos que leer:
0
1024
68
2000 2048
69
2500
3072
70
71
Necesitamos leer los bloques 69 y 70.
Partiendo de la formula del algoritmo de establecimiento de los bloques en el disco tendremos:
b = k + sj + ips
Como 1 bloque es igual a dos sectores, los valores de s y p serán los siguientes:
s = 8 bloques por pista y p = 4 pistas por cilindro.
Para el bloque nº69 tendremos:
69

69
8*4
32
5
5
 0
8
8
3.
 2
5
32
luego el cilindro será el nº 2.
luego la superficie será la 0 y el bloque el 5.
Por lo tanto se leerán el cilindro 2, superficie 0 y los sectores (10,11).
Para el bloque 70 como es contiguo, se leerán el cilindro 2, superficie 0 y los sectores (12,13).
Para diseñar un sistema de archivos en el disco, según nos pide el enunciado, tendremos que
realizar los siguientes cálculos:
Primeramente calcularemos la capacidad del disco:
C = 4 * 200 * 16 * 512 = 6.553.600 bytes.
Con los dos primeros punteros se pueden controlar 2.048 bytes, por lo tanto nos quedan
todavía:
6.553.600 - 2.048 = 6.551.552 bytes.
Esto supone que:
6 .551.552
1.024
= 6.398 bloques.
Para conseguir direccionar todos esos bloques con el tercer puntero, utilizaremos un
determinado nivel de indexación.
Teniendo en cuenta que los punteros índices ocupan 8 bytes, por cada bloque se consiguen:
1.024 / 8 = 128 índices.
Por lo tanto con una indexación de un solo nivel se pueden direccionar solamente 128 bloques.
Para direccionar un total de 6.398 bloques, será preciso pasar a un segundo nivel, con el que se
podrán direccionar: 128 * 128 = 16.384 bloques.
Con una indexación de dos niveles sería suficiente para direccionar los 6.398 bloques.
SISTEMA DE GESTIÓN DE FICHEROS
10
UNIVERSIDAD PONTIFICIA DE SALAMANCA EN MADRID
Facultad de Informática
Escuela Universitaria de Informática
Departamento de Lenguajes, Sistemas Informáticos e Ingeniería de Software
SOLUCIÓN AL EJERCICIO Nº 9.
a)
Teniendo en cuenta que los punteros tienen una longitud de 16 bits, el numero máximo de
bloques que se pueden gestionar será el siguiente:
16
6
10
Nº MÁXIMO = 2 = 2 * 2 = 64*1024 = 65536 bloques.
Como el tamaño de bloque es de 512 bytes:
TAMAÑO MÁXIMO
= 65536 * 512 = 33.554.432 bytes.
Dividiendo por 1.048.576 bytes = 1 Mb.
TAMAÑO MÁXIMO
=
33.554 .432
1.048 .576
= 32 Mb.
b) Teniendo en cuenta que los registros lógicos son de una longitud de 80 bytes:
512/80= 6,4 que redondeando por defecto, nos da 6 registros lógicos por cada registro físico.
37.527/6 = 6.254,5 que redondeando por exceso, nos da 6255 bloques de datos ocupados por
el fichero.
Dado que un puntero de los bloques índices se utiliza para mantener la lista enlazada de
bloques índice, el nº de punteros a bloques de datos por bloque índice será:
16 bits por puntero equivale a 2 bytes por puntero.
(512/2)-1 = 255 punteros a datos por bloque índice.
6.255/255 = 24,5 que redondeando por exceso nos da 25 bloques índices, que se necesitan para
el fichero.
Total bloques = 25 + 6.255 = 6.280 bloques.
c)
En el último bloque de índices el nº de punteros libres a bloques de datos es:
(25 * 255) - 6.255 = 6.375 - 6.255 = 120 punteros libres.
Por lo tanto se podrían utilizar 120 bloques de datos adicionales, manteniendo el mismo nº de
bloques índice, además como el nº de registros lógicos por bloque es 6, el nº total de registros
adicionales, que podría tener el fichero, sin que el nº de bloques índices aumente sería:
REGISTROS ADICIONALES
d)
= 6 * 120 = 720
Si los bloques índices están asociados mediante una lista doblemente enlazada, se utilizarán
dos punteros para el enlace de cada uno de los bloques índices, por lo tanto el nº total de
bloques utilizados por el sistema, para ubicar el fichero en el disco será:
(512/2)-2=256-2=254 punteros a datos por bloque índice.
6.255/254= 24,6 que redondeando por exceso nos da 25 bloques índices, que se necesitan para
el fichero.
Total bloques = 25 + 6.255 = 6.280 bloques.
El nº total de bloques no varía con respecto al cálculo realizado para una lista enlazada.
SISTEMA DE GESTIÓN DE FICHEROS
11
UNIVERSIDAD PONTIFICIA DE SALAMANCA EN MADRID
Facultad de Informática
Escuela Universitaria de Informática
Departamento de Lenguajes, Sistemas Informáticos e Ingeniería de Software
SOLUCIÓN AL EJERCICIO Nº 10.-
a)
Teniendo en cuenta que los bloques son de 1 kb, es decir, 1.024 bytes, tendremos que el
fichero de 17.621 bytes ocupará: 17.621 / 1.024 = 17,2  18 bloques.
Para calcular el tiempo que se tardará en grabar el fichero tendremos:
tl = 0,5*60*1.000 / 3.600 = 300 / 36 = 50/6 =8,33 msg.
tr = (60*1.000) / 3*1.024 = 625 / 32 = 19,53 msg.
El disco solo posee 18 bloques libres, por lo tanto, se grabará en ellos.
Dichos bloques están formando 4 conjuntos separados por ello la cabeza grabadora se tendrá
que colocar cuatro veces, es decir, 4 posicionamientos y 4 latencias y además tendrá que
grabar 18 bloques, es decir, 18 transferencias.
El tiempo total de la grabación será:
Tiempo total = 4(tp+tl)+18tr = 4 (12 
b)
50
6
)  18 *
625
32
 432 ,88 msg .
Para calcular el bloque correspondiente al byte 16.250 tendremos:
16.250 / 1.024 = 15,86  bloque 16.
Como cada índice ocupa 128 bytes el nº de índices por bloque de uno o dos niveles será:
1.024 / 128 = 8 índices por bloque.
Los cuatro primeros índices del bloque inicial apuntan directamente a bloques de datos, es
decir, del 0 al 3.
El 5º índice apunta a un bloque con 8 índices, que señalan a 8 bloques, es decir, del 4 al 11.
El 6º apunta a un bloque de primer nivel de 8 índices, cada uno de los cuales apunta a un
bloque de índices de segundo nivel, como tenemos que llegar al bloque 16, tendremos que
tomar el índice inicial 6, el primer índice del primer nivel y el cuarto del segundo nivel.
SOLUCIÓN AL EJERCICIO Nº 11.
En primer lugar calcularemos el tamaño del disco para poder saber como serán los bloques índice:
El disco tiene 18 cabezas * 3000 cilindros * 9 sectores lo que da un total de 486.000 sectores.
Si suponemos bloques de un sector, son 486.000 bloques.
El tamaño de un puntero del bloque índice debe poder incluir estos 486000 bloques, para ello:
2n  486.000, de donde se obtiene que n es 19 bits en el puntero, lo que equivale a unos 3 bytes.
Puesto que un bloque tiene 512 bytes, en cada bloque índice caben 512 / 3 = 170 punteros.
a) Para calcular el tamaño máximo de fichero.
i) En este tipo de asignación de espacio, el tamaño del fichero está condicionado por el tamaño
del disco. En este caso el disco es de 486.000 bloques * 512 bytes/bloque = 237, 30 Mb.
Para poder direccionar 486.000 bloques, son necesarios 2.893 bloques índice cada uno de
los cuales apuntan a 168 bloques de datos, se pierden dos punteros por el enlazado doble
(Recuerde que se deben direccionar 486.000 bloques de datos menos 2.893 bloques índice).
Esto supone que queda un espacio para datos de 486.000 bloques menos 2.893 bloques, lo
que suponen 483.107 bloques * 512 bytes = 235,9 Mb de tamaño de fichero.
ii) En el caso de asignación indexada en árbol, el nivel de indexación si supone un límite al
SISTEMA DE GESTIÓN DE FICHEROS
12
UNIVERSIDAD PONTIFICIA DE SALAMANCA EN MADRID
Facultad de Informática
Escuela Universitaria de Informática
Departamento de Lenguajes, Sistemas Informáticos e Ingeniería de Software
tamaño de fichero; por lo tanto, está limitado por este nivel y por el tamaño del disco.
Con una indexación a dos niveles y bloques índice de 170 punteros, se pueden direccionar
1702 bloques de datos, lo que nos da 28.900 bloques de 512 bytes = 14,11 Mb de tamaño
de fichero.
Esta cifra es muy inferior al tamaño del disco, por lo que se corresponde con el tamaño de
fichero máximo.
b) A continuación calcularemos al número de accesos necesarios para acceder al registro 1.100 del
fichero:
Si el fichero tiene registros de 150 bytes de longitud fija sin tramos, en cada bloque de 512 bytes
caben 512 / 150 registros, lo que son 3 registros/bloque.
Para acceder al registro 1100 del fichero se debe acceder, por lo tanto, al bloque 1100 / 3 = 367
del fichero.
i) Como cada bloque índice apunta a 168 bloques de datos, es necesario utilizar 3 bloques
índice (equivale a 504 bloques de datos) y el bloque de datos. En total 4 accesos.
ii) En la asignación indexada, el número de accesos es siempre constante, un bloque índice por
cada nivel de indexación y el bloque de datos. En total 3 accesos.
c) La posición de comienzo del fichero es la misma en los dos tipos de asignación, el bloque
número 1.800 del disco. La posición física de este bloque es:
1.800 / p*s  1.800 / (18 * 9) = 11, resto 18. 18 / s  18 / 9 = 2, resto 0
Lo que equivale a la posición (11, 2, 0).
En cuanto a la posición del primer bloque de datos, no se puede calcular con la información
disponible, porque sería necesario conocer el contenido del primer bloque índice para calcularla.
SOLUCIÓN AL EJERCICIO Nº 12.
a) Dado que el tamaño de los punteros es tal que permite tener 4.294.967.296 punteros distintos:
4.294.967.296 = 232 luego el tamaño de los punteros es de 32 bits (4 bytes).
Teniendo en cuenta que un puntero es una dirección de bloque, el número máximo de bloques
direccionables es 232.
Los cuatro primeros punteros apuntan directamente a bloques de datos, por lo que el número
total de bloques direccionables con un vector de 4 punteros es 4 < 232 .
El quinto puntero apunta a un bloque índice de 1 nivel, que almacena 256 punteros a bloques de
datos. El número total de bloques direccionables con un vector de 5 punteros es:
4 BD (bloques de datos) + 1 BI (bloque índice) + 256 BD (bloques de datos) = 261 < 232.
El sexto puntero apunta a un bloque índice de dos niveles, que almacena 256 punteros a bloques
índice, cada uno de los cuales almacena 256 punteros a bloques de datos. El número total de
bloques direccionables, con un vector de 6 punteros es:
4 BD + 1 BI + 256 BD + 1 BI + 256 BI + (256*256) BD = 66.054 < 232
SISTEMA DE GESTIÓN DE FICHEROS
13
UNIVERSIDAD PONTIFICIA DE SALAMANCA EN MADRID
Facultad de Informática
Escuela Universitaria de Informática
Departamento de Lenguajes, Sistemas Informáticos e Ingeniería de Software
El séptimo puntero apunta a un bloque índice de tres niveles, que almacena 256 punteros a
bloques índice, cada uno de los cuales, almacena 256 punteros a bloques índice y cada uno de
los cuales almacena 256 punteros a bloques de datos. El número total de bloques direccionables,
con un vector de 7 punteros es:
66.054 Bloques + 1 BI + 256 BI + (256*256) BI + (256*256*256) BD = 16.909.063
66.054
+1
+ 256
+ 65.536
+ 16.777.216
= 16.909.063 < 232
El octavo puntero apunta a un bloque índice de cuatro niveles, que almacena 256 punteros a
bloques índice, cada uno de los cuales almacena 256 punteros a bloques índice, cada uno de los
cuales almacena 256 punteros a bloques índice y finalmente cada uno de los cuales apunta a 256
punteros a bloques de datos. El número total de bloques direccionables con un vector de 8
punteros es:
16.909.063 Bloques + 1 BI + 256 BI + (256*256) BI + (256*256*256) BI + (256*256*256*256) BD =
=4.328.719.368
16.909.063 Bloques + 1 + 256 + 65.536 + 16.777.216 + 4.294.967.296 = 4.328.719.368 > 2 32
Este número excede a 232 ya que el último sumando es igual a 232, luego el vector de punteros
podrá tener como máximo 7 punteros.
b) Los bloques de datos direccionables con 7 punteros en la entrada de directorio son:
4 + 256 + (256*256) + (256*256*256) = 16. 843.012 bloques.
4 + 256 + 65.536 + 16.777.216 = 16.843.012 bloques.
Para calcular el tamaño del bloque:
4 (Bytes/puntero)*(256 Punteros/bloque) = 1.024 Bytes /Bloque
Con lo que el tamaño máximo de fichero en Mb es:
(16.843.012 Bloques*1.024 Bytes/Bloque) / (1.024*1.024Bytes/Mb) = 16.448 Mb.
16.843.012*1.024 / 1.024*1.024 = 16.843.012 / 1.024 = 16.448,25 => 16.448 Mb.
c) Para calcular el número de registros lógicos del archivo:
1.024 / 250 = 4,09 => 4 registros lógicos / Bloque
37.526 / 4 = 9.381,5 => 9.382 Bloques, para contener 37.526 registros lógicos.
Se desea acceder al 37.525 y se indica, que se empieza a numerar por el cero, por lo tanto, se
necesitan 9.382 Bloques.
Directamente del directorio se puede acceder a los cuatro primeros bloques, 4 < 9.382.
Con un nivel de indexación, se puede acceder a los (4 + 256) < 9.382.
Con dos niveles de indexación, se puede acceder a los (4 + 256 + 256*256) > 9.382.
Por lo tanto, se necesitan dos niveles de indexación para localizar el bloque que contiene el
registro lógico al que se quiere acceder, con lo que será necesario realizar tres accesos a disco,
(2 a bloques índice y uno a bloque de datos).
SISTEMA DE GESTIÓN DE FICHEROS
14
UNIVERSIDAD PONTIFICIA DE SALAMANCA EN MADRID
Facultad de Informática
Escuela Universitaria de Informática
Departamento de Lenguajes, Sistemas Informáticos e Ingeniería de Software
El tiempo de cada acceso será Tacceso = TPosicionamiento + TLatencia + TTransferencia
TPosicionamiento = 20 msg.
7.500 revoluciones
½
500 Kb
1.024 Kb
60.000 msg.
TLatencia
1.000 msg.
TTransferencia
TLatencia = (60.000*0,5) / 7.500 = 4 msg.
TTransferencia = (1.024*1.000) / (500*1.024) = 1.000 / 500 = 2 msg.
TAcceso = 20 msg. + 4 msg. + 2 msg. = 26 msg.
Como hay que realizar tres accesos, tendremos 3*26 = 78 msg.
SISTEMA DE GESTIÓN DE FICHEROS
15
Documentos relacionados
Descargar