martes, 4 de febrero de 2014

Clasificación De La Asignación Indexada



CLASIFICACIÓN DE LA ASIGNACIÓN INDEXADA

 
 
Esquema Enlazado:
Un bloque índice normalmente ocupa un bloque de disco; por tanto, se puede leer y escribir directamente por sí solo. Para manejar archivos grandes, podríamos enlazar varios bloques índices. Por ejemplo, un bloque índice podría contener una cabecera pequeña con el nombre del archivo y las primeras 100 direcciones de bloques de disco. La siguiente dirección (la última palabra del bloque índice) es mil (si el archivo es pequeño) o un puntero a otro bloque índice (si el archivo es grande).

Índice Multinivel:
Una variante de la representación enlazada es usar un bloque índice de primer nivel que apunte a un conjunto de bloques índice de segundo nivel, que a su vez apuntan a los bloques de disco. Para acceder a un bloque, el sistema operativo usa el índice de primer nivel para encontrar un bloque índice de segundo nivel, y ese bloque para hallar el bloque de datos deseado. Este enfoque podría extenderse a un tercer o cuarto nivel, dependiendo del tamaño máximo de archivo deseado. Con bloques de 4096 bytes, podríamos guardar 1024 punteros de cuatro bytes en un bloque índice. Dos niveles de índices permitirían apuntar a 1,048/576 bloques de datos, con lo que un archivo podría tener hasta cuatro gigabytes.

Esquema Combinado:
Otra alternativa, que se usa en el sistema BSD UNIX, es guardar los primeros, digamos, 15 punteros del bloque índice en el bloque índice (o i-nodo) del archivo. (La entrada de directorio apunta al i-nodo). Los primeros 12 de estos punteros apuntan a bloques directos; es decir, contienen direcciones de bloques que contienen datos del archivo. Así, los datos de archivos pequeños (de no más de 12 bloques) no necesitan un bloque índice aparte. Si el tamaño de bloque es de 4K, es posible acceder directamente a hasta 48K de datos. Los siguientes tres punteros apuntan a bloques indirectos. El primer puntero de bloque indirecto es la dirección de un bloque indirecto simple: un bloque índice que no contiene datos, sino las direcciones de bloques que sí contienen datos. Luego viene un puntero a un bloque indirecto doble, que contiene la dirección de un bloque que contiene las direcciones de bloques que contienen punteros a los bloques de datos reales. El último puntero contendría la dirección de un bloque indirecto triple. Con este método, el número de bloques que es posible asignar a un archivo excede la cantidad de espacio que puede direccionarse con los punteros de archivo de cuatro bytes que usan muchos sistemas operativos.

Un puntero de archivo de 32 bits sólo alcanza para 2 Exp.32 bytes, o 4 gigabytes.
En la figura se muestra una i-nodo.

Los esquemas de asignación indexada exhiben algunos de los mismos problemas de desempeño que la asignación enlazada. En términos específicos, los bloques índice se pueden colocar en un caché en la memoria, pero los bloques de datos podrían estar dispersos por toda una partición.






No hay comentarios:

Publicar un comentario