5 Unidad Sistemas de Archivos
5 Unidad Sistemas de Archivos
5 Unidad Sistemas de Archivos
En computacin, un sistema de archivos es un mtodo para el almacenamiento y organizacin de archivos de computadora y los datos que estos contienen, para hacer ms fcil la tarea encontrarlos y accederlos. Los sistemas de archivos son usados en dispositivos de almacenamiento como discos duros y CD-ROM e involucran el mantenimiento de la localizacin fsica de los archivos. Ms formalmente, un sistema de archivos es un conjunto de tipo de datos abstractos que son implementados para el almacenamiento, la organizacin jerrquica, la manipulacin, el acceso, el direccionamiento y la recuperacin de datos. Los sistemas de archivos comparten mucho en comn con la tecnologa de las bases de datos. En general, los sistemas operativos tienen su propio sistema de archivos. En ellos, los sistemas de archivos pueden ser representados de forma textual (ej.: el shell de DOS) o grficamente (ej.: Explorador de archivos en Windows) utilizando un gestor de archivos. El software del sistema de archivos se encarga de organizar los archivos (que suelen estar segmentados fsicamente en pequeos bloques de pocos bytes) y directorios, manteniendo un registro de qu bloques pertenecen a qu archivos, qu bloques no se han utilizado y las direcciones fsicas de cada bloque. Los sistemas de archivos pueden ser clasificados en tres categoras: sistemas de archivo de disco, sistemas de archivos de red y sistemas de archivos de propsito especial. Ejemplos de sistemas de archivos son: FAT, UMSDOS, NTFS, UDF, ext2, ext3, ext4, ReiserFS, XFS, etc.
Concepto de Archivo. Las computadoras pueden almacenar informacin en varios soportes de almacenamiento, como discos magnticos, cintas magnticas y discos pticos. Para que el sistema informtico sea cmodo de utilizar, el sistema operativo proporciona una vista lgica uniforme para el almacenamiento de la informacin. El sistema operativo realiza una abstraccin de las propiedades fsicas de los dispositivos de almacenamiento, con el fin de definir una unidad lgica de almacenamiento, el archivo. Los archivos son mapeados por el sistema operativo sobre los dispositivos fsicos. Estos dispositivos de almacenamiento son, usualmente, no voltiles, de modo que los contenidos persisten aunque se produzcan fallos de alimentacin o reinicios del sistema. Un archivo es una coleccin de informacin relacionada, con un nombre, que se graba en almacenamiento secundario. Desde la perspectiva del usuario, un archivo es la unidad ms pequea de almacenamiento secundario lgico; en otras palabras, no pueden escribirse datos en el almacenamiento secundario a menos que estos se encuentren dentro de un archivo. Comnmente, los archivos representan programas (tanto en versin fuente como en versin objeto) y datos. Los archivos de datos pueden ser numricos, alfabeticos, alfanumricos o binarios: puede haber archivos de formato libre, como por ejemplo archivos de texto, o los archivos pueden estar formateados de manera rgida. En general, un archivo es una secuencia de bits, bytes, lneas o registros, cuyo significado est definido por el creador y el usuario del archivo. Por tanto, el concepto de archivo es extremadamente general. La informacin contenida en un archivo es definida por su creador. En un archivo pueden almacenarse muchos tipos distintos de informacin: programas fuente, programas objeto, programas ejecutables, datos numricos, texto, registros de nmina, imgenes grficas, grabaciones sonoras, etc. Un archivo tiene una determinada estructura definida que depender de su tipo. Un archivo de texto es una secuencia de caracteres organizada en lneas (y posiblemente en pginas). Un archivo fuente es una secuencia de subrutinas y funciones, cada una de las cuales est a su vez organizada como una serie de declaraciones, seguidas de instrucciones ejecutables. Un archivo objeto es una secuencia de bytes organizada en bloques que el programa montador del sistema puede comprender. Un archivo ejecutable es una serie de secciones de cdigo que el cargador puede cargar en memoria y ejecutar. 5.2.- Nocin de Archivo Real y Virtual. Los componentes del sistema de archivos y de programacin permiten interactuar con los recursos del sistema de archivos y de directorio y provocar eventos en intervalos programados. Las instancias del componente File System Watcher permiten inspeccionar cambios en los directorios y archivos y reaccionar cuando se producen. El componente Timer permite configurar programaciones simples de produccin de eventos y ejecutar el procesamiento asociado. 5.3.- Componentes de un Sistema de Archivos.
5.4.- Organizacin Lgica y Fsica. En esta parte vamos a usar el trmino organizacin de archivos para referirnos a la estructura lgica de los registros determinada por la manera en que se accede a ellos. La organizacin fsica del archivo en almacenamiento secundario depende de la estrategia de agrupacin y de la estrategia de asignacin de archivos. Para seleccionar una organizacin de archivos hay diversos criterios que son importantes: Acceso Rpido para recuperar la informacin Fcil actualizacin Economa de almacenamiento Mantenimiento simple Fiabilidad para asegurar la confianza de los datos La prioridad relativa de estos criterios va a depender de las aplicaciones que va a usar el archivo. El nmero de alternativas de organizacin de archivos que se han implementado o propuesto es inmanejable, incluso para un libro dedicado a los sistemas de archivos. La mayor parte de las estructuras empleadas en los sistemas reales se encuadran en una de estas categoras o puede implementarse como una combinacin de estas: Pilas Archivos secuenciales Archivos Secuenciales indexados Archivos indexados Archivos directos o de dispersin.
5.5.- Mecanismos de Acceso a los Archivos. Tipos: Mtodo de Acceso Secuencial: El acceso secuencial significa que un grupo de elementos es accedido en un predeterminado orden secuencial. El acceso secuencial es a veces la nica forma de acceder a los datos, por ejemplo en una cinta de cassette. Tambin puede ser el mtodo de acceso elegido, para simplemente procesar una secuencia de datos en orden. Mtodo de Acceso Secuencial Indexado: Mtodo de acceso secuencial indexado. Mtodo comn de acceso a disco que almacena datos en forma secuencial, al tiempo que mantiene un ndice de campos claves para todos los registros en el archivo para acceso directo. El orden secuencial sera el ms comnmente usado para el procesamiento por lotes y la impresin (nmero de cuenta, nombre, etc.). Mtodo de Acceso Indexado: Los archivos secuenciales indexados retienen la limitacin del archivo secuencial: la eficacia en el procesamiento se limita al basado en un nico campo del archivo. Cuando es necesario buscar un registro basndose en algn otro atributo distinto del campo clave ambas formas de archivo secuencial no son adecuadas. En algunas aplicaciones esta flexibilidad es deseable. Para alcanzar esta flexibilidad, se necesita una estructura que utilice mltiples ndices, uno para cada tipo de campo que pueda ser objeto de la bsqueda. Se suelen utilizar dos tipos de ndices. Un ndice exhaustivo contiene una entrada para cada registro del archivo principal. Otro ndice parcial contendr entradas a los registros donde este el campo de inters. Con registros de longitud variable, algunos registros no contendrn todos los campos. Los archivos indexados son muy utilizados en aplicaciones donde es critica la oportunidad de la informacin y donde los datos son rara vez procesados de forma exhaustiva. Mtodo de Acceso Hashed: Pendiente la definicion.
5.6.- Manejo de Espacio en Memoria Secundaria. Manejo de Espacio en Memoria Secundaria. El sistema de archivos se ocupa primordialmente de administrar el espacio de almacenamiento secundario, sobre todo el espacio en disco. El manejo del espacio libre en disco se lleva a cabo de la siguiente manera: Vector de bits. Lista ligada (lista libre). Por conteo (agrupacin). Vector de bits. El espacio libre en disco es frecuentemente implementado como un mapa de bits, donde cada sector es representado por un bit y si el sector es libre el bit es cero de lo contrario est asignado. Lista ligada Existe una cabecera en la que se tiene la direccin del primer sector vacio, ese sector a su vez, tiene un apuntador al siguiente sector, y as sucesivamente hasta que se encuentre una marca indicando que ya no hay espacio libre. Por conteo Aqu, por cada conjunto de sectores contiguos que estn vacios, se tiene por cada apuntador, un nmero de inicio y el tamao del grupo de sectores vacios. Mtodos de asignacin de espacio en disco Un mtodo de asignacin de espacio en disco determina la manera en que un Sistema Operativo controla los lugares del disco ocupados por cada archivo de datos. Contigua Ligada Indexada Asignacin contigua Este mtodo 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. Asignacin ligada En este mtodo, 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. Asignacin indexada 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. 5.7.- Modelo Jerrquico. Sistemas Jerrquicos de Directorios El directorio contiene un conjunto de datos por cada archivo referenciado. Una posibilidad es que el directorio contenga por cada archivo referenciado: El nombre. Sus atributos. Las direcciones en disco donde se almacenan los datos. Otra posibilidad es que cada entrada del directorio contenga: El nombre del archivo. Un apuntador a otra estructura de datos donde se encuentran los atributos y las direcciones en disco. Al abrir un archivo el S. O.: Busca en su directorio el nombre del archivo. Extrae los atributos y direcciones en disco. Graba esta informacin en una tabla de memoria real. Todas las referencias subsecuentes al archivo utilizarn la informacin de la memoria principal. El nmero y organizacin de directorios vara de sistema en sistema: Directorio nico: el sistema tiene un solo directorio con todos los archivos de todos los usuarios (ver Figura 4.1). Un directorio por usuario: el sistema habilita un solo directorio por cada usuario (ver Figura 4.2). Un rbol de directorios por usuario: el sistema permite que cada usuario tenga tantos directorios como necesite, respetando una jerarqua general (ver Figura 4.3).
Nombre de las Rutas de Acceso Cuando el sistema de archivos est organizado como un rbol de directorios se necesita una forma de determinar los nombres de los archivos. Los principales mtodos para nombres de los archivos son: Ruta de Acceso Absoluta: o Cada archivo tiene una ruta de acceso absoluta. o Consta de la ruta de acceso desde el directorio raz hasta el archivo. o Los componentes de la ruta de acceso se separan mediante algn carcter llamado separador. Ruta de Acceso Relativa: o Se utiliza junto con el concepto de directorio de trabajo o directorio activo. o Todos los nombres que no comiencen en el directorio raz se toman en relacin con el directorio de trabajo. o El nombre absoluto de la ruta de acceso siempre funciona, sin importar cual sea el directorio de trabajo.
Operaciones con Directorios Las llamadas al sistema permitidas para el manejo de los directorios tienen variacin de sistema a sistema. Las ms comunes son las siguientes: Create (crear): se crea un directorio vaco. Delete (eliminar): se elimina un directorio, que debe estar vaco. Opendir (abrir directorio): se pueden leer los directorios: o Antes de poder leer un directorio, ste debe ser abierto. Closedir (cerrar directorio): cuando se ha ledo un directorio, ste debe ser cerrado para liberar el espacio correspondiente de la tabla interna. Readdir (leer directorio): regresa la siguiente entrada en un directorio abierto, sin importar el tipo de estructura de directorios que se utilice. Rename (cambiar de nombre): cambia el nombre de un directorio de manera similar al cambio para archivos. Link (ligar): es una tcnica que permite que un archivo aparezca en ms de un directorio: o Especifica un archivo existente y el nombre de una ruta de acceso. o Crea un enlace del archivo ya existente con el nombre especificado en la ruta de acceso. Unlink (desligar): se elimina una entrada del directorio: o Si el archivo que se desea desligar aparece solo en un directorio (el caso normal): Se elimina del sistema de archivos. o Si el archivo que se desea desligar, est presente en varios directorios: Solo se elimina la ruta de acceso especificada. Las dems rutas permanecen. 5.8.- Mecanismos de Recuperacin en Caso de Falla. Mcanismos de Recuperacin en Caso de Fallas. Debido a que los archivos se mantienen tanto en memoria principal como en el disco, debemos asegurarnos de que un fallo del sistema no de por resultado la perdida de datos o inconsistencia en los mismos. La destruccin de la informacin, ya sea accidental o intencional, es una realidad y tiene distintas causas: Fallas de hardware y de software Fenmenos meteorolgicos atmosfricos Fallas en el suministro de energa Incendios e inundaciones Robos, vandalismo (incluso terrorismo) Esta posible destruccin de la informacin debe ser tenida en cuenta por: Los sistemas operativos en general Los sistemas de archivos en particular Una tcnica muy usada para asegurar la disponibilidad de los datos es realizar respaldos peridicos: 1. Hacer con regularidad una o ms copias de los archivos y colocarlas en lugar seguro. 2. Todas las actualizaciones realizadas luego del ltimo respaldo pueden perderse. Otra tcnica es pasar todas las transacciones a un archivo, copindolas en otro disco: Genera una redundancia que puede ser costosa En caso de fallas en el disco principal, puede reconstruirse todo el trabajo perdido si el disco de reserva no se da tambin Tambin existe la posibilidad del respaldo incremental: Durante una sesin de trabajo los archivos modificados quedan marcados. Cuando un usuario se retira del sistema (deja de trabajar), un proceso del sistema efecta el respaldo de los archivos marcados. Se debe tener presente que es muy difcil garantizar una seguridad absoluta de los archivos. El mtodo correcto de manejar fallos consiste bsicamente en detectarlos a tiempo y de forma correcta. La inclusin de equipos de test en el sistema es esencial para mantener esta capacidad de monitorizacin. En cualquier caso, la cada total o parcial del sistema se puede subsanar en parte si hay puntos de restauracin del sistema (chkpt). Esta posibilidad aumenta la disponibilidad de recuperacin en caso de fallos. Mecanismos de Proteccin Dominios de Proteccin
Muchos objetos del sistema necesitan proteccin, tales como la cpu, segmentos de memoria, unidades de disco, terminales, impresoras, procesos, archivos, bases de datos, etc. Cada objeto se referencia por un nombre y tiene habilitadas un conjunto de operaciones sobre l. Un dominio es un conjunto de parejas (objeto, derechos): Cada pareja determina: Un objeto. Un subconjunto de las operaciones que se pueden llevar a cabo en l. Un derecho es el permiso para realizar alguna de las operaciones. Es posible que un objeto se encuentre en varios dominios con distintos derechos en cada dominio. Un proceso se ejecuta en alguno de los dominios de proteccin: Existe una coleccin de objetos a los que puede tener acceso. Cada objeto tiene cierto conjunto de derechos. Una forma en la que el S. O. lleva un registro de los objetos que pertenecen a cada dominio es mediante una matriz : Los renglones son los dominios. Las columnas son los objetos. Cada elemento de la matriz contiene los derechos correspondientes al objeto en ese dominio, por ej.: leer, escribir, ejecutar. Listas Para Control de Acceso Las matrices de proteccin son muy grandes y con muchos lugares vacos Desperdician espacio de almacenamiento. Existen mtodos prcticos que almacenan solo los elementos no vacos por filas o por columnas. La lista de control de acceso (ACL: access control list): Asocia a cada objeto una lista ordenada con: Todos los dominios que pueden tener acceso al objeto. La forma de dicho acceso (ej: lectura , grabacin (w), ejecucin (x)). Una forma de implementar las ACL consiste en: Asignar tres bits (r, w, x) para cada archivo, para: El propietario, el grupo del propietario y los dems usuarios. Permitir que el propietario de cada objeto pueda modificar su ACL en cualquier momento: Permite prohibir accesos antes permitidos. Posibilidades La matriz de proteccin tambin puede dividirse por renglones. Se le asocia a cada proceso una lista de objetos a los cuales puede tener acceso. Se le indican las operaciones permitidas en cada uno. Esto define su dominio. La lista de objetos se denomina lista de posibilidades y los elementos individuales se llaman posibilidades. Cada posibilidad tiene: Un campo tipo: Indica el tipo del objeto.
Un campo derechos: Mapa de bits que indica las operaciones bsicas permitidas en este tipo de objeto. Un campo objeto: Apuntador al propio objeto (por ej.: su nmero de nodo-i).