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