miércoles, 4 de enero de 2012

Gestión del sistema de archivos UNIX

Para poder administrar este sistema de archivos se crean tres tablas de datos, la tabla de descriptores de archivo, la tabla de ficheros y la tabla de nodos i.



  • Nivel Usuario 


  1. Tabla de descriptores de archivo. Esta tabla identifica todos los archivos abiertos por un proceso. Se encuentra en el espacio de memoria del usuario. El usuario cada vez que proceda a abrir un archivo se devuelve un puntero a la entrada correspondiente en la tabla de archivos. Cada vez que se abra un archivo este devolverá un puntero diferente y así no se podrá abrir este fichero en modos diferentes o acceder al mismo desde diferentes puntos. El tamaño de esta tabla tiene un valor limitado para cada proceso, este valor depende de la configuración del sistema, aunque normalmente suele ser 20. Si algún proceso desea manipular mas de 20 archivos, será necesario que alguno de los otros se cierre.

  • Nivel de Kernel

  1. Tabla de ficheros. Esta se encuentra en el área de memoria del sistema.  Cada vez que se crea o abre un archivo se reserva una nueva entrada en la tabla. Hay una entrada por cada archivo distinto que los procesos kernel o del usuario tengan abiertos, donde indica el punto actual del archivo, el tipo de apertura, un puntero al inodo y el numero de descriptores que apuntan a esa entrada. 
  2. Tabla de inodos. Es una copia en memoria de la lista de inodos que hay en el disco, a la que se le añade información adicional. Esta tabla se copia en el disco para conseguir un acceso mas rápido. Además incluye un contador que indica el número de entradas en la tabla de archivos que apuntan al inodo. Cuando se abre el fichero por segunda vez se utiliza la misma entrada al inodo, incrementando su contador. Cada vez que se cierra, disminuye el contador, hasta que llega a 0 entonces se elimina esa entrada en la tabla de inodos


0 comentarios:

Publicar un comentario