Documentos de Académico
Documentos de Profesional
Documentos de Cultura
CAP3EJER
CAP3EJER
Facultad de Informtica
Escuela Universitaria de Informtica
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 direccin 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.
Definir la lista de espacio libre mediante un vector de bits, que represente la situacin anteriormente
definida.
EJERCICIO N 4.
Supuesto un sistema operativo, que gestiona el espacio en disco utilizando la asignacin 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 lgico n 8.
Sabiendo que en el directorio actual tenemos adems de otras entradas la siguiente:
Nombre
F1
tamao
6540
bytes
acceso
Slo lectura
60
Sabiendo que el registro lgico tiene un tamao de 128 bytes, que un bloque en el disco tiene un
tamao 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 lgico 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 indexacin a un nivel y el 5 para
indexacin a dos niveles.
Si el tamao de bloque (tanto de ndice como de datos) es de 1024 bytes y el tamao de cada puntero
es de 8 bytes, calcular el espacio mximo en disco que se puede gestionar con esta estructura.
EJERCICIO N 6.
2
2
6
1
9
6
18
1
40
10
60
3
70
6
80
12
EJERCICIO N 7.
Una unidad de disco gestionada por asignacin 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 rotacin 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...
Un disco magntico dispone de 2 platos, 200 cilindros y 16 sectores por pista, cada sector tiene 512
bytes. El bloque se define con un tamao de 2 sectores. La tabla de espacios libres para un momento
determinado es:
DIRECCIN BASE
DESPLAZAMIENTO
0
4
15
1
35
0
62
8
97
7
125
0
EJERCICIO N 9.
En la entrada de directorio del fichero, existe un campo, que contiene la direccin 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 estn asociados por una lista enlazada.
Sabiendo que cada bloque del disco tiene un tamao de 512 bytes, calcular:
a) El tamao mximo de espacio en disco que puede gestionarse mediante este mtodo de
asignacin.
Para un fichero de 37.527 registros lgicos de 80 bytes de longitud cada registro:
b) El nmero total de bloques utilizados por el sistema para ubicar el fichero en el disco.
c) El nmero total de registros adicionales que podra tener el fichero, sin que el nmero de
bloques ndices asignados por el sistema al fichero aumente.
d) El nmero total de bloques utilizados por el sistema, para ubicar el fichero en el disco, si los
bloques ndices estn asociados mediante una lista doblemente enlazada.
EJERCICIO N 10.
Un dispositivo de disco magntico 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 rotacin 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
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 mtodos de asignacin de espacio en disco: (i) asignacin indexada
con bloques ndice doblemente enlazados y (ii) asignacin indexada con dos niveles de bloques
ndice.
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 sptimo puntero tendr tres niveles de bloques ndice, etc.).
El tamao de los punteros es tal, que permite tener 4.294.967.296 punteros distintos y en cada
bloque se pueden almacenar un mximo de 256 punteros.
a) Calcular cuantos punteros como mximo podr tener el vector en la entrada de directorio de
cada archivo.
NOTAS:
El nmero mximo 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
nmero mximo de bloque direccionables.
Para facilitar las operaciones aritmticas se aportan los siguientes datos:
28 = 256 216 = 65.536 224 = 16.777.216
232 = 4.294.967.296
b) Dado el nmero mximo de punteros de la entrada de directorio de cada archivo, calculado en el
punto anterior, calcular el tamao mximo de fichero expresado en Mb.
c) En un sistema que sigue el anterior mtodo de asignacin de espacio en disco, una aplicacin
procesa un archivo con una longitud de registro lgico de 250 bytes y utilizando agrupacin de
registros por bloques, con registros de longitud fija sin tramos (bloques fijos). En un instante
determinado, se requiere leer el registro lgico nmero 37.525 (los registros lgicos del archivo
comienzan a numerarse a partir de cero). Sabiendo que el archivo se encuentra ubicado en un
disco con las siguientes caractersticas fsicas:
Tiempo medio de posicionamiento 20 msg.
Velocidad de rotacin del disco
7.500 rpm.
Velocidad de transferencia
500 Kbytes/sg.
Tamao del bloque fsico (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.
tl =
60 x 1000
tl
1 / 2 * 60 * 1000 600
=
= 8,33 mseg.
3600
72
0,122 mseg.
tr =
11
4 * 2048 8192
4*2
SOLUCIN AL EJERCICIO N 2.
9.369.600
= 8,935 Mb.
1.048.576
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________
PRIMER AJUSTE
B
C
F1
F2
MEJOR AJUSTE
B
D
PEOR AJUSTE
C
C
SOLUCIN AL EJERCICIO N 4.
60
0 1 2
61
62
3 4 5 6 7 8
1 2 3
4 5 6 7 8 9 Posiciones
9( posicion)
= 2,25
4( fbloqueo)
(k + sj)/s = j + k/s
62/17 = 3 + 11/17
Superficie = 3 y Sector = 11
DATOS
DATOS
DATOS
DATOS
...........
..........
127
DATOS
...........
...........
DATOS
127
DATOS
DATOS
.........
.........
127
127
N PUNTEROS
N PUNTEROS
CAP. MAX.
=
=
DATOS
Tama odebloque
(RDODEF)
n bytesporpuntero
1024
= 128 PUNTEROS.
8
1024
3400
F2 = RDOEXC
1024
AL PRIMER AJUSTE
F1
2
6
15
18
40
60
70
80
2
6
15
18
44
60
70
80
= 6 BLOQUES
= 4 BLOQUES
AL MEJOR AJUSTE
F2
2
1
0
1
10
3
6
12
=2
F1
2
1
0
1
6
3
6
12
2
6
15
18
40
60
70
80
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
Exprese mediante una lista de espacio libre por direccin 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 lgicos.
128
N de bloques para F1 =
1280
= 2,5
512
3 bloques.
Segn el mapa de bits en el momento de la asignacin 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 direccin base y desplazamiento quedar de la
forma siguiente:
DIRECCIN 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:
Vt=5Mb/seg = 5 * 2 20 Bytes/seg =
Si a 5*2 11
10 3 mseg.
1000
10 3
=
= 0,097 mseg.
11
10240
5*2
El registro lgico n 7, quedar ubicado en el bloque numero 16, por lo tanto su direccin
ser:
c)
5 * 2 20
= 5 * 2 11 Sect/seg.
9
2
16
16
16
=
=0+
16 * 9 144
144
tr
tr =
16
7
=1+ Direccin = ( 0, 1, 7)
9
9
SOLUCIN AL EJERCICIO N 8.
1.
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.
2.
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
2
luego el cilindro ser el n 2.
8 * 4 32
32
5
5
0
luego la superficie ser la 0 y el bloque el 5.
8
8
3.
6.551552
.
= 6.398 bloques.
1.024
Para conseguir direccionar todos esos bloques con el tercer puntero, utilizaremos un
determinado nivel de indexacin.
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 indexacin 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
podrn direccionar: 128 * 128 = 16.384 bloques.
Con una indexacin de dos niveles sera suficiente para direccionar los 6.398 bloques.
10
SOLUCIN AL EJERCICIO N 9.
a)
Teniendo en cuenta que los punteros tienen una longitud de 16 bits, el numero mximo de
bloques que se pueden gestionar ser el siguiente:
N MXIMO = 2 16 = 2 6 * 2 10 = 64*1024 = 65536 bloques.
Como el tamao de bloque es de 512 bytes:
TAMAO MXIMO
33.554.432
= 32 Mb.
1.048.576
b) Teniendo en cuenta que los registros lgicos son de una longitud de 80 bytes:
512/80= 6,4 que redondeando por defecto, nos da 6 registros lgicos por cada registro fsico.
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)
d)
= 6 * 120 = 720
Si los bloques ndices estn asociados mediante una lista doblemente enlazada, se utilizarn 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 vara con respecto al clculo realizado para una lista enlazada.
11
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 estn formando 4 conjuntos separados por ello la cabeza grabadora se tendr
que colocar cuatro veces, es decir, 4 posicionamientos y 4 latencias y adems tendr que
grabar 18 bloques, es decir, 18 transferencias.
El tiempo total de la grabacin ser:
Tiempo total = 4(tp+tl)+18tr = 4(12
b)
50
625
) 18 *
432,88msg .
6
32
En primer lugar calcularemos el tamao del disco para poder saber como sern 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 tamao 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 tamao mximo de fichero.
i) En este tipo de asignacin de espacio, el tamao del fichero est condicionado por el tamao
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 tamao de fichero.
ii) En el caso de asignacin indexada en rbol, el nivel de indexacin si supone un lmite al
tamao de fichero; por lo tanto, est limitado por este nivel y por el tamao del disco.
SISTEMA DE GESTIN DE FICHEROS
12
Con una indexacin 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 tamao
de fichero.
Esta cifra es muy inferior al tamao del disco, por lo que se corresponde con el tamao de
fichero mximo.
b) A continuacin calcularemos al nmero 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 asignacin indexada, el nmero de accesos es siempre constante, un bloque ndice por
cada nivel de indexacin y el bloque de datos. En total 3 accesos.
c) La posicin de comienzo del fichero es la misma en los dos tipos de asignacin, el bloque
nmero 1.800 del disco. La posicin fsica 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 posicin (11, 2, 0).
En cuanto a la posicin del primer bloque de datos, no se puede calcular con la informacin
disponible, porque sera necesario conocer el contenido del primer bloque ndice para calcularla.
SOLUCIN AL EJERCICIO N 12.
a) Dado que el tamao de los punteros es tal que permite tener 4.294.967.296 punteros distintos:
4.294.967.296 = 232 luego el tamao de los punteros es de 32 bits (4 bytes).
Teniendo en cuenta que un puntero es una direccin de bloque, el nmero mximo de bloques
direccionables es 232.
Los cuatro primeros punteros apuntan directamente a bloques de datos, por lo que el nmero
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 nmero 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 < 2 32.
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 nmero 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 < 2 32
13
El sptimo 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 nmero 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 < 2 32
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 nmero 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 nmero excede a 232 ya que el ltimo sumando es igual a 232, luego el vector de punteros
podr tener como mximo 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 tamao del bloque:
4 (Bytes/puntero)*(256 Punteros/bloque) = 1.024 Bytes /Bloque
Con lo que el tamao mximo 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 nmero de registros lgicos del archivo:
1.024 / 250 = 4,09 => 4 registros lgicos / Bloque
37.526 / 4 = 9.381,5 => 9.382 Bloques, para contener 37.526 registros lgicos.
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 indexacin, se puede acceder a los (4 + 256) < 9.382.
Con dos niveles de indexacin, se puede acceder a los (4 + 256 + 256*256) > 9.382.
Por lo tanto, se necesitan dos niveles de indexacin para localizar el bloque que contiene el
registro lgico 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).
14
500 Kb
1.024 Kb
60.000 msg.
TLatencia
1.000 msg.
TTransferencia
15