Estructuras de Directorio

 

Parte de la información puede guardarse en un registro de cabecera asociado al archivo; esto reduce la cantidad de espacio necesario para el directorio, haciendo más fácil mantener todo el directorio o parte en la memoria principal para mejorar la velocidad. Por supuesto, algunos elementos clave deben permanecer en el directorio; normalmente, estos incluyen el nombre, dirección, tamaño y organización.

La forma más simple de estructuración de un directorio es una lista de entradas, una para cada archivo, puede representarse con un simple archivo secuencial, con el nombre del archivo haciendo las veces de clave, no es adecuada cuando múltiples usuarios comparten el sistema e incluso para un solo usuario con muchos archivos.

Para comprender los requisitos de una estructura de archivo, merece la pena considerar los tipos de operaciones que pueden realizarse con un directorio:

        Buscar: cuando un usuario o aplicación hace referencia a un archivo, debe buscarse en el directorio la entrada correspondiente al archivo.

                           Crear archivo: al crear un nuevo archivo, debe añadirse una entrada al directorio.

Borrar archivo: al borrar un archivo,  debe eliminarse una entrada del directorio.

Enumerar directorio: puede solicitarse todo el directorio o una parte. Generalmente, esta petición la hace un usuario y el resultado es una lista de todos los archivos poseídos por dicho usuario, junto a algunos de los atributos de cada archivo(tipo, información de control de acceso; información de uso).

Actualizar directorio: cuando algunos atributos del archivo se almacenan en el directorio, un cambio en alguno de estos atributos requiere un cambio en la entrada del directorio correspondiente.

 

El usuario puede  tener muchos tipos de archivos, incluyendo documentos de texto, archivos gráficos, hojas de cálculo, etc. El usuario puede querer tenerlos organizados por proyecto, tipo o de otra manera conveniente. Si el directorio es una simple lista secuencial, no ofrecerá ayuda alguna en la organización de los archivos y obligará al usuario a tener cuidado de no usar el mismo nombre para dos tipos diferentes de archivo.

El problema es mucho peor en un sistema compartido. Los nombres únicos se convierten en un problema serio. Además, es difícil ocultar a los usuarios determinadas partes del directorio global cuando no hay una estructura inherente en el mismo.

Para resolver estos problemas podría ser acudir a un esquema de dos niveles . En este caso, existe un directorio para cada usuario y un directorio maestro. El directorio maestro dispone de una entrada para cada directorio de usuario, incluyendo una dirección e información de control de acceso. Cada directorio de usuario es una simple lista de los archivos del usuario. Esta disposición significa que los nombres deben ser únicos sólo dentro del conjunto de archivos de cada usuario y que el sistema de archivos puede hacer cumplir fácilmente unas restricciones de acceso a los directorios, todavía no ofrece a los usuarios ayuda alguna para estructurar sus conjuntos de archivos.

Un método más potente y flexible, adoptado casi universalmente, es el directorio jerárquico o estructurado en árbol, eso  quiere decir que existe un directorio maestro que contiene un número determinado de directorios de usuario, cada uno de estos directorios puede tener a su vez subdirectorios y archivos como entradas. Esto se cumple en cualquier nivel, es decir en cualquier nivel un directorio puede constar de entradas para subdirectorios o entradas para archivos.

Queda comentar cómo se organiza cada directorio y subdirectorio. El método más simple es, por supuesto, almacenar cada directorio como un archivo secuencial, cuando los directorios contengan un número muy grande de entradas, tal organización puede conducir a tiempos de búsqueda innecesariamente grandes, en tal caso se prefiere una estructura de dispersión.