miércoles, 23 de octubre de 2013

Método de asignación de espacio

MÉTODOS DE ASIGNACIÓN DE ESPACIO LIBRE

Un método de asignación de espacio libre determina la manera en que un Sistema Operativo controla los lugares del disco que no están siendo ocupados.
Para el control del espacio libre se puede utilizar como base alguno de los métodos teóricos: Vector de Bits, Lista Ligada, Por Agrupación y por Contador.

VECTOR DE BITS

Se tiene un arreglo de bits, el número de bits que tiene, representa cada sector del disco, o sea que si los sectores 10 y 11 están ocupados su representación será:


Fig.1  Ejemplo de un vector de bits.

LISTA LIGADA

Existe una cabecera en la que se tiene la dirección del primer sector vacío, ese sector a su vez, tiene un apuntador al siguiente bloque, y así sucesivamente hasta que se encuentre una marca indicando que ya no hay espacio libre, tal y como se muestra en la siguiente figura.


Fig. 2 Ejemplo de una lista ligada

POR AGRUPACIÓN

Es similar a la lista ligada, solo que en este se tiene por cada sector, un grupo de apuntadores a varios espacios vacíos, al final de cada bloque se tiene un apuntador a otro grupo de apuntadores, observe la figura.


Fig. 3 Ejemplo de asignación por agrupación.

POR CONTADOR

Aquí, por cada conjunto de bloques contiguos que estén vacíos, se tiene por cada apuntador, un número de inicio y el tamaño del grupo de sectores vacíos.


Fig. 4 Ejemplo de asignación por contador.



MÉTODOS DE ASIGNACIÓN DE ESPACIO EN DISCO.

Un método de asignación de espacio en disco determina la manera en que un Sistema Operativo controla los lugares del disco ocupados por cada archivo de datos. Se debe controlar básicamente la identificación del archivo, sector de inicio y sector final.

Para el control del espacio ocupado en disco se puede utilizar como base alguno de los métodos teóricos: Asignación Contigua, Asignación Ligada, Asignación Indexada. 

ASIGNACIÓN CONTIGUA.

Este método consiste en asignar el espacio en disco de tal manera que las direcciones de todos los bloques correspondientes a un archivo definen un orden lineal. Por ejemplo: 


Fig. 5 Ejemplo de asignación contigua. 

VENTAJAS
DESVENTAJAS

- La cabeza de lectura no se mueve demasiado en la lectura de un archivo.

- Produce fragmentación externa.

ASIGNACIÓN LIGADA

En este método, cada archivo es una lista ligada de bloques de disco. En el directorio hay un apuntador al bloque de inicio y un apuntador al bloque final para cada archivo. En cada uno de los bloques donde se encuentra un archivo hay un apuntador al siguiente bloque de la lista. Por ejemplo:


Fig. 6 Ejemplo de asignación ligada 

VENTAJAS
DESVENTAJAS
- No produce fragmentación externa.

  • La cabeza de lectura se puede mover demasiado en la lectura de un archivo.
  • - Si una liga se pierde, se perderá el archivo completo.
  • Es ineficiente para la implementación de archivos directos.
  • Se necesita un campo extra para el apuntador.
ASIGNACIÓN INDEXADA

Como ya se vio, la asignación ligada resuelve problemas de fragmentación externa, sin embargo, la asignación ligada no soporta eficientemente el acceso directo a los archivos. La asignación indexada resuelve este problema poniendo todos los apuntadores en una sola localidad: El bloque índice .

Cada archivo tiene su bloque índice, El cual es un arreglo de direcciones de bloques de disco.

La i-ésima entrada en el bloque índice apunta al i-ésimo bloque que conforma el archivo. En el directorio se controla la dirección del bloque índice de cada archivo, por ejemplo: 


Fig. 7 Ejemplo de asignación indexada.

VENTAJAS
DESVENTAJAS
  • No produce fragmentación externa.
  • Eficiente para la implementación de archivos directos.

  • Existe desperdicio cuando hay archivos muy chicos.
  • Desbordamiento de bloque índice. (Solución: creación de un esquema ligado; el último bloque índice apunta a otro índice).