File System M.C. Juan Carlos Olivares Rojas Operating Systems jolivares@uvaq.edu.mx 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 concepto de dominio de proceso opera dentro de protección, el cual especifica el proceso puede acceder.
se introduce el protección. Un un dominio de los recursos que
• 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/sistemaso perativos2/ [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?