Introducción en la administración de archivos

De Wiki de Sistemas Operativos
Saltar a: navegación, buscar

Administrador de ficheros

Se trata de la parte del sistema operativo que se encarga de la organización de los ficheros en el sistema operativo. También se le conoce como 'sistema de ficheros'.

Fichero

Un fichero es un contenedor de información que consta como mínimo de un nombre, además de una serie de atributos (llamados metadatos) como la fecha de creación, última actualización, propietario, grupo entre otros; y un número de bloques asignados.

Directorio (Carpeta)

Un directorio o carpeta es un contenedor de ficheros. Por lo general, disponen a su vez de dos pseudodirectorios denominados "." y ".." que sirven como referencia al propio directorio y al directorio padre. De esta manera, los directorios se organizan en una estructura arbórea con una cierta raíz.

Organización de los directorios y ficheros

La organización de los directorios y ficheros en los sistemas operativos modernos emplea una estructura arbórea en la que existe un directorio raíz del que penden todos los demás directorios y ficheros.

                                        raíz
                                         /\
                                        /  \
                                       d1  d2
                                      / \    \
                                     f1  f2   d3
                                              /\
                                             /  \
                                            f3  f4

En el caso de sistemas operativos tipo Unix, la raíz se identifica con el directorio /. Para sistemas operativos de tipo-Microsoft, existe un directorio raíz por unidad. Cada unidad se trata de un sistema de fichero independiente que se identifica mediante una letra seguida de dos puntos, por ejemplo C:\ .

Propietario, grupo y permisos

Todo fichero o directorio en un sistema operativo moderno dispone de al menos un propietario que define las acciones que se pueden realizar sobre los ficheros. Por lo general son las siguientes:

  • Lectura: Da la posibilidad de leer el contenido del fichero.
  • Modificación: Da la posibilidad de modificar el contenido del fichero.
  • Ejecución: Da la posibilidad de ejecutar el fichero.

En general, este esquema se aplica al propietario, al grupo y al resto del mundo, de manera que el propietario de cualquier fichero o directorio establece los permisos. Por ejemplo, un fichero con un documento ofimático puede ser leído y modificado por el propietario y por el grupo, pero no por el resto del mundo.

Ejemplo:

 propietario     grupo    resto del mundo
     rwx          rwx          rwx 
 fichero.odt: rw------- (fichero openoffice con sólo lectura y escritura para el propietario)
 sudoku:      rwxr-xr-x (fichero ejecutable con permisos de lectura, modificación y ejecución para el propietario)

Bloque

La memoria disponible en un dispositivo de almacenamiento masivo se divide en porciones de igual tamaño denominados bloques. Dichos bloques se asignan completamente y en exclusividad a un fichero de manera que un fichero está compuesto por un conjunto de bloques.

El tamaño de bloque es un parámetro que se establece en el tiempo de formateo. Por lo general, se emplean bloques de 4 KB y 8 KB dependiendo del tamaño de palabra del procesador. No obstante, es un parámetro configurable. En el caso de un sistema que tenga que alojar gran cantidad de ficheros muy pequeños, podría reducirse el tamaño de bloque para hacer un mejor aprovechamiento del espacio de almacenamiento en disco.

  • Aspectos relevantes en la elección del tamaño de los bloques:

Podemos destacar los siguientes 4 aspectos:

Desperdicio interno: Cuanto mayor sean los bloques mayor desperdicio interno se producirá en el último bloque del fichero.

Tiempos de espera: Cuanto mayor sea el bloque menos bloques formarán los ficheros con lo que se reduce el numero de accesos al soporte y, en consecuencia, los tiempos de espera.

Espacio intermedio: Cuanto mayor sean los bloques mayor será el espacio necesario para mantenerlos cargados en memoria mientras se opera con ellos.

Aprovechamiento de las operaciones de lectura y escritura: Si el proceso no realiza accesos a memoria secuenciales, sino que son aleatorios, es muy probable que solo necesite unos pocos octetos de cada bloque del fichero. Sin embargo en cada lectura y escritura los bloques se leen o escriben completamente, lo que significa un desaprovechamiento de las operaciones de lectura y escritura.

Tabla de entrada de ficheros

Todo directorio dispone de una tabla de entrada de ficheros. Por cada entrada existe al menos una referencia al primer bloque que forma parte de dicho fichero, así como otros atributos como el propietario del fichero, la fecha de último acceso, modificación, etc.


Directorios2.png


Cada tabla de entrada de ficheros ocupa como mínimo un bloque. Por cada entrada se almacena la siguiente información:

  • Nombre del fichero o directorio (tamaño variable)
  • Fecha de creación y último acceso (entero sin signo de 64-bits)
  • Propietario (entero sin signo de 32-bits para el identificador de usuario)
  • Grupo (entero sin signo de 32-bits para el identificador de grupo)
  • Permisos (entero sin signo de 16 bits que codifican los permisos).

De esta manera, cada entrada ocupa un número de bytes. Suponiendo que toda entrada requiera 64 bytes, si se emplea un tamaño de bloque de 4 KB, con un bloque se podrían mantener hasta 64 entradas. En caso de que un directorio tuviera más entradas, serían necesarios más bloques para la tabla de entrada de ficheros.

Sistema de ficheros

Un sistema de fichero se trata de la estructura lógica (mediante un tipo abstracto de datos como una tabla, una lista o un árbol) y el conjunto de mecanismos que se emplean para gestionar los bloques asignados a ficheros y los bloques libres.

12.2 FAT