Está en la página 1de 31

SISTEMAS

OPERATIVOS
MODERNOS -
CLASE 10
INDICE
Capitulo 4
4.1. Archivos
4.2 Directorios
4.3 Implementación de Sistemas de Archivos
4.4 Administracion y Optimizacion de Sistemas
de Archivos
4.1. ARCHIVOS
 Introduccion.
 Todas las aplicaciones de computadora requieren almacenar y
recuperar información. La capacidad de almacenamiento está
restringida por el tamaño del espacio de direcciones virtuales.
 Dentro del espacio de direcciones de un proceso, cuando el proceso
termina, la información se pierde.
 Frecuentemente es necesario que varios procesos accedan a (partes
de) la información al mismo tiempo.
4.1. ARCHIVOS
 Introduccion.
 3 requerimientos esenciales para el almacenamiento a largo
plazo:
 1. Debe ser posible almacenar una cantidad muy grande de
información.
 2. La información debe sobrevivir a la terminación del proceso que
la utilice.
 3. Múltiples procesos deben ser capaces de acceder a la
información concurrentemente.
 Una nueva abstracción: el archivo
 Las abstracciones de los procesos (e hilos), espacios de
direcciones y archivos son los conceptos más importantes en
4.1. ARCHIVOS
 Los archivos son unidades lógicas de información creada por
los procesos. En general, un disco contiene miles o incluso
millones de archivos independientes.
 La información que se almacena en los archivos debe ser
persistente, es decir, no debe ser afectada por la creación y
terminación de los procesos.
 Los archivos son administrados por el sistema operativo por
medio del sistema de archivos.
4.1. ARCHIVOS
 4.1.1 Nomenclatura de archivos
 Los archivos son un mecanismo de abstracción. Proporcionan
una manera de almacenar información en el disco y leerla
después. Esto se debe hacer de tal forma que se proteja al
usuario de los detalles acerca de cómo y dónde se almacena la
información y cómo funcionan los discos en realidad.
 Cuando un proceso crea un archivo le proporciona un nombre.
Cuando el proceso termina, el archivo continúa existiendo y
puede ser utilizado por otros procesos mediante su nombre.
 Los nombres poseen reglas
4.1. ARCHIVOS
 4.1.1 Nomenclatura de archivos
 Muchos sistemas operativos aceptan nombres de archivos en
dos partes, separadas por un punto, como en prog.c. La parte
que va después del punto se conoce como la extensión del
archivo y por lo general indica algo acerca de su naturaleza.
4.1. ARCHIVOS
 4.1.2 Estructura de archivos
 Varias formas de estructurar un archivo. Citaremos 3
posibilidades:
1. Secuencia de bytes sin estructura: 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 metodología
2. Secuencia de registros de longitud fija, cada uno con cierta
estructura interna. Se pretende que se lea o sobrescriba un
registro.
3. Árbol de registros, donde no todos son necesariamente de la
misma longitud; cada uno de ellos contiene un campo llave en una
4.1. ARCHIVOS
 4.1.2 Estructura de archivos
4.1. ARCHIVOS
 4.1.3 Tipos de archivos
 Muchos sistemas operativos soportan varios tipos de archivos.
 Los archivos regulares son los que contienen información del
usuario.
 Los archivos especiales de caracteres se relacionan con la
entrada/salida y se utilizan para modelar dispositivos de E/S en
serie.
 Los archivos especiales de bloques se utilizan para modelar
discos.

 Los archivos regulares son archivos ASCII o binarios. Los


archivos ASCII consisten en líneas de texto.
4.1. ARCHIVOS
 4.1.3 Tipos de archivos
 Aunque técnicamente el archivo

es sólo una secuencia de bytes, el


sistema operativo sólo ejecutará
un archivo si tiene el formato
apropiado.
4.1. ARCHIVOS
 4.1.4 Acceso a archivos
 Acceso secuencial: En estos sistemas, un proceso podía leer
todos los bytes o registros en un archivo en orden, empezando
desde el principio, pero no podía saltar algunos y leerlos fuera
de orden. Sin embargo, los archivos secuenciales podían
rebobinarse para poder leerlos todas las veces que fuera
necesario. Los archivos secuenciales eran convenientes cuando
el medio de almacenamiento era cinta magnética en vez de
disco.
4.1. ARCHIVOS
 4.1.4 Acceso a archivos
 Acceso aleatorio: Cuando se empezó a usar discos para
almacenar archivos, se hizo posible leer los bytes o registros de
un archivo fuera de orden, pudiendo acceder a los registros por
llave en vez de posición.
4.1. ARCHIVOS
 4.1.5 Atributos

de archivos
4.1. ARCHIVOS
 4.1.6 Operaciones de archivos
 Las llamadas al sistema más comunes relacionadas con los
archivos.
 Create. El archivo se crea sin datos.
 Delete. Eliminar para liberar espacio en Disco.
 Open. Carga en memoria los atributos y la lista de direcciones.
 Close. Archivo se debe cerrar para liberar espacio en tabla.
 Read. Los datos se leen del archivo.
 Write. Escribir en archivo.
 Append. Solo puede agregar datos al archivo.
 Seek. Reposiciona el apuntador del archivo en una posicion.
4.2. DIRECTORIOS
 4.2.1 Sistemas de directorios de un solo nivel
 Directorio Raíz, directorio que contiene todos los archivos
 Las ventajas de este esquema son su simpleza y la habilidad de localizar
archivos con rapidez; después de todo, sólo hay un lugar en dónde
buscar. A menudo se utiliza en dispositivos incrustados simples como
teléfonos, cámaras digitales y algunos reproductores de música
portátiles
4.2. DIRECTORIOS
 4.2.2 Sistemas de directorios jerárquicos
 Cada uno de los directorios A, B y C contenidos en el directorio raíz
pertenecen a un usuario distinto, dos de los cuales han creado
subdirectorios para proyectos en los que están trabajando
 Poderosa herramienta de estructuración para que los usuarios organicen
su trabajo
4.2. DIRECTORIOS
 4.2.3 Nombres de rutas
 Se necesita cierta forma de especificar los nombres de los archivos
 Nombre de ruta absoluto, ruta desde el directorio raíz hasta el archivo
 Nombre de ruta relativa. Éste se utiliza en conjunto con el concepto
del directorio de trabajo (también 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 raíz se toman en forma relativa al directorio de trabajo
4.2. DIRECTORIOS
 4.2.4 Operaciones de directorios
 Las llamadas al sistema más comunes relacionadas con los
directorios.
 Create. El crea un directorio.
 Delete. Eliminar un directorio.
 Opendir. Antes de poder leer un directorio se debe abrir, en
forma análoga al proceso de abrir y leer un archivo.
 Closedir. Se debe cerrar para liberar espacio en la tabla
interna.
 Readdir. Devuelve la siguiente entrada en un directorio
abierto.
4.2. DIRECTORIOS
 4.2.4 Operaciones de directorios
 Vinculo duro.
 Vinculo simbólico.

 Definir y dar un ejemplo de cada tipo de vinculo!


4.3 IMPLEMENTACIÓN DE
SISTEMAS DE ARCHIVOS
 Forma en que se almacenan los archivos y directorios, cómo se
administra el espacio en el disco y cómo hacer que todo
funcione con eficiencia y confiabilidad
 4.3.1 Distribución del sistema de archivos
 Los sistemas de archivos se almacenan en discos. La mayoría
de los discos se pueden dividir en una o más particiones, con
sistemas de archivos independientes en cada partición.
 MBR: sector 0 del disco, Master Boot Record. Utilizado para el
arranque
Contiene la tabla de particiones, una de las particiones es la
activa.
 Al arrancar, BIOS lee y ejecuta MBR, el cual localiza la particion
activa; lee su primer bloque (bloque de arranque). Ejecuta este
4.3 IMPLEMENTACIÓN DE
SISTEMAS DE ARCHIVOS
 El sistema de archivos contendrá algunos de los elementos que
se muestran en la figura

 Superbloque: Contiene todos los parámetros 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.
4.3 IMPLEMENTACIÓN DE
SISTEMAS DE ARCHIVOS
 Bloques Libres: información acerca de los bloques libres en el
sistema de archivos, por ejemplo en la forma de un mapa de bits
o una lista de apuntadores
 Nodos-i: un arreglo de estructuras de datos, uno por archivo,
que indica todo acerca del archivo
 Directorio Raiz: contiene la parte superior del árbol del sistema
de archivos
4.3 IMPLEMENTACIÓN DE
SISTEMAS DE ARCHIVOS
 4.3.2 Implementación de archivos
 La cuestión más importante al implementar el almacenamiento
de archivos sea mantener un registro acerca de qué bloques de
disco van con cuál archivo. Veremos formas de hacer esto:
 Asignación contigua: almacenar cada archivo como una serie
contigua de bloques de disco. Un disco con bloques de 2 KB, se
le asignarían 25 bloques consecutivos
4.3 IMPLEMENTACIÓN DE
SISTEMAS DE ARCHIVOS
 4.3.2 Implementación de archivos
 Asignación de lista enlazada (ligada)
 Mantener cada uno como una lista enlazada de bloques de
disco. La primera palabra de cada bloque se utiliza como
apuntador al siguiente. El resto del bloque es para los datos.
4.3 IMPLEMENTACIÓN DE
SISTEMAS DE ARCHIVOS
 4.3.2 Implementación de archivos
 Asignación de lista enlazada utilizando una tabla en memoria
 Tomamos la palabra del apuntador de cada bloque de disco y la
colocamos en una tabla en memoria
 Tabla en memoria principal se conoce como FAT (File Allocation Table,
Tabla de asignación de archivos)
4.3 IMPLEMENTACIÓN DE
SISTEMAS DE ARCHIVOS
 4.3.2 Implementación de archivos
 Nodos-i
 Asociar con cada archivo una estructura de datos conocida como nodo-i
(nodo-índice), la cual lista los atributos y las direcciones de disco de los
bloques del archivo.
 Dado el nodo-i, entonces es posible encontrar todos los bloques del
archivo.
 El esquema del nodo-i requiere un arreglo
en memoria cuyo tamaño sea proporcional
al número máximo de archivos que pueden
estar abiertos a la vez.
4.3 IMPLEMENTACIÓN DE
SISTEMAS DE ARCHIVOS
 4.3.3 Implementación de directorios
 La función principal del sistema de directorios es asociar el nombre ASCII
del archivo a la información necesaria para localizar los datos.
 Dónde deben almacenarse los atributos?. Cada sistema de archivos
mantiene atributos de archivo, como el propietario y la hora de creación de
cada archivo, debiendo almacenarse en alguna parte.
 a) En la entrada de directorio:
Directorio consiste en una lista de entradas
de tamaño fijo, una por archivo, que contienen
un nombre de archivo (de longitud fija), una
estructura de los atributos del archivo y
una o más direcciones de disco (hasta cierto
máximo) que indique en dónde se encuentran
los bloques de disco.
4.3 IMPLEMENTACIÓN DE
SISTEMAS DE ARCHIVOS
 4.3.3 Implementación de directorios
 b) Referencia a Nodo-i:
 La entrada de directorio puede ser más corta: sólo un nombre de archivo y
un número de nodo-i.
 Almacenar los atributos en los nodos-i.
4.3 IMPLEMENTACIÓN DE
SISTEMAS DE ARCHIVOS
 4.3.4 Archivos compartidos
 Es conveniente que aparezca un archivo compartido en forma simultánea
en distintos directorios que pertenezcan a distintos usuarios
 Archivos de C ahora presentes en uno de los

directorios de B también.
 La conexión entre el directorio de B y el archivo
compartido se conoce como un vínculo (liga).
 El sistema de archivos en sí es ahora un

Gráfico acíclico dirigido (Directed Acyclic Graph,


DAG ) en vez de un árbol.
4.3 IMPLEMENTACIÓN DE
SISTEMAS DE ARCHIVOS
 4.3.5 Sistemas de archivos estructurados por registro