Vous êtes sur la page 1sur 49

Capitulo 4: Sistemas de Archivos

Patricia Eveline CtaN2011406001 Ing. Marco Valle Sistemas Operativos 2


6 Enero

Problemas de Almacenamiento
- La capacidad de almacenamiento esta restringida por el tamao del espacio de direcciones virtuales

- Relacionado con el mantenimiento de la informacin dentro del espacio de direcciones de un proceso es que cuando el proceso termina, la informacin se pierde.
- Es necesario que varios procesos accedan a partes de la informacin al mismo tiempo.

Requerimientos de almacenamiento a largo plazo


Debe ser posible almacenar una cantidad muy grande de informacin. La informacin debe sobrevivir a la terminacin del proceso que la utilice.

Multiples procesos deben ser capaces de acceder a la informacin concurrente.

sistema de archivos
Que son archivos? son unidades lgicas de informacin creada por los procesos. La parte del sistema operativo que trata con los archivos es llamado sistema de archivos.

Archivos

Nomenclatura de Archivos
Los archivos son un mecanismo de abstraccin. Ayudan de como se almacenara la informacin en el disco y como se leer despues. Para proteger al usuario de donde y como se almacena la informacin y como funcionan los discos en realidad. UNIX Maria =! MARIA =! maria ; MS-Dos si.
FAT-16: Windows 95 y Windows 98 utilizan el sistema de archivos Extensin = Fat-32. Extensiones de Archivo: la parte despus del punto.

Estructura de Archivos
Los archivos se pueden estructurar en una de varias formas. Tres posibilidades comunes. 1. Secuencia de Bytes 2. Secuencia de Registros 3.Arbol

Secuencia de Bytes
El sistema operativo no sabe, ni le importa, qu hay en el archivo. Todo lo que ve son bytes. Cualquier significado debe ser impuesto por los programas a nivel usuario. Tanto UNIX como Windows utilizan esta metodologa Los programas de usuario pueden colocar cualquier cosa que quieran en sus archivos y denominarlos de cualquier manera conveniente. El sistema operativo no ayuda, pero tampoco estorba. Para los usuarios que desean realizar cosas inusuales, esto ltimo puede ser muy importante. Todas las versiones de UNIX, MSDOS y Windows utilizan este modelo de archivos

Secuencia de registros
En este modelo, un archivo es una secuencia de registros de longitud fija, cada uno con cierta estructura interna. El concepto central para la idea de que un archivo sea una secuencia de registros es la idea de que la operacin de lectura devuelva un registro y la operacin de escritura sobrescriba o agregue un registro Ningn sistema de propsito general de la actualidad utiliza ya este modelo como su sistema de archivos primario, pero en aquellos das de las tarjetas perforadas de 80 columnas y del papel de impresora de lnea de 132 caracteres, ste era un modelo comn en las computadoras mainframe

Arbol
En esta organizacin, un archivo consiste de un rbol de registros, donde no todos son necesariamente de la misma longitud; cada uno de ellos contiene un campo llave en una posicin fija dentro del registro. El rbol se or- dena con base en el campo llave para permitir una bsqueda rpida por una llave especfica La operacin bsica aqu no es obtener el siguiente registro, aunque eso tambin es posible, sino obtener el registro con una llave especfica Evidentemente, es- te tipo de archivos es bastante distinto de los flujos de bytes sin estructura que se usan en UNIX y Windows, pero se utiliza de manera amplia en las grandes computadoras mainframe que an se emplean en algn procesamiento de datos comerciales

Tipos de Archivo
Los archivos regulares son los que contienen informacin del usuario, los archivos regulares son archivos ASCII o binarios Los directorios son sistemas de archivos para mantener la estructura del sistema de archivos Los archivos especiales de caracteres se relacionan con la entrada/salida y se utilizan para modelar dispositivos de E/S en serie, tales como terminales, impresoras y redes Los archivos especiales de bloques se utilizan para modelar discos

Acceso a Archivos
Los primeros sistemas operativos proporcionaban slo un tipo de acceso: acceso secuencial. En estos sistemas, un proceso poda leer todos los bytes o registros en un archivo en orden, empezando desde el principio, pero no poda saltar algunos y leerlos fuera de orden. Sin embargo, los archivos secuenciales podan rebobinarse para poder leerlos todas las veces que fuera necesario. Los archivos secuenciales eran convenientes cuando el medio de almacenamiento era cinta magntica en vez de disco Los archivos cuyos bytes o registros se pueden leer en cualquier orden se llaman archivos de acceso aleatorio. Los archivos de acceso aleatorio son esenciales para muchas aplicaciones, como los sistemas de bases de datos. Si el cliente de una aerolnea llama y desea reservar un asiento en un vuelo es- pecfico, el programa de reservacin debe poder tener acceso al registro para ese vuelo sin tener que leer primero los miles de registros de otros vuelos

Atributos de Archivos
A estos elementos adicionales les llamaremos atributos del archivo, o metadatos. Los campos longitud de registro, posicin de llave y longitud de llave slo estn presentes en los archivos en cuyos registros se pueden realizar bsquedas mediante el uso de una llave. Ellos pro- porcionan la informacin requerida para buscar las llaves

Operaciones de Archivos
Create. El archivo se crea sin datos. El propsito de la llamada es anunciar la llegada del archivo y establecer algunos de sus atributos. Delete. Cuando el archivo ya no se necesita, se tiene que eliminar para liberar espacio en el disco. Siempre hay una llamada al sistema para este propsito Open. Antes de usar un archivo, un proceso debe abrirlo. El propsito de la llamada a es permitir que el sistema lleve los atributos y la lista de direcciones de disco a memoria principal para tener un acceso rpido a estos datos en llamadas posteriores
open

Close. Cuando terminan todos los accesos, los atributos y las direcciones de disco ya no son necesarias, por lo que el archivo se debe cerrar para liberar espacio en la tabla interna. Muchos sistemas fomentan esto al imponer un nmero mximo de archivos abiertos en los pro- ceso Read. Los datos se leen del archivo. Por lo general, los bytes provienen de la posicin ac- tual. El llamador debe especificar cuntos datos se necesitan y tambin debe proporcionar un bfer para colocarlos

Operaciones de Archivos
Write. Los datos se escriben en el archivo otra vez, por lo general en la posicin actual. Si la posicin actual es al final del archivo, aumenta su tamao. Si la posicin actual est en medio del archivo, los datos existentes se sobrescriben y se pierden para siempre
Append. Esta llamada es una forma restringida de write. Slo puede agregar datos al final del archivo. Los sistemas que proveen un conjunto mnimo de llamadas al sistema por lo general no tienen append; otros muchos sistemas proveen varias formas de realizar la mis- ma accin y algunas veces sos tienen append. Seek. Para los archivos de acceso aleatorio, se necesita un mtodo para especificar de dnde se van a tomar los datos. Una aproximacin comn es una llamada al sistema de nombre seek, la cual reposiciona el apuntador del archivo en una posicin especfica del archivo. Una vez que se completa esta llamada, se pueden leer o escribir datos en esa posicin

Operaciones de Archivos
Get Attributes. A menudo, los procesos necesitan leer los atributos de un archivo para realizar su trabajo. Por ejemplo, el programa make de UNIX se utiliza con frecuencia para administrar proyectos de desarrollo de software que consisten en muchos archivos fuente Set Attributes. Algunos de los atributos puede establecerlos el usuario y se pueden modificar despus de haber creado el archivo. Esta llamada al sistema hace eso posible. La informacin del modo de proteccin es un ejemplo obvio Rename. Con frecuencia ocurre que un usuario necesita cambiar el nombre de un archivo existente. Esta llamada al sistema lo hace posible. No siempre es estrictamente necesaria, debido a que el archivo por lo general se puede copiar en un nuevo archivo con el nuevo nombre, eliminando despus el archivo anterior

Directorios

Sistemas de Directorios de un Solo Nivel

La forma ms simple de un sistema de directorios es tener un directorio que contenga todos los archivos. Algunas veces se le llama directorio raz, pero como es el nico, el nombre no importa mucho. En las primeras computadoras personales, este sistema era comn, en parte debido a que slo haba un usuario. Como dato interesante, la primera supercomputadora del mundo (CDC 6600) tambin tena un solo directorio para todos los archivos, incluso cuando era utilizada por muchos usuarios a la vez. Esta decisin sin duda se hizo para mantener simple el diseo del software

Sistemas de Directorios Jerrquicos Tener un solo nivel es adecuado para aplicaciones


dedicadas simples (e incluso se utilizaba en las primeras computadoras personales), pero para los usuarios modernos con miles de archivos, sera imposible encontrar algo si todos los archivos estuvieran en un solo directorio

Nombres de Rutas
Cuando el sistema de archivos est organizado como un rbol de directorios, se necesita cierta for- ma de especificar los nombres de los archivos. Por lo general se utilizan dos mtodos distintos. En el primer mtodo, cada archivo recibe un nombre de ruta absoluto que consiste en la ruta desde el directorio raz al archivo. Como ejemplo, la ruta /usr/ast/mailbox significa que el directorio raz contiene un subdirectorio llamado usr, que a su vez contiene un subdirectorio ast, el cual contiene el archivo mailbox

Nombres de Rutas
El otro tipo de nombre es el nombre de ruta relativa. ste se utiliza en conjunto con el concepto del directorio de trabajo (tambin llamado directorio actual). Un usuario puede designar un directorio como el directorio de trabajo actual, en cuyo caso todos los nombres de las rutas que no empiecen en el directorio raz se toman en forma relativa al directorio de trabajo

Nombres de Rutas Cont


La primera ruta instruye al sistema que vaya hacia arriba (al directorio usr) y despus baje al directorio lib para encontrar el archivo dictionary El segundo argumento (punto) nombra el directorio actual. Cuando el comando cp obtiene un nombre de directorio (incluyendo punto) como su ltimo argumento, copia todos los archivos a ese directorio

Operaciones de Directorios
Las llamadas al sistema permitidas para administrar directorios exhiben ms variacin de un sistema a otro que las llamadas al sistema para los archivos. Para dar una impresin de lo que son y cmo funcionan, daremos un ejemplo (tomado de UNIX) Create Delete Opendir Closedir Readdir Rename Link Unlink

Una variante sobre la idea de vincular archivos es el vnculo simblico (liga simblica). En vez de tener dos nombres que apunten a la misma estructura de datos interna que representa un archivo, se puede crear un nombre que apunte a un pequeo archivo que nombre a otro

Implementacin de Sistemas de Archivos

Distribucin del sistema de archivos


El sector 0 del disco se conoce como el MBR (Master Boot Record; Registro maestro de arranque) y se utiliza para arrancar la computadora. El final del MBR contiene la tabla de particiones, la cual proporciona las direcciones de inicio y fin de cada particin Lo primero que hace el programa MBR es localizar la particin activa, leer su primer bloque, conocido como bloque de arranque, y ejecutarlo El primero es el superbloque. Contiene todos los parmetros clave acerca del sistema de archivos y se lee en la memoria cuando se arranca la computadora o se entra en contacto con el sistema de archivos por primera vez

Implementacin de archivos

Asignacin Contigua
El esquema de asignacin ms simple es almacenar cada archivo como una serie contigua de bloques de disco
Aqu se muestran los primeros 40 bloques de disco, empezando con el bloque 0, a la izquierda. Al prin- cipio el disco estaba vaco, despus se escribi un archivo A de cuatro bloques de longitud al dis- co, empezando desde el principio (bloque 0). Posteriormente se escribi un archivo de seis bloques llamado B, empezando justo despus del archivo A

En segundo lugar, el rendimiento de lectura es excelente debido a que el archivo completo se puede leer del disco en una sola operacin. Slo se necesita una bsqueda (para el primer bloque). Despus de eso, no son necesarias ms bsquedas ni retrasos por rotacin, por lo que los datos lle- gan con el ancho de banda completa del disco. Por ende, la asignacin contigua es simple de im- plementar y tiene un alto rendimiento.

En primer lugar es simple de implementar, ya que llevar un registro de la ubicacin de los bloques de un archivo se reduce a recordar dos nmeros: la direccin de disco del primer bloque y el nmero de bloques en el archivo. Dado el nmero del primer bloque, se puede encontrar el nmero de cualquier otro blo- que con una simple suma.

Asignacin de lista enlazada (ligada)


El segundo mtodo para almacenar archivos es mantener cada uno como una lista enlazada de bloques de disco. La primera palabra de cada bloque se utiliza co- mo apuntador al siguiente. El resto del bloque es para los datos

A diferencia de la asignacin contigua, en este mtodo se puede utilizar cada bloque del disco. No se pierde espacio debido a la fragmentacin del disco (excepto por la fragmentacin interna en el ltimo bloque) Por otro lado, aunque la lectura secuencial un archivo es directa, el acceso aleatorio es en extremo lento. Para llegar al bloque n, el sistema operativo tiene que empezar desde el principio y leer los n 1 bloques anteriores, uno a la vez

Si se toma la palabra del apuntador de cada bloque de disco y se coloca en una tabla en memoria

Asignacin de lista enlazada utilizando una tabla en memoria

Dicha tabla en memoria principal se conoce como FAT (File Allocation Table, Tabla de asignacin de archivos) La principal desventaja de este mtodo es que toda la tabla debe estar en memoria todo el tiempo para que funcione

Nodos-i
Ultimo mtodo para llevar un registro de qu bloques pertenecen a cul archivo es asociar con cada archivo una estructura de datos conocida como nodo-i (nodo-ndice).
Dado el nodo-i, entonces es posible encontrar todos los bloques del archivo. La gran ventaja de este esquema, en comparacin con los archivos vinculados que utilizan una tabla en memoria, es que el nodo-i necesita estar en memoria slo cuando est abierto el archivo correspondiente

Implementacin de directorios

Antes de poder leer un archivo, ste debe abrirse. Cuando se abre un archivo, el sistema operativo utiliza el nombre de la ruta suministrado por el usuario para localizar la entrada de directorio Una cuestin muy relacionada es dnde deben almacenarse los atributos. Cada sistema de archivos mantiene atributos de archivo, como el propietario y la hora de creacin de cada archivo, debiendo almacenarse en alguna parte. Una posibilidad obvia es almacenarlos directamente en la entrada de directorio. Muchos sistemas hacen eso

Archivos Compartidos
Cuando hay varios usuarios trabajando en conjunto en un proyecto, a menudo necesitan compartir archivos. Como resultado, con frecuencia es conveniente que aparezca un archivo compartido en forma simultnea en distintos directorios que pertenezcan a distintos usuarios La conexin entre el directorio de B y el archivo compartido se conoce como un vnculo (liga). El sistema de archivos en s es ahora un Grfico ac- clico dirigido (Directed Acyclic Graph, DAG) en vez de un rbol

Problemas
Para empezar, si los directorios en realidad contienen direcciones de disco, entonces habr que realizar una copia de las direcciones de disco en el directorio de B cuando se ligue el archivo Si B o C agregan posteriormente al archivo, los nuevos bloques se listarn slo en el directorio del usuario que agreg los datos. Los cambios no estarn visibles para el otro usuario, con lo cual fracasa el propsito de la comparticin

Solucion
En la primera solucin, los bloques de disco no se listan en los directorios, sino en una pequea estructura de datos asociada con el archivo en s. Entonces, los directorios apuntaran slo a la pequea estructura de datos
En la segunda solucin, B se vincula a uno de los archivos de C haciendo que el sistema cree un archivo, de tipo LINK e introduciendo ese archivo en el directorio de B. El nuevo archivo contiene slo el nombre de la ruta del archivo al cual est vinculado. Cuando B lee del archivo vinculado, el sistema operativo ve que el archivo del que se estn leyendo datos es de tipo LINK, busca el nombre del archivo y lee el archivo. A este esquema se le conoce como vnculo simblico (liga simblica), para contrastarlo con el tradicional vnculo (duro)

Sistemas de archivos estructurados por registro LFS (Log-structured File System, Sistema de archivos
estructurado por registro

A medida que las CPUs se vuelven ms rpidas y las memorias RAM se hacen ms grandes, las cachs de disco tambin se incrementan con rapidez. En consecuencia, ahora es posible satisfacer una fraccin muy considerable de todas las peticiones de lectura directamente del cach del sistema de archivos, sin necesitar accesos al disco

Ejemplos de Sistemas de Archivos

Sistemas de archivos de CD-ROM: Sistema de archivos MS-DOS Sistema de archivos V7 de UNIX