1. Tema 5. El sistema de ficheros
1. Visión del usuario.
1. Concepto de fichero.
2. Organización lógica de los ficheros.
3. Estructura del sistema de ficheros.
4. Generalización de los servicios del sistema de ficheros.
2. Organización del espacio.
1. Asignación contigua.
2. Asignación no contigua.
3. Gestión del espacio libre.
3. Gestión de ficheros.
1. Estructura interna de un directorio.
2. Implantación de enlaces.
4. Integridad y protección del sistema de ficheros.
1. Seguridad e integridad. Métodos.
2. Protección. Mecanismos.
Área de Lenguajes y Sistemas Informáticos (E.G.R.)
1. Visión del usuario (I)
1.1. Concepto de fichero. (I)
Definiciones:
un fichero es un conjunto de información con cierta entidad y con vista
a su conservación y a su utilización en un entorno informático. A la
información contenida en un fichero se puede referenciar como un todo
mediante un nombre que se le asocia a cada fichero y que lo identifica.
el sistema de ficheros es la parte del S. O. encargada de gestionar los
datos almacenados en el almacenamiento secundario.
Funciones que debe ofrecer el sistema de ficheros:
1. permitir que los usuarios puedan crear, borrar y modificar sus ficheros;
2. permitir que los usuarios puedan compartir sus ficheros de una forma
controlada;
3. proporcionar varios tipos de acceso controlado a la hora de la
compartición;
Área de Lenguajes y Sistemas Informáticos (E.G.R.)
2. 1. Visión del usuario (II)
1.1. Concepto de fichero. (II)
Funciones que debe ofrecer el sistema de ficheros:
4. permitir que los usuarios puedan estructurar sus ficheros;
5. permitir que los usuarios puedan ordenar la transferencia de información
entre ficheros;
6. proporcionar recursos para realizar respaldos y recuperaciones de
información;
7. permitir que los usuarios puedan referenciar sus ficheros mediante
nombres simbólicos;
8. proporcionar posibilidades de cifrado y descifrado para conseguir
seguridad y privacidad;
9. ofrecer al usuario una interfaz amable, ofreciendo una vista lógica de los
datos y de las funciones que se pueden realizar con ellos;
10. efectuar las operaciones sobre los datos de forma independiente al
dispositivo;
11. gestionar la memoria secundaria.
Área de Lenguajes y Sistemas Informáticos (E.G.R.)
1. Visión del usuario (III)
1.2. Organización lógica de los ficheros.
Definición: la organización lógica de un fichero se refiere a la manera en que
se disponen sus registros dentro del almacenamiento secundario,
en base a realizar un acceso a nivel lógico.
Organizaciones comunes:
A. Acceso secuencial: la información del fichero se procesa en orden
consecutivo, por ello una operación de lectura leerá el siguiente registro y
una operación de escritura añadirá el registro al final del fichero.
B. Acceso directo: se accede a los registros de un fichero sin seguir un orden
particular, sino usando una clave. Si la clave es única existen dos métodos
de búsqueda:
1. Direccionamiento disperso: se usa una función que tomando como
entrada la clave devuelve la dirección física de ese registro;
2. Fichero indexado: se usa una tabla índice en donde es significativo el
orden de las claves.
Área de Lenguajes y Sistemas Informáticos (E.G.R.)
3. 1. Visión del usuario (IV)
1.3. Estructura del sistema de ficheros. (I)
El nombre simbólico de un fichero puede estar formado por una raíz y una extensión.
Un directorio es una estructura que permite organizar los ficheros de un sistema.
Los nombres simbólicos de los ficheros deben ser únicos dentro del directorio. Para
identificar un fichero es necesario dar su dirección completa partiendo del directorio
raíz (pathname o ruta de acceso). (Ejemplo: Directorio1Directorio3Fichero4)
Raíz ()
Directorio2 Fichero1
Directorio1
Fichero2 Directorio3 Fichero3
Fichero4
Área de Lenguajes y Sistemas Informáticos (E.G.R.)
1. Visión del usuario (V)
1.3. Estructura del sistema de ficheros. (II)
Conceptos:
1. Directorio de trabajo (working directory o directorio activo).
Se puede dar la dirección de un fichero a partir del directorio de trabajo (ruta de acceso
relativa). (Ejemplo: si el directorio de trabajo es Directorio1 Directorio3Fichero4)
2. Lista de búsqueda.
A cada proceso se le asigna una lista de direcciones de directorios, de forma que si el proceso
hace referencia a un fichero y este no esta en su directorio de trabajo, se busca en los
directorios que indica dicha lista de búsqueda.
3. Ficheros que hacen referencia a dispositivos de E/S.
4. Enlace (Link).
Es un mecanismo que permite que un determinado fichero se vea en dos puntos distintos de la
estructura sin necesidad de que existan dos copias del mismo fichero.
Raíz ()
Directorio1 Directorio2
Fichero1 Fichero2
Área de Lenguajes y Sistemas Informáticos (E.G.R.)
4. 1. Visión del usuario (VI)
1.4. Generalización de los servicios del sistema de ficheros.
Gestión de directorios:
1. crear un directorio;
2. borrar un directorio;
3. visualizar los elementos que dependen de un directorio;
4. (opcional) cambiar el nombre de un directorio.
Gestión del directorio de trabajo:
1. visualizar el directorio de trabajo actual;
2. modificar el directorio de trabajo.
Gestión de la lista de búsqueda:
1. visualizar la lista de búsqueda actual;
2. modificar la lista de búsqueda.
Gestión de enlaces:
1. crear un enlace;
2. borrar un enlace.
Área de Lenguajes y Sistemas Informáticos (E.G.R.)
2. Organización del espacio (I)
2.1. Asignación contigua. (I)
Definición: la asignación contigua consiste en asignarle a un fichero un área
contigua del almacenamiento secundario. Se requiere que el usuario
especifique por adelantado el tamaño del área necesaria para almacenar
el fichero que va a crear.
Ventajas:
1. minimiza el tiempo de acceso: el tiempo requerido para el intercambio de
información entre el disco y la memoria principal, o viceversa, necesita
el mínimo número de desplazamientos de la cabeza del disco y el
rotacional;
2. facilita la implementación de los directorios: basta almacenar por cada
fichero su dirección de comienzo y su longitud.
Desventaja:
1. presenta fragmentación externa: requiriendo la combinación de huecos
adyacentes y la compactación de memoria periódicamente.
Área de Lenguajes y Sistemas Informáticos (E.G.R.)
5. 2. Organización del espacio (II)
2.1. Asignación contigua. (II)
Este esquema es útil cuando no son frecuentes las creaciones,
destrucciones y cambios de tamaño de los ficheros.
Libre
Fichero A Fichero A
Libre
Fichero B Libre
Fichero B
Fichero C Aumenta el tamaño Fichero C
del fichero B
Área de Lenguajes y Sistemas Informáticos (E.G.R.)
2. Organización del espacio (III)
2.2. Asignación no contigua. (I)
Definición: la asignación no contigua consiste en alojar los ficheros
partidos en una serie de trozos del mismo tamaño (bloques), no
ocupando necesariamente áreas contiguas del almacenamiento
secundario.
Tamaño del bloque: compromiso entre el aprovechamiento de la
memoria y la obtención de una buena velocidad de transferencia.
A. tamaño del bloque grande: se desperdicia memoria ya que los
ficheros, sobre todo los pequeños, no conseguirán ocupar todo el
bloque;
B. tamaño del bloque pequeño: cuanto mayor sea el tamaño del fichero
mayor será el número de bloques que se le deben asignar y como
estos no se graban contiguos, entonces el tiempo de acceso a ellos
será mayor puesto que existe un retardo en el desplazamiento de la
cabeza del disco.
Área de Lenguajes y Sistemas Informáticos (E.G.R.)
6. 2. Organización del espacio (IV)
2.2. Asignación no contigua. (II)
Formas de asignar espacio:
1. Asignación encadenada: en cada bloque se reserva un espacio en
donde se guarda la dirección del siguiente bloque del fichero.
El último bloque del fichero se indica
siguiendo algún criterio preestablecido.
370 540
La dirección del primer bloque se encuentra en
el directorio donde cuelga el fichero.
112 FIN Inconvenientes:
1. desperdicio de memoria;
540 112 2. sirve solo para realizar acceso secuencial
y no directo;
3. la estructura empleada es bastante
vulnerable.
Área de Lenguajes y Sistemas Informáticos (E.G.R.)
2. Organización del espacio (V)
2.2. Asignación no contigua. (III)
Variante de la asignación encadenada: toda la información que contiene
los bloques son datos del fichero, almacenándose los apuntadores en una
tabla de asignación de ficheros (FAT). Esta tabla tiene tantas casillas como
número de bloques en los que se ha dividido el disco, y cada una de ellas
contendrá el puntero al siguiente bloque lógico dentro del disco.
FAT
Tabla de ficheros Si el disco es pequeño entonces
almacenados en disco 1 se puede mantener la tabla FAT
112 FIN en memoria principal.
… Si el tamaño del disco es muy
370 grande, entonces la FAT no se
370 540 podrá mantener en memoria
… principal siendo necesario tener
540 112 que ir descargándola y
cargándola por partes.
…
Área de Lenguajes y Sistemas Informáticos (E.G.R.)
7. 2. Organización del espacio (VI)
2.2. Asignación no contigua. (IV)
2. Asignación indexada: cada fichero tiene asociada una pequeña
tabla (índice) con la que se mantiene la estructura de sus bloques.
Lectura secuencial: se lee la
dirección del primer elemento
de la tabla de índices y se
accede al primer bloque de
370 datos, luego se lee la dirección
370 del segundo elemento de dicha
540 tabla para leer el segundo
112 bloque de datos, y así
112 sucesivamente.
540 Lectura directa: se realiza
buscando en la tabla la
dirección del bloque de datos
que se desea leer para acceder
a él a continuación.
Área de Lenguajes y Sistemas Informáticos (E.G.R.)
2. Organización del espacio (VII)
2.2. Asignación no contigua. (V)
Problema: la tabla de índices se almacena en otro bloque del disco, limitando
el tamaño del bloque el tamaño de la tabla y como consecuencia el número de
bloques de datos que compone el fichero.
Solución: cuando el bloque de índices se completa y el fichero necesita crecer
se coloca un segundo nivel de índices contenido en otro bloque, de forma que
la primera entrada de ese bloque direcciona el bloque que contiene la tabla
anterior; y la segunda entrada direccionará a la segunda tabla de índices y así
sucesivamente.
Bloques
de datos
Bloques
de índices
Área de Lenguajes y Sistemas Informáticos (E.G.R.)
8. 2. Organización del espacio (VIII)
2.3. Gestión del espacio libre. (I)
Tipo de asignación:
1. Asignación contigua. Mantener información sobre los huecos y tramos
ocupados.
2. Asignación no contigua. Procedimientos:
A. mapa del disco: estructura de datos almacenada en una zona concreta
del disco, cuyo tamaño es de tantos bits como bloques tiene el disco.
Los bloques libres se representan con el valor 1 y los bloques
ocupados con el valor 0 (o viceversa).
B. usar la FAT: los bloques libres están marcados con algún distintivo.
1 NIL
2 FIN
FAT … NIL
370 2
Área de Lenguajes y Sistemas Informáticos (E.G.R.)
… NIL
2. Organización del espacio (IX)
2.3. Gestión del espacio libre. (II)
C. lista de bloques libres.
Comparación:
Si existen muchos bloques libres, la lista de bloques ocupa más espacio
del disco que el mapa, ya que una dirección ocupa más que los bits del
mapa.
Si el disco esta dividido en un gran número de bloques, el mapa del disco,
por su tamaño, no se puede mantener en memoria principal para realizar
su gestión, mientras que si se usa una lista de bloques basta con mantener
la cabecera de esta en memoria principal, gestionándola como una cola
(se elige el primer bloque de la lista).
Área de Lenguajes y Sistemas Informáticos (E.G.R.)
9. 3. Gestión de ficheros (I)
3.1. Estructura interna de un directorio. (I)
Un directorio se implementa generalmente mediante una tabla, donde cada fila
corresponde a uno de los elementos que cuelga de ese directorio. Con esta tabla se
puede obtener:
conocimiento sobre los elementos que dependen del directorio;
acceso a un elemento directamente: si el elemento es un directorio se obtendrá la
dirección donde comienza la tabla que lo representa; en caso de que sea un fichero
se obtendrá la dirección de comienzo de su tabla de índices o la dirección del
primer bloque del fichero, dentro de la FAT o directamente al bloque del disco que
lo contiene;
localización de un fichero o directorio dada su ruta de acceso: se comienza
buscando en la tabla del directorio raíz la dirección de la segunda referencia del
pathname y así sucesivamente hasta hallar el componente requerido o producirse
un error debido a que alguna de las referencias no se encuentren en sus respectivas
tablas.
En dicha tabla se guarda información esencial de cada uno de los elementos: tamaño
del fichero, fecha de creación y de último acceso, tipo de fichero, etc.
Área de Lenguajes y Sistemas Informáticos (E.G.R.)
3. Gestión de ficheros (II)
3.1. Estructura interna de un directorio. (II)
UNIX solo almacena el nombre simbólico del fichero y el número de inode, ya que
además gestiona la tabla de inodes donde guarda la información esencial de cada
fichero: tamaño, propietario del fichero y las direcciones para localizar los bloques
de datos del fichero en el disco. Existen trece direcciones que se ajustan al siguiente
esquema: 1
2 .
3 .
4
Direcciones 5
.
directas 6 . .
7
8
. . ...
9 ...
10 ...
Indirecta simple 11 ... .
Indirecta doble 12 . . ...
Indirecta triple 13 ... . ...
Área de Lenguajes y Sistemas Informáticos (E.G.R.)
10. 3. Gestión de ficheros (III)
3.2. Implantación de enlaces.
Formas de representar un enlace:
1. Se crea un archivo de tipo enlace dependiendo del directorio donde se crea el
enlace, cuyo contenido es la ruta absoluta de acceso al archivo al cual se
enlaza.
2. Unix almacena en la estructura con la que se implementa el directorio del cual
depende el enlace, el número del inode del fichero correspondiente, es decir,
apunta a la tabla de inodes.
Área de Lenguajes y Sistemas Informáticos (E.G.R.)
4. Integridad y protección del
sistema de ficheros (I)
4.1. Seguridad e integridad. Métodos. (I)
Definición: la integridad se refiere a que la información que contiene todo
el sistema de ficheros debe ser consistente.
Problemas:
1. Fallo en la superficie del dispositivo: el sistema de ficheros queda
incompleto.
2. Errores en la lectura o escritura de la información: el sistema de
ficheros queda integro pero no consistente.
3. Fallo del sistema global: el sistema de ficheros queda no consistente.
Área de Lenguajes y Sistemas Informáticos (E.G.R.)
11. 4. Integridad y protección del
sistema de ficheros (II)
4.1. Seguridad e integridad. Métodos. (II)
Métodos:
1. Copias de seguridad (backup).
Tipos:
Copias globales periódicamente: cada cierto tiempo se graba
manualmente todo el sistema de ficheros. El proceso de
recuperación consiste en cargar la última copia global realizada.
Copias increméntales: se realizan copias globales más espaciadas y
durante ese tiempo solo se copian las modificaciones que se
producen. Para ello, el Sistema Operativo mantendrá la fecha de la
última vez que se modifico cada componente y también la de la
última copia incremental. El proceso de recuperación se ralentiza:
se carga la última copia global y se añade a ella todas la
modificaciones que indican las copias incrementales siguientes,
siguiendo el mismo orden en que se grabaron.
Área de Lenguajes y Sistemas Informáticos (E.G.R.)
4. Integridad y protección del
sistema de ficheros (III)
4.1. Seguridad e integridad. Métodos. (III)
2. Tratamiento atómico estable.
La información del sistema de ficheros esta duplicada en dos conjuntos de
dispositivos idénticos. Requiere un mayor número de dispositivos (coste)
y un mayor tiempo de acceso, ya que se debe realizar las actualizaciones
en ambas copias, primero en una de ellas y cuando se compruebe que esta
bien hecha, será el momento en que se actualice la otra copia.
3. Tratamiento diferencial de los ficheros.
Asegura la integridad de cada fichero mientras se esta usando, ya que
consiste en usar un nuevo bloque para almacenar la información
modificada de uno ya existente y no rescribirlo.
Área de Lenguajes y Sistemas Informáticos (E.G.R.)
12. 4. Integridad y protección del
sistema de ficheros (IV)
4.1. Seguridad e integridad. Métodos. (IV)
En asignación indexada, cada dirección a un bloque tiene un campo que
indica si ese bloque esta modificado o no. Si se modifica el contenido del
bloque se toma un nuevo bloque, añadiendo su dirección a la tabla y
modificando el campo citado anteriormente. Al terminar de trabajar con el
fichero es cuando se actualizan las direcciones a los bloques ya
modificados, se inicializan el campo modificado a no modificado, y se
liberan los bloques antiguos.
Bit Dirección Dirección
modificado bloque antiguo bloque nuevo
Área de Lenguajes y Sistemas Informáticos (E.G.R.)
4. Integridad y protección del
sistema de ficheros (V)
4.1. Seguridad e integridad. Métodos. (V)
4. Utilidades que comprueben la consistencia de la estructura de datos
que soporta el sistema de ficheros.
Posibles errores que detectan:
si un mismo bloque pertenece a dos ficheros distintos,
si un bloque designado como libre esta asignado también a un
fichero, etc.
Generalmente estas utilidades se ejecutan cuando se producen errores al
acceder a los ficheros.
Con estas utilidades no se comprueba la consistencia del contenido de
los ficheros.
Área de Lenguajes y Sistemas Informáticos (E.G.R.)
13. 4. Integridad y protección del
sistema de ficheros (VI)
4.2. Protección. Mecanismos. (I)
Definición: la protección se refiere al control que debe realizar el Sistema
Operativo sobre el uso que hacen los usuarios de la
información existente en el sistema de ficheros.
Mecanismos:
1. Uso de contraseñas.
La información es propiedad de los usuarios no de los procesos,
aunque son estos los que piden acceso a esa información. El Sistema
Operativo determina el usuario al que pertenece cada proceso de la
siguiente forma: cuando el usuario se conecta se debe identificar
(nombre de usuario y contraseña) y en ese momento se crea un
proceso que se le asocia a dicho usuario. Este proceso creará otros
procesos dependiendo de él, de forma que todos ellos pertenecen al
mismo usuario.
Área de Lenguajes y Sistemas Informáticos (E.G.R.)
4. Integridad y protección del
sistema de ficheros (VII)
4.2. Protección. Mecanismos. (II)
2. Lista de control de acceso (ACL).
El Sistema Operativo mantiene de cada elemento del sistema una lista de
control de acceso formada por pares de usuarios-operaciones permitidas
(leer, ejecutar, añadir y modificar), de forma que antes de admitir el
acceso de un usuario a un elemento se comprueba si ese usuario esta en la
lista de ese elemento y que la operación que solicita también está.
Cada vez que se crea un elemento del sistema de ficheros se le asocia una
lista de control de acceso por defecto que consiste en el usuario que lo
crea con todas las operaciones. Esta lista se puede modificar.
Además, existe un usuario privilegiado (superusuario) que cuando accede
a un elemento del sistema de ficheros, el Sistema Operativo no
comprueba si esta en la lista de acceso de dicho elemento, permitiéndole
de esta forma acceder a todo el sistema. Es por ello el encargado de
realizar las copias de seguridad y de reorganizar el sistema de ficheros.
Área de Lenguajes y Sistemas Informáticos (E.G.R.)