¿Todos los so gestionan la memoria en bloques?

Enviado por Chuletator online y clasificado en Informática y Telecomunicaciones

Escrito el en español con un tamaño de 6,94 KB

Considere un fichero que tiene actualmente 120.000 registros, y puede llegar a tener 150.000 registros. Los registros tienen un tamaño de 141 bytes y las direcciones son de 64 bits.Sabiendo que el disco donde
se encuentra almacenado tiene un tamaño de bloque de 4 KiB,y se emplea agrupamiento fijo.Calcule los valores que se piden en cada apartado indicando en cada caso, la fórmula que le permite calcular el valor
pedido, las operaciones de cálculo necesarias y el resultado final. En las operaciones de cálculo deben especificarse las unidades de cada factor que aparece.
1.-Factor de bloque:
-Formula: +Factor de bloque= Tam. Bloque/ Tam.Registro
-Operaciones de cálculo y resultado en asignación contigua:
+Factor bloque= 4KiB/bloque / 141B/registro=29.05->29 registros/bloque.
-Operaciones de cálculo y resultado en asignación enlazada:
+Al bloque le restamos el tamaño del puntero.
Factor bloque= (4KiB-8B)/bloque / 141B/registro=28.99-> 28 reg/bloque.
-Operaciones de cálculo y resultado en asignación ext2: 
+Factor bloque= 4KiB/bloque / 141B/reg=29.05->29 reg/bloque.
2.-Numero de bloques de datos:
-Formula: +Nº bloques= Nº registros / Factor bloque.
-Operaciones de cálculo y resultado en asignación contigua:
+Para este cálculo se utiliza el numero max. De registros.
Nº Bloques= 150.000 reg / 29 reg/bloque= 5172.4-->5173 bloques.
-Operaciones de cálculo y resultado en asignación enlazada:
+Para este cálculo se utiliza el
de registros actuales.
Nº Bloques= 120.000 reg / 28 reg/bloque= 4285.7-->4286 bloques.
-Operaciones de cálculo y resultado en asignación ext2:
+Para este cálculo se utiliza el nº de registros actuales.
Nº Bloques= 120.000 reg / 29 reg/bloque= 4137.9-->4138 boques.
3.-Fragmentación interna de los bloques de datos del fichero:
-Formula: +Fragmentación interna = Espacio asignado-Espacio ocupado.
Espacio asignado= Nº bloques asignados x tam. Bloque.
Espacio ocupado= Nº registros ocupados x tam. Registro.
-Operaciones de cálculo y resultado en asignación contigua: 
+Fragmentación interna= 5173 bloques x 4KiB/bloque - 120.000 reg x 141B/reg= 4268608 B.
-Operaciones de cálculo y resultado en asignación enlazada:
+Fragmentación interna= 4286 bloques x (4KiB/bloque - 8 bytes) - 120.000 reg x 141B/reg= 601168 B.
-Operaciones de cálculo y resultado en asignación indexada:
+Fragmentación interna= 4138 bloques x 4KiB/bloque - 120.000 reg x 141B/reg= 29248 B.
4.-Numero de bloques índice necesarios para llevar el control de los bloques de datos del fichero en asignación indexada con bloques índice enlazados y en asignación ext2:
-Explicación, cálculos y resultado en asignación indexada con bloques indice enlazados:
+Capacidad de un bloque índice = Tamaño bloque / Tamaño dirección
Capacidad de un bloque índice = 4096 B / 8 B/dirección = 512 direcciones
Como la última dirección que se almacena en cada bloque se utiliza para apuntar al siguiente bloque índice, en realidad podemos almacenar 511 direcciones de bloques de datos en cada bloque de direcciones.
Número de bloques índice = Nº bloques datos / Capacidad bloque índice
El fichero ocupa 4138 bloques de datos en una asignación indexada, necesitaremos:
4138 / 511 = 8,1 bloques de direcciones --> 9 bloques de direcciones.
-Explicación, cálculos y resultado en asignación ext2:
La asignación ext2 utiliza un nodo-i que almacena 12 punteros directos a bloques de datos. Si un fichero tiene más de 12 bloques de datos es necesario recurrir a los punteros indirectos.
Capacidad de un bloque de direcciones = Tam. Bloque / Tam. Dirección.
Capacidad de un bloque de direcciones = 4.096 B / 8 B/dirección = 512 direcciones.
El fichero ocupa 4138 bloques de datos y el nodo índice almacena 12 direcciones de bloque de datos, necesitaremos almacenar 4.138 direcciones - 12 direcciones = 4.126 direcciones adicionales.
Necesitaremos utilizar el bloque de direcciones apuntado por el puntero indirecto simple (512 direcciones) y varios bloques de los apuntados por el puntero indirecto doble: (4.126 - 512) / 512 = 7,1--> 8 bloques de
segundo nivel, más el correspondiente bloque de primer nivel que apunta a estos.
Nº de bloques índice totales = nodo-i + 10 bloques de direcciones.
5.-Si utilizamos el sistema de ficheros ext2 y queremos acceder a los registros 30.000, 200 y 1.000 del fichero. ¿Cuántas operaciones de E/S será necesario realizar? Explique su respuesta indicando a qué corresponde cada operación de E/S:
-Explicación, cálculos y resultado en asignación ext2:
+Bloque de un registro = Nº Registro / Factor bloque.
Bloque registro 30.000 = 30.000 / 29 = 1.034,5 --> bloque 1035.
Bloque registro 200 = 200 / 29 = 6,9 --> bloque 7.
Bloque registro 1.000 = 1.000 / 29 = 34,5 --> bloque 35.
La dirección del bloque 7 se encuentra en el nodo-i, la del bloque 35 se encuentra en el bloque de direcciones apuntado por el puntero indirecto simple, la del bloque 1.035 se encuentra en el primer bloque de direcciones de segundo nivel.
La asignación ext2 permite el acceso directo y se realizarán las siguientes operaciones de E/S:
1 operación E/S para leer la entrada del directorio (queda almacenado en memoria).
1 operación de E/S para leer el nodo-i (queda almacenado en memoria).
1 operación de E/S para leer el bloque de direcciones apuntado por la entrada indirecta simple. Esto nos permite obtener la dirección en la que se encuentra el bloque 35.
1 operación de E/S para leer el bloque de direcciones apuntado por la entrada indirecta doble.
1 operación de E/S para leer el primer bloque apuntado por el anterior. Esto nos permite obtener la dirección del bloque 1035.
1 operación E/S para leer el bloque de datos que contiene al registro 30.000 (bloque 1.035).
1 operación de E/S para leer el bloque de datos que contiene el registro 200 (bloque 7).
1 operación de E/S para leer el bloque de datos que contiene el registro 1.000 (bloque 35).
Total = 8 operaciones de E/S.
6.-Bloques de la estructura de control en ext2:
-Diagrama,operaciones y cálculo y resultado:
(1*): Nº direcciones bloque de control = Tam. Bloque / Tam. Dirección= 4KiB / 8 B= 512 direcciones.
(2*): Para direccionar 4138-524= 3614 bloques se necesitan 3614/512= 7.05 -->8 bloques de direcciones, 7 bloques completos y 30 entradas de otro.

Entradas relacionadas: