4.2.1 De archivos
La implementación de archivos trata sobre cómo el sistema operativo organiza y gestiona los archivos en el disco. Aunque un archivo no es más que una serie de bytes guardados en un dispositivo, el sistema operativo necesita mantener información adicional como el nombre del archivo, su tamaño, los permisos, las fechas en que fue creado y modificado, y su ubicación en el disco para poder acceder a él fácilmente.
Los archivos se almacenan en bloques de disco, y la forma en que estos bloques se asignan y organizan puede variar según el sistema de archivos. Hay tres métodos comunes de implementación:
Los datos se almacenan en el dispositivo en bloques uno detrás del otro, lo que permite acceder a ellos rápidamente sin necesidad de saltar entre partes del disco. Sin embargo, este método tiene un problema: con el tiempo, puede ser difícil encontrar un espacio grande y continuo para guardar nuevos archivos debido a la fragmentación del disco.
Este método de almacenamiento enlaza los bloques de un archivo mediante punteros, lo que significa que los bloques no tienen que estar juntos. Cada bloque tiene un puntero al siguiente, lo que facilita la organización del espacio en el disco. Sin embargo, esto hace que el acceso a los archivos sea más lento, ya que hay que seguir las direcciones de memoria de un bloque a otro. Por ejemplo, en sistemas operativos como Linux, los archivos y carpetas se organizan de forma jerárquica, similar a un árbol. La raíz del de este sistema suele ser representada con "/", y debajo de él hay más directorios y archivos organizados de manera recursiva.
Este método de almacenamiento enlaza los bloques de un archivo mediante punteros, lo que significa que los bloques no tienen que estar juntos. Cada bloque tiene un puntero al siguiente, lo que facilita la organización del espacio en el disco. Sin embargo, esto hace que el acceso a los archivos sea más lento, ya que hay que seguir los punteros de un bloque a otro.
Por ejemplo, en sistemas operativos como Linux, la estructura jerárquica se organiza en forma de árbol, donde el directorio raíz (/) es la raíz del sistema de archivos, y debajo de él se encuentran otros directorios y archivos organizados de manera recursiva.
Si un archivo está almacenado en los bloques 10, 25, y 100, el sistema almacena un puntero en el bloque 10 que apunta al bloque 25, y otro puntero en el bloque 25 que apunta al bloque 100. Para acceder a todo el archivo, el sistema debe seguir estos enlaces.
Los sistemas de archivos modernos, como ext4, utilizan la asignación indexada, en la que un bloque especial (llamado bloque de índice o inodo) contiene los punteros a los bloques de datos del archivo. Esto permite un acceso más eficiente y elimina la necesidad de bloques contiguos o enlaces entre bloques de datos. La fragmentación se reduce considerablemente y se optimiza el acceso a los archivos.
Supongamos que un archivo está almacenado en los bloques 5, 30, 45, y 70. El sistema de archivos crea un inodo que contiene punteros a estos bloques, y el sistema operativo accede directamente a los bloques a través del inodo.