File System
M.C. Juan Carlos Olivares Rojas
Operating Systems
[email protected]
May, 2009
Temario
Introducción
Notación de archivo real y virtual
Componentes de un sistema de archivos
Organización lógica y física
Mecanismos de acceso a los archivos
Manejo del espacio de memoria secundaria
Introducción
• Un archivo es un conjunto de elementos de
información relacionados entre si y que fueron
definidos por su creador.
• Por lo general, los archivos representan datos y
programas.
• Un archivo de datos puede ser texto
(alfanumérico) o binario (secuencia de bytes).
Introducción
• Los archivos pueden ser de formato libre, como
los archivos de texto, o pueden estar
rigurosamente formateados (en general los
archivos binarios).
• En general, un archivo es una secuencia de
bits, bytes, líneas o registros cuyo significado
es definido por el creador del archivo y por el
usuario.
Introducción
• Un archivo se puede manipular como una
unidad mediante operaciones tales como:
–
–
–
–
–
–
–
Abrir (open()),
Cerrar (close()),
Crear (create()),
Destruir (destroy()),
Copiar (copy()),
Renombrar (rename()) y
Listar (list()).
Introducción
• Los elementos de información individuales que
conforman un archivo se pueden manipular con
acciones
tales
como
leer
(read()),
escribir(write()),
modificar(modify())
y
eliminar(remove()).
• De acuerdo a las características y tipo de
trabajo que se realicen sobre los archivos,
estos pueden caracterizarse por su: Volatilidad,
Actividad y Tamaño.
Introducción
• Volatilidad: se refiere a la frecuencia con la que
se inserta o elimina información.
• Actividad: se refiere al porcentaje de los
elementos de información de un archivo al que
se tuvo acceso en un periodo de tiempo dado.
• Tamaño: se refiere a la cantidad de información
que conforma el archivo.
Introducción
• Archivo físico: es la información vista desde la
perspectiva de hardware.
• Por ejemplo, el archivo 1 está formado por los
sectores 3, 10 y 15 del archivo.
• Otro ejemplo: el archivo X es la secuencia de
bytes localizados en la RAM en el bloque
0A703h:03000h al 0A703h:04200h.
Introducción
• Archivo lógico: son datos cuyo significado esta
definido por el usuario.
• Ejemplo, el archivo Y es la información de 1000
artículos, cada uno con su código, descripción
y precio. Generalmente, un archivo lógico se
representa de manera tabular.
Introducción
• El sistema de archivos (File System) de un
sistema operativo, está conformado por todas
aquellas rutinas encargadas de administrar
todos los aspectos relacionados con el manejo
de Archivos.
• En general, un Sistema de Archivos está
compuesto
por:
Métodos
de
Acceso,
Administración de Archivos, Administración de
Almacenamiento Secundario, y Mecanismos de
Integridad.
Introducción
• Los Métodos de Acceso se ocupan de la
manera en que se tendrá acceso a la
información almacenada en el archivo.
Ejemplo: Secuencial, Directo, indexado, etc.
• El Administración de Archivos se ocupa de
ofrecer los mecanismos para almacenar,
compartir y asegurar archivos, así como para
hacer referencia a ellos.
Introducción
• La
Administración
de
Almacenamiento
Secundario se ocupa de asignar espacio para
los
archivos
en
los
dispositivos
de
almacenamiento secundario.
• Los Mecanismos de Integridad se ocupan de
garantizar que no se corrompa la información
de un archivo, de tal manera que solo la
información que deba estar en él, se encuentre
ahí.
Introducción
• La Organización de archivos se refiere a las
diferentes maneras en las que puede ser
organizada la información de los archivos, así
como las diferentes maneras en que ésta
puede ser accedida.
• Dado que hay 2 niveles de visión de los
archivos (físico y lógico), se puede hablar
también de 2 aspectos de organización de
archivos: organización de archivos lógicos y de
archivos físicos.
Introducción
• La organización de archivos lógicos contempla
la organización desde el punto de vista lógico.
Por ejemplo, secuencial, directo, etc.
• La organización de archivos físicos contempla
la administración de archivos desde la
perspectiva
física,
particularmente
la
organización del almacenamiento en disco a
nivel de pistas y sectores.
Introducción
• Este tipo de organización muestra a su vez,
dos aspectos importantes: Métodos de
Asignación de Espacio Libre y Asignación De
Espacio de Almacenamiento del Archivo.
• Un método de asignación de espacio libre
determina la manera en que un Sistema
Operativo controla los lugares del disco que no
están siendo ocupados.
Introducción
• Para el control del espacio libre se puede
utilizar como base alguno de los métodos
teóricos: Vector de Bits, Lista Ligada, por
Agrupacion y por Contador.
• En un Vector de Bits, el número de bits que se
tiene, representa cada sector del disco, es
decir, que si los sectores 10 y 11 están
ocupados su representación será:
Introducción
• Lista Ligada: existe una cabecera en la que se
tiene la dirección del primer sector vacío, ese
sector a su vez, tiene un apuntador al siguiente
bloque, y así sucesivamente hasta que se
encuentre una marca indicando que ya no hay
espacio libre.
• Sistemas de archivos como FAT y EXT2
funcionan con características de este esquema.
Introducción
• Por agrupación: es similar a la lista ligada, solo
que en este se tiene por cada sector, un grupo
de apuntadores a varios espacios vacios, al
final de cada bloque se tiene un apuntador a
otro grupo de apuntadores.
• Por contador: aquí, por cada conjunto de
bloques contiguos que estén vacios, se tiene
por cada apuntador, un número de inicio y el
tamaño del grupo de sectores vacios.
Introducción
• Métodos de asignación de espacio en disco: un
método de asignación de espacio en disco
determina la manera en que un Sistema
Operativo controla los lugares del disco
ocupados por cada archivo de datos.
• Se debe controlar básicamente la identificación
del archivo, sector de inicio y sector final.
Introducción
• Para el control del espacio ocupado en disco se
puede utilizar como base alguno de los
métodos teóricos: Asignación Contigua,
Asignación Ligada, Asignación Indexada.
• Asignación continua: este método consiste en
asignar el espacio en disco de tal manera que
las direcciones de todos los bloques
correspondientes a un archivo definen un orden
lineal.
Introducción
• Las ventajas y desventajas que presenta este
método de asignación son las siguientes:
• La cabeza de lectura no se mueve demasiado
en la lectura de un archivo (ventaja)
• Produce fragmentación externa.
Introducción
• Asignación Ligada: en este método, cada
archivo es una lista ligada de bloques de disco.
• En el directorio hay un apuntador al bloque de
inicio y un apuntador al bloque final para cada
archivo.
• En cada uno de los bloques donde se
encuentra un archivo hay un apuntador al
siguiente bloque de la lista.
Introducción
• Las ventajas y desventajas que produce este
método son las siguientes:
– No produce fragmentación externa (ventaja).
– La cabeza de lectura se puede mover demasiado
en la lectura de un archivo (desventaja).
– Si una liga se pierde, se perderá el archivo
completo (desventaja).
– Es ineficiente para la implementación de archivos
directos (desventaja).
– Se necesita un campo extra para el apuntador
(desventaja).
Introducción
• Asignación Indexada: resuelve el problema de
la fragmentación externa poniendo todos los
apuntadores en una sola localidad: El bloque
índice.
• Cada archivo tiene su bloque índice, El cual es
un arreglo de direcciones de bloques de disco.
• La i-ésima entrada en el bloque índice apunta
al i-ésimo bloque que conforma el archivo. En
el directorio se controla la dirección del bloque
índice
de
cada
archivo.
Introducción
• Las ventajas y desventajas que presenta este
método son las siguientes:
– No produce fragmentación externa (ventaja).
– Eficiente para la implementación de archivos
directos (desventaja).
– Existe desperdicio cuando hay archivos muy chicos
(desventaja).
– Desbordamiento de bloque índice (solución:
creación de un esquema ligado; el ultimo bloque
índice apunta a otro índice).
Introducción
• Método FAT (MS-DOS): un aspecto importante
de cualquier Sistema Operativo es la manera
de gestionar los archivos.
• En el antiguo MS-DOS, la gestión de los
archivos era casi todo lo que hacía el Sistema
Operativo, esencialmente cuando se ejecutaba
Windows de 16 bits sobre él.
• Windows de 16 bits se ocupaba de todo a
excepción de la manipulación de los discos fijos
y flexibles, que los dejaba para MS-DOS.
Introducción
• El objetivo de la FAT es el de asignar espacio
en disco para archivos.
• La tabla FAT contiene una entrada para cada
grupo que está en el disco. Cada grupo es un
conjunto de sectores.
• Al querer crear un archivo o revisar uno
existente, el sistema operativo revisa las
entradas que están asociadas a la FAT de
acuerdo con la ubicación del archivo.
Introducción
• El área de sistema tiene 3 componentes:
Registro de arranque, FAT y directorio. La tabla
tiene una captación por bloque, ésta define
cuantos bloques tiene el primer archivo. Esta
ranura de la FAT contiene el número de bloque
del siguiente bloque.
Introducción
• Método VFAT: la VFAT emplea la misma
técnica que la FAT, a diferencia de que la
VFAT la implementa Windows '95 con
direccionamiento a 32 bits. En sí éste módulo
de 32 bits está escrito en código reentrante, lo
que permite que múltiples hilos concurrentes
ejecuten el código del sistema de archivos.
Introducción
• Parte
esencial
de
cualquier
sistema
corresponde con el almacenamiento de la
información, esto se logra a través de un
sistema de archivos.
• Los archivos son las unidades lógicas para
representar la información, y en un sistema
distribuido los archivos pueden estar en
prácticamente cualquier parte.
Archivos
• Algunas características que comparten los
sistemas de archivos son:
• En general son pequeños (<10 KB)
• La lectura es más común que la escritura
• La lectura y escritura son secuenciales, es raro
el acceso aleatorio
• La mayoría de los archivos tiene una vida corta.
Archivos
• Es poco usual compartir archivos
• Los procesos promedio utilizan pocos archivos
• Se recomienda el uso de cachés para evitar
problemas de escritura simultánea.
Duplicidad de datos
• Se utiliza la duplicidad de los datos para tener
sistemas tolerantes a fallos, de más fácil
acceso, entre otras ventajas.
• El principal problema que presenta la
duplicación de los datos tiene que ver con la
transparencia de almacenamiento.
• Otro problema importante consiste en la
consistencia de la información.
Duplicidad de datos
• Se manejan esquemas de actualización de
réplicas primarias y secundarias, basado en
quorum, entre otros mecanismo.
• La duplicidad de los datos se puede hacer a
nivel físico como los sistemas RAID.
• Las cachés son un ejemplo de duplicidad de
datos que traen grandes beneficios.
Uso de Archivos
• Por este motivo se necesita de una base de
datos de n*m*r
• Al compartir recursos se generan colas (lista de
espera).
• El principal problema de la compartición es la
concurrencia a un recurso
Dominios de protección
• Para facilitar este esquema se introduce el
concepto de dominio de protección. Un proceso
opera dentro de un dominio de protección, el
cual especifica los recursos que el proceso
puede acceder.
• Cada dominio define un conjunto de objetos y
los tipos de operaciones que pueden ser
realizadas sobre cada objeto.
Dominios de protección
• La capacidad de ejecutar una operación sobre
un objeto es un derecho de acceso.
• Un dominio es una colección de derechos de
acceso, cada uno de los cuales es un par
ordenado
<Nombre_Objeto,
Conjunto_de_Operaciones>.
Dominios de protección
• Por ejemplo, si el dominio "D" tiene derecho de
acceso <Archivo F, {Leer, Escribir}>, entonces
un proceso que se está ejecutando en el
dominio "D" puede tanto leer como escribir en
el archivo F; no podrá realizar alguna otra
operación sobre este objeto.
• Los dominios de protección no necesitan ser
distintos; por el contrario, pueden compartir
derechos de acceso.
Dominios de protección
• ¿Qué pasa en los siguientes casos?
• Se tienen 3 dominios: D1, D2 y D3; y los
siguientes objetos:
• D1: <O3, {Leer, Escribir}><O2, {Escribir}><01,
{Ejecutar}>
• D2: <O1, {Leer, Escribir}><O4, {Imprimir}>
• D3: <O3, {Leer}><O4, {Imprimir}>
Matrices de derechos
• Un modelo de protección puede ser visto
abstractamente como una matriz, llamada
matriz de derecho. Los renglones de la matriz
representan dominios y las columnas
representan objetos.
• Cada entrada en la matriz contiene un conjunto
de derechos de acceso. La entrada "Matriz[i, j]"
define el conjunto de operaciones que un
proceso ejecutándose en el dominio "Dj" puede
realizar sobre el objeto "Oj".
Protección
• La autenticación generalmente se da a través
de esquemas de contraseñas, las cuales si no
cuentan con una política robusta de generación
y mantenimiento se vuelven fácilmente
vulnerables.
• Un esquema de autenticación seguro es
kerberos, el cual se utiliza para autenticar el
uso de servicios como NFS, etc.
Protección
• Se debe garantizar la integridad y privacidad de
los datos de los usuarios.
• Se debe proteger la cesión de derechos de
algún recurso en el sistema.
• El esquema básico de protección radica en una
matriz de acceso, en la cual se listan los
recursos y las actividades que se pueden
realizar sobre él.
Protección
• Las matrices de acceso no son tan eficientes
ya que dependen de la cantidad de recursos,
usuarios y accesos.
• Un mejor esquema son las lista de control de
acceso en las cuales se puede especificar el
acceso a cada recurso de una mejor forma.
• Un mejor esquema de protección es el acceso
a través de roles.
Registry
Registry
FileSystem
FileSystem
FileSystem
FileSystem
FileSystem
FileSystem
FileSystem
FileSystem
FileSystem
FileSystem
FileSystem
FileSystem
FileSystem
FileSystem
Security
Security
Security
Security
Security
Security
Security
Security
Security
Security
Security
Security
Security
Security
Security
FileSystem
FileSystem
FileSystem
FileSystem
FileSystem
FileSystem
FileSystem
FileSystem
FileSystem
FileSystem
FileSystem
FileSystem
FileSystem
FileSystem
FileSystem
FileSystem
FileSystem
FileSystem
FileSystem
FileSystem
FAT
FileSystem
FileSystem
FileSystem
FileSystem
FileSystem
FileSystem
FileSystem
File System
Referencias
• Tutorial de Sistemas Operativos 2. Instituto
Tecnológico
de
la
Paz.
http://sistemas.itlp.edu.mx/tutoriales/sistemasop
erativos2/ [agosto 2007]
• Tanebaum, A., Woodhull, A. (1997) Sistemas
Operativos. Diseño e Implementación. México,
Prentice Hall. ISBN: 970-17-0165-8.
Referencias
• Villegas, Cristobal. Material Curso de Sistemas
Operativos 2 (2002). Instituto Tecnológico de
Morelia, México.
• Silberschatz, Abraham, Galvin, Peter, Sistemas
Operativos, Quinta edición (1999). México,
Pearson.
Questions?