Hay varias formas de gestionar el espacio de un disco o dispositivo de almacenamiento en general, cada uno con sus ventajas e inconvenientes:
Los archivos se colocan en bloques contiguos.
Las direcciones y tamaños de áreas libres se guardan en una lista separada, utilizando poco espacio de directorio.
👍🏽 Acceso sencillo y rápido.
👍🏽 El SGA solo necesita guardar la dirección de comienzo y el tamaño del archivo
👎🏽Hay que calcular el tamaño de un archivo a la hora de crearlo. Solo útil para archivos que crecen poco.
👎🏽Problema de fragmentación externa debido a la variabilidad del tamaño de los archivos.

Unos cuantos bytes de cada bloque se reservan para señalar al próximo bloque de un archivo (puntero). El resto de bloque contiene datos del archivo.
👍🏽 El SGA en el directorio solo tiene que guardar el bloque donde comienza el archivo.
👍🏽 No se produce fragmentación externa porque se utilizan los bloques necesarios no consecutivos.
👎🏽 Un bloque con un puntero dañado puede dejar inaccesibles varios bloques.
Los archivos pueden crecer mientras haya bloques libres.

Reúne los punteros a todos los bloques de un archivo en una tabla conocida como bloque de índices.
👍🏽El SGA guarda en el directorio la dirección del bloque de índices.
👍🏽No se produce fragmentación externa.
👎🏽 El bloque de índices contiene los punteros a los bloques de datos del archivo lo que ocupa espacio de disco.
Para el espacio libre se puede utilizar un esquema de mapa de bits (un bit por cada bloque indica si está ocupado o libre).
Para gestionar el espacio de almacenamiento de un soporte, los sistemas operativos usan combinaciones de los métodos que hemos visto.
