Sistema De Archivos
Archivos
Nomenclatura
Todos los sistemas operativos
actuales permiten cadenas de una
a ocho letras como nombres de
archivos.
Muchos sistemas de archivos
admiten nombres de hasta 255
caracteres.
Win-dows 95 y Windows 98 utilizan
el sistema de archivos de MS-DOS
conocido como FAT-16.
Algunos sistemas de archivos
diferencian las letras mayúsculas
de las minúsculas, mientras que
otros no.
Estructura
Se pueden estructurar en tres posibilidades
Secuencia de bytes
Provee la máxima velocidad
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
Secuencia de registro
La idea para un archivo de secuencia de registro es
La operación de lectura devuelva un registro y la operación de escritura sobrescriba o agregue un registro.
Árbol
No todos son necesarios de la misma longitud
Cada uno contiene un campo llave en una posición fija dentro del registro.
se ordena con base en el campo llave para permitir una búsqueda rápida
Tipos
Archivos regulares
Contiene información del usuario
Los archivos tiene secciones
Encabezado
Tiene un número mágico que identifica
al archivo como ejecutable
Texto y Bits de reubicación
Se carga en memoria y se reubican usando bits
Tabla de ismbolos
Se utiliza para depurar
Archivos ASCII o binarios
Se pueden mostrar e imprimir como están
Se pueden editar con cualquier editor de texto
Fácil conectar la salida de un programa
con la entrasa de otro
Directorios
Mantienen la estructura del sistema de archivos
Archivos especiales de caracteres
Relación la entreda y salida
Modelan dispositivos de E/S en serie
terminales , impresoras y redes
Archivos especiales de bloqueos
Modelar discos
Acceso
secuencial
Se puede leer todos los registros en orden
No se pueden saltar o leer fuera de orden
pero se pueden rebobinar para poder leerlos
las veces que sean necesarias
Discos
Se pueden leer los registros en desorden
Acceder los registros por llaves en
vez de posición
Se leen en cualquier orden de llamada
Aleatorio
Esenciales en los sistemas de
bases de datos
Se puede utilizar dos métodos
Read
Posición en el archivo que se
va a empezar
Seek
Establecer la posición actual
Se utiliza en UNIX Y Windows
Atributos
Nombre y datos
Asocian otra información con cada archivo
Ejemplo
fecha y hora de la ultima modificación
Lista
Protección
Contraseña
Creador
Propietario
protección del archivo e indican
quien puede acceder y quien no
Bandera de solo lectura
Bandera oculto
Bandera del sistema
Bandera de archivo
Bandera ASCII/binario
Bandera de acceso aleatorio
Bandera temporal
Banderas de bloqueo
Son bits o campos cortos que controlan
cierta propiedad especifica
Longitud de registro
Longitud de la llave
Solo están presente en los archivos en
cuyos registros se pueden realizar búsquedas
Operaciones
Create
El archivo se crea sin datos
Anuncia la llegada del archivo
y establecer algunos atributos
Delete
Eliminar para liberar
espacio en el disco
Siempre hay una llamada
al sistema
Open
Permite que el sistema lleve los atributos y
la lista de direcciones de disco de memoria
Close
Los atributos y las direcciones de
disco ya no son necesarias
El archivo se cierra para liberar espacio
en la tabla interna
Read
Los datos se leen del archivo
Los bytes provienen de la posición actual
Write
Los datos se escriben en el archivo
En la posición actual , en el caso que este al final
del archivo el tamaño aumenta
Append
Es una forma restringida de write
Solo puede agregar datos al final del archivo
Los sistemas que proveen un conjunto mínimo
por lo general no tiene append
Seek
Archivos de acceso aleatorio
Se necesita un método para especificar de donde
se van a tomar los datos
Reposicionan el apuntador del archivo en
una posicón especifica
Directorios
Sistemas de directorios de un solo
nivel
Algunas veces se le llama directorio raíz
Un sistema de directorios es tener un
directorio que contenga todos los archivos.
A veces se utiliza en dispositivos incrustados simples
Cámaras digitales
Teléfonos
Reproductores de música
Sistemas de directorios jerárquicos
Tener un solo nivel es adecuado para aplicaciones
dedicadas simples
Para los usuarios modernos con miles archivos , sería
imposible encontrar algo si todos están en un solo directorio
Ejemplo
Por ejemplo, un profesor podría tener una colección de archivos que en conjunto formen un libro que está escribiendo para un curso, una segunda colección de archivos que contienen programas enviados por los estudiantes para otro curso, un tercer grupo de archivos que contenga el código de un sistema de escritura de compiladores avanzado que está construyendo, un cuarto grupo de archivos que contienen proposiciones de becas, así como otros archivos para correo electrónico, minutas de reuniones,artículos que está escribiendo, juegos, etcétera.
Se necesita una jerarquia
La capacidad de los usuarios para crear un número de
arbitrario de subdirectorios provee una poderosa herramienta de estructuración
Nombres de rutas
Cuando esta organizado como un árbol de directorios
cada archivo recibe un nombre de ruta absoluto que consiste en la ruta desde el directorio raíz al archivo.
Ejemplo
/usr/ast/mailbox
El directorio raíz contiene un
subdirectorio llamado usr
Contiene un subdirectorio ast
Contiene el
archivo mailbox
Ruta Relativa
Se utiliza con el concepto del directorio de trabajo
Un usuario puede designar un directorio como
el directorio de trabajo actual
Ejemplo
comando de UNIX
cp /usr/ast/mailbox /usr/ast/mailbox.bak
Comando
cp mailbox mailbox.bak
Operaciones de directorios
Create
Se crea un directorio
Esta vacío
excepto por punto y punto punto, que el sistema
coloca ahí de manera automática
Delete
Se elimina un directorio
Solo un directorio vacío
Opendir
Se pueden leer
Para listar todos los archivos en un directorio
Antes de poder leer se debe abrir en forma análoga
Closedir
Cuando se ha leído un directorio
Se debe cerrar para liberar espacio en la tabla interna
Readdir
Devuelve la siguiente entrada en un directorio abierto
Siempre devuelve una entrada en formato estándar
Rename
Cambiar el nombre de la misma
forma que a los archivos
Link
Vinculación
Permite a un archivo aparecer en más de un directorio
Unlink
Se elimina una entrada de directorio
Si esta presente en un directorio se
quita del sistema de archivos
Si esta presente en varios directorios se
elimina solo el nombre de ruta especifica
Implementación
Distribución del sistema de
archivos
Se almacenan en discos
Se pueden dividir en una o mas particiones
con sistemas de archivos independientes
El sector 0 del disco se conoce como MBR
Al final contiene la tabla de particiones
El BIOS lee y ejecuta el MBR
Localiza la particion activa
Implementación de directorios
Antes de leer un archivo se debe abrir
despues
El sistema operativo utiliza el nombre de la ruta suministrado
La entrada provee la información necesaria
para encontrar los bloques de disco
Para los sistemas que utilizan nodos-i
La entrada de directorio puede ser solo el nombre de archivo
y un número de nodo-i
Archivos compartidos
Compartir archivos a veces introduce problemas
Si los directorios en realidad contienen direcciones de disco
Realizar una copia de direcciones de disco en el directorio
Agregar posteriormente al archivo
Los nuevos bloques se listaran solo en el directorio del usuario
que agrego los datos
Se puede resolver de dos formas
Los bloques de disco no se listan en los directorios
en una pequeña estructura de datos asociada con el archivo en si
Se vincula a uno de los archivos haciendo que el sistema
cree un archivo
Sistemas de archivos estructurados
por registro
A medida que las CPUs se vuelven más rápidas las memorias RAM se hacen mas grandes
Los tipos de cache también se incrementan
En el futuro la mayoría de los accesos al disco serán escrituras
La mayoría de los archivos las escrituras se realizan en trozos muy pequeños
Los diseñadores del LFS decidieron reimplementar el sistema de archivos de UNIX a finde que alcance el ancho de banda
Sistemas de archivos virtuales
Para manejar estos sistemas dispares
Windows identifica a cada uno con una letra de unidad distinta
Cuando un proceso abre un archivo la letra de
la unidad esta presente en forma explicita
La presencia de múltiples sistemas
de archivos esta muy visible
La mayoría de los sistemas UNIX
han utilizado el concepto VFS
para integrar múltiples sistemas de
archivos en una estructura ordenada
El VFS tiene una interfaz superior para los procesos de usuario y es la mas conocida interfaz de POXIS
El VFS también tiene una interfaz inferior para los sistemas de archivos concretos , etiquetada como interfaz de VFS
Administración y Optimización
Administración del espacio en
disco
Casi todos los sistemas dividen los archivos en bloques de tamaño fijo
Tamaño de bloque
Tener un tamaño de bloque grande significa que cada archivo ocupa un cilindro completo
Los pequeños archivos desperdician una gran cantidad de espacio
El tamaño de archivo promedio era de 2475 bytes.
Registro de bloques
hay dos métodos utilizados ampliamente
Almacenamiento de la lista de
bloques libres en una lista
Un mapa de bits
Cuotas de disco
Proporcionan un mecanismo para
imponer las cuotas de disco
El administrador asigne a cada usuario una cantidad
maxima de archivos y bloques
También que el sistema operativo se asegure de que los usuarios no excedan sus cuotas
Respaldos del sistema de archivos
La mayoría de las personas no creen en hacer respaldos de sus archivos
Hasta que un disco duro deja de funcionar
Para hace run respaldo se puede utilizar dos estrategias
Un vacío físico
Empieza en el bloque 0 del disco
Escribe todos los bloques del disco en la cinta de salida en orden y se detiene cuando acaba de copiar el último.
Un vacío lógico
Empieza en uno o más directorios especificados
Vacía en forma recursiva todos los archivos y directorios que se encuentran ahí que hayan sido modificados desde cierta fecha base dada
Consistencia del sistema de
archivos
Se pueden realizar dos tipos de verificaciones
Archivos
Bloques
Rendimiento del sistema de
archivos
Muchos sistemas de archivo se han diseñado
con varias optimizaciones
Uso del cache
Lectura adelantado de bloque
Reducción de movimiento del brazo del disco
Ejemplos
Sistemas de archivos MS-DOS
Es uno de los primeros sistemas que
se incluyeron con la IBM PC.
Era el sistema principal hasta Windows 98 y Windows ME.
Este sistema y una extensión de él (FAT-32) están teniendo mucho uso en varios sistemas incrustados.
La mayoría de las cámaras digitales lo utilizan, muchos reproductores de MP3 lo utilizan de manera exclusiva. El popular iPod de Apple lo utiliza como el sistema de archivos
predeterminado, aunque los hackers conocedores pueden volver a dar formato al iPod e instalar un sistema de archivos distinto.
Sistema de archivos V7 de UNIX
El sistema de archivos está en la forma de un árbol que empieza en el directorio raíz
Con la adición de vínculos para formar un gráfico acíclico dirigido. Los nombres de archivos tienen hasta 14 caracteres y pueden contener cualquier carácter ASCII
Una entrada de directorio de UNIX contiene una entrada para cada archivo en ese directorio
Cada entrada es en extremo simple
Una entrada de directorio sólo contiene dos campos:
El nombre del archivo
Número del nodo-i para ese archivo
Algunas extensiones mas comunes
son :
Archivo.bak
Archivo.c
Archivo.gif
Archivo.html
Archivo.jpg
En algunos sistemas las extensiones de archivo son sólo convenciones y no son impuestas por los sistemas operativos
Cuando un usuario hace doble clic sobre un nombre de archivo, el programa asignado a su extensión de archivo se inicia con el archivo como parámetro.
Ejemplo
obtenga el registro cuya llave sea pony, sin preocuparnos acerca de su posición exacta en el archivo.
se pueden agregar nuevos registros al
archivo, con el sistema operativo, y no el usuario
Para comprobar la consistencia de los bloques, el programa crea dos tablas, cada una de las cuales contiene un contador para cada bloque, que al principio se establece en 0.
Los contadores en la primera tabla llevan el registro de cuántas veces está presente cada bloque en un archivo
Los contadores en la segunda tabla registran con qué frecuencia está presente cada bloque en la lista de bloques libres