Hay
estructuras que se crean en memoria durante la ejecución de los
procesos relacionadas con el uso que estos hacen de los archivos.
El
sistema cuenta con una tabla de archivos abiertos (open file table)
general donde figura información sobre los archivos activos (que están
siendo usados por los procesos) e índices de referencia al archivo.
Algunos sistemas requieren hacer un open previo al primer read.
La
llamada a sistema open toma el nombre de archivo, busca en el
directorio, copia la entrada del directorio en la tabla de archivos
abiertos. Todo esto si estas acciones son permitidas de acuerdo a los
modos de protección del archivo.
Un puntero para accederlo rápidamente es también puesto en la tabla de archivos abiertos.
En un sistema multiusuario, un archivo puede ser abierto por mas de dos usuarios simultáneamente, cada uno con su puntero.
Hay
dos tipos de tablas. La tabla por proceso contiene información sobre
los archivos abiertos por el proceso y contiene un apuntador a la
segunda tabla, la de los archivos abiertos en todo el sistema. Esta
segunda tabla tiene información independiente del proceso que lo ejecute
como ubicación del archivo en el disco, medida del archivo, etc.
La
tabla del sistema tiene también la cantidad de procesos que tienen
abierto el archivo, y con cada close este valor se va decrementando.
Cuando queda en cero, se remueve esa entrada.
La información asociada a un archivo abierto es:
Puntero (File pointer)
Contador de aperturas del file (File open count) cuando lo tiene abierto mas de un
proceso simultáneamente
Ubicación del archivo en el disco
Hay
sistemas que permiten compartir entre varios procesos, secciones de un
archivo: un archivo ejecutable que reside en disco y es llevado a
memoria y forma parte del espacio de direcciones de varios procesos; o
archivos de datos cuyos bloques en memoria son accedidos por varios
procesos.
No hay comentarios:
Publicar un comentario