El documento describe los sistemas de archivos y sus componentes fundamentales. Explica que los archivos permiten almacenar información de forma persistente para que pueda ser accedida por múltiples procesos. Describe los requisitos básicos de los sistemas de archivos como almacenar grandes cantidades de datos, permitir el acceso concurrente y que la información persista aunque los procesos terminen. También cubre temas como la nomenclatura, estructura, tipos, atributos y operaciones básicas de los archivos.
2. INTRODUCCIÓN
Todas las aplicaciones de una computadora requieren
almacenar y recuperar información. Mientras que un
proceso está en ejecución, puede almacenar una cantidad
limitada de información dentro de su propio espacio de
direcciones, que restringen su tamaño.
Un segundo problema es que la información se pierde
cuando se termina un proceso.
Un tercer problema es que la información sea accesible
para varios procesos a la vez.
3. INTRODUCCIÓN
En consecuencia tenemos tres requerimientos esenciales para el
almacenamiento a largo plazo:
Debe ser posible almacenar una cantidad grande de información.
La información debe sobrevivir al proceso que termine.
Múltiples procesos deben o pueden acceder a la información
concurrentemente.
Durante muchos años se han utilizado discos magnéticos para
almacenamiento a largo plazo, también cintas y discos ópticos, pero
con menor rendimiento.
Un disco es una secuencia lineal de bloques de tamaño fijo que
permite:
Leer el bloque k
4. INTRODUCCIÓN
Pero solo con esta información no
es suficiente porque genera
algunas preguntas:
¿Cómo encontramos la
información?
¿Cómo evitamos que un
usuario lea la información de
otro?
¿Cómo sabemos cuáles
bloques están libres?
Y muchas más.
5. INTRODUCCIÓN
Entonces, el procesador encargado de los
procesos, la memoria física encargada de ofrecer a
los procesos un espacio de direcciones
(virtuales), los archivos se almacenan en bloques en
el disco.
6. INTRODUCCIÓN
Los archivos son unidades lógicas se información creada por los
procesos. Un disco tienen millones de archivos independientes.
Los procesos pueden leer archivos y crear si es necesario. La
información generada en los archivos debe ser persistente sin
importar que se termine un proceso.
El archivo debe desaparecer cuando existe una acción que lo
solicite.
Los archivos son administrados por los sistemas operativos.
La manera en que se
estructuran, denominan, abren, utilizan, protegen, implementan y
administran son tópicos fundamentales en el diseño de sistemas
operativos.
8. Nomenclatura de Archivos
Los archivos son un mecanismo de abstracción.
Proporcionan una manera de almacenar la información para
luego leerla.
Trasparente al usuario de dónde y cómo se almacena la
información.
Cuando un proceso crea un archivo, le proporciona un nombre.
9. Nomenclatura de Archivos
Cuando el proceso termina el archivo sigue existiendo y puede ser
utilizado por otros procesos mediante su nombre.
Las reglas para denominar los archivos varían según el sistema
operativo.
Por ejemplo:
UNIX diferencia letras mayúsculas de minúsculas.
MS-DOS no.
Otros permiten hasta 255 caracteres.
Windows 95 y 98 utilizan el sistema de archivos de MS-
DOS, conocido como FAT-16 heredando muchas de sus
propiedades, como la forma que se construyen los nombres.
Windows 98 introdujo algunas extensiones a FAT-16, consiguiendo
10. Nomenclatura de Archivos
El FAT ya es obsoleto, por lo general tienen
un sistema de archivos nativo (NTFS).
Muchos sistemas operativos aceptan
nombres de archivos en dos partes.
La parte que va después del punto se
conoce como extensión del archivo.
Ejemplo:
paginainicio.html.zip UNIX
12. Nomenclatura de Archivos
En UNIX las extensiones de archivos son sólo convenciones y no son
impuestas por el sistema operativo.
Ejemplo:
Archiv.txt, sirve para recordar que es una archivo de texto.
En Windows las extensiones les asigna un significado, y a penas se
clickea sobre un archivo, este es abierto por una aplicación específica.
Ejemplo:
Archivo.doc, lo abre por ejemplo Microsoft Office.
14. Estructura de Archivos
El primero es una secuencia de bytes que al
sistema operativo no le importa que
contenga el archivo, los programas son los
encargados de reestructurarlo.
Hacer que el sistema operativo considere a
los archivos como secuencia de bytes
provee máxima flexibilidad.
Los programas de usuario pueden colocar
cualquier cosa que quieran en sus archivos y
denominarlos de cualquier manera
conveniente.
El sistema operativo ni ayuda ni estorba.
Todas la versiones de UNIX, MS-DOS y
Windows utilizan esta estructura de byte a
byte.
15. Estructura de Archivos
El segundo es una secuencia de longitud fija, cada una 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 operación de lectura
devuelva un registro y la operación de escritura sobrescriba o
agregue un registro.
El tercer tipo de estructura consiste en un árbol de
registros, donde todos no son necesariamente de la misma
longitud.
Cada uno de ellos tiene una llave en una posición fija dentro del
registro.
El árbol se ordena con base en el campo llave en una posición
fija dentro del registro.
16. Tipo de Archivos
Muchos sistemas operativos soportan varios tipos de
archivos.
UNIX y Windows tienen archivos y directorios regulares.
Los archivos regulares son los que contienen información
del usuario.
Los directorios son sistemas de archivos para mantener la
estructura del sistema de archivos.
17. Tipo de Archivos
Los archivos especiales de caracteres se relacionan con la
entrada y 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.
18. Tipo de Archivos
Los archivos regulares son ASCII o
binarios.
Los archivos ASCII consisten en líneas
de texto.
La ventaja de los archivos ASCII es que
se pueden imprimir como están, y se
pueden editar con cualquier editor de
texto.
Si muchos programas utilizan archivos
ASCII para entrada y salida, es fácil
conectar la salida de un programa con la
entrada de otro.
19. Tipo de Archivos
Tener archivos fuertemente tipificados como éstos
ocasiona problemas cada vez que el usuario hace algo
que los diseñadores del sistema no esperaban. Por
ejemplo, considere un sistema en el que los archivos de
salida de un programa tienen la extensión .dat (archivos
de datos). Si un usuario escribe un programa
formateador que lea un archivo .c (programa de C), lo
transforma (por ejemplo, convirtiéndolo a un esquema de
sangría estándar) y después escribe el archivo
transformado como salida, el archivo de salida será de
tipo .dat . Si el usuario trata de ofrecer esto al compilador
de C para que lo compile, el sistema se rehusará debido
a que tienen la extensión incorrecta. Los intentos de
copiar archivo.dat a archivo.c serán rechazados por el
sistema como inválidos (para proteger al usuario contra
los errores).
20. Acceso a Archivos
Los primeros sistemas operativos proporcionaban un solo tipo de
acceso: acceso secuencial.
Un proceso podía leer todos los bytes o registros en un archivo en
orden, empezando desde el principio y son saltarse.
Se podían rebobinar para leerlos todos nuevamente.
Convenientes para la cinta magnética.
Se empezó a usar discos para almacenar, y se pudieron leer los
bytes o registros de un archivos fuera de orden, accediendo a los
registros por llave en lugar de su posición.
Estos se llaman archivos de acceso aleatorio.
Son esenciales para muchas aplicaciones, como bases de datos.
21. Atributos de Archivos
Todo archivo tiene su nombre y sus datos.
Además asocian otra información con cada
archivo: fecha, hora modificación del archivo y su
tamaño.
Estos elementos se denominan atributos, o
metadatos.
La lista de atributos varia de un sistema a otro.
23. Atributos de Archivos
Los primeros cuatro se relacionan con la protección del archivo
e indican quien puede acceder a el y quien no.
En algunos sistemas se debe acceder una contraseña para
ingresar al archivo.
Las banderas son bits que controlan o habilitan cierta propiedad
específica del archivo.
La bandera de archivo es un bit que lleva el registro si el archivo
se ha respaldado recientemente.
El programa de respaldo lo desactiva y el sistema operativo lo
activa cada vez que se modifica un archivo.
La bandera temporal permite marcar un archivo para la
eliminación automática cuando el proceso que lo creó termina.
24. Atributos de Archivos
Los campos longitud de registro, posición de llave y
longitud de llave sólo están presentes en los archivos
en cuyos registros se pueden realizar búsquedas
mediante el uso de una llave. Ellos proporcionan la
información requerida para buscar las llaves.
Los diversos tiempos llevan la cuenta de cuándo se
creó el archivo, su acceso y su modificación más
recientes. Éstos son útiles para una variedad de
propósitos. Por ejemplo, un archivo de código fuente
que se ha modificado después de la creación del
archivo de código objeto correspondiente necesita
volver a compilarse. Estos campos proporcionan la
información necesaria.
25. Atributo de Archivos
El tamaño actual indica qué tan grande es el
archivo en el presente. Algunos sistemas
operativos de computadoras mainframe antiguas
requieren que se especifique el tamaño máximo
a la hora de crear el archivo, para poder permitir
que el sistema operativo reserve la cantidad
máxima de almacenamiento de antemano. Los
sistemas operativos de estaciones de trabajo y
computadoras personales son lo bastante
inteligentes como para arreglárselas sin esta
característica.
26. Operaciones de Archivos
Los archivos existen para almacenar información y
recuperarse más adelante.
Se utilizan llamadas al sistemas para esta operación:
Create: el archivo se crea sin datos. Anuncia la llegada del
archivo y establece alguno de sus atributos.
Delete: se elimina cuando no es necesario. Liberar espacio
en disco. Siempre hay una llamada al sistema para este
propósito.
Open: antes de usarlo, un proceso debe abrirlo. Lleva los
atributos y la lista de direcciones del disco a la memoria
principal, para tener acceso a llamados posteriores.
27. Operaciones de Archivos
Close: cuando terminan todos los accesos se
hace la llamada para liberar espacio en la
memoria principal.
Read: los datos se leen del archivo. El llamador
debe especificar cuántos datos se necesitan y
proporcionar un buffer para colocarlos.
Write: los datos se escriben en el archivo otra
vez., por o general en la posición actual. Si la
posición actual está al final, el tamaño aumenta y
si lo hace al principio o mitad se sobrescriben y
se pierde la información inicial.
28. Operaciones de Archivos
Append: llamada restringida de write para escribir
solo al final del archivo.
Seek: para archivos de acceso aleatorio se debe
especificar de donde se van a tomar los datos.
Get attributes: a menudo, los procesos deben leer los
atributos de los archivos para realizar sus procesos.
Set attributes: algunos atributos puede establecerlos
el usuario y se pueden modificar después de creado
el archivo.
Rename: con frecuencia ocurre que un usuario
quiera cambiar el nombre del archivo.
29. Actividad
1. Responder:
Los sistemas que soportan archivos secuenciales
siempre tienen una operación para rebobinar los
archivos. ¿Los sistemas que soportan archivos de
acceso aleatorio la necesitan también?
Algunos sistemas operativos proporcionan una llamada
al sistema rename para dar a un archivo un nuevo
nombre. ¿Hay acaso alguna diferencia entre utilizar
esta llamada para cambiar el nombre de un archivo y
sólo copiar el archivo a uno nuevo con el nuevo
nombre, eliminando después el archivo anterior?
30. Actividad
2. Preparar exposición en grupos de 4 personas uno
de los siguientes temas:
• Directorios.
• Implementación de sistemas de archivos
• Administración y optimización de sistemas de
archivos.
• Ejemplos de sistemas de archivos.
• Tipos de almacenamiento en disco:
FAT, NTFS, NFS, HPS, REISER, EXT3, EXT4.