5.1 Concepto
Son los algoritmos y
estructuras lógicas utilizadas para poder acceder a la información que tenemos
en el disco. Cada uno de los sistemas operativos crea estas estructuras y
logaritmos de diferente manera independientemente del hardware.
El desempeño de nuestro
disco duro, la confiabilidad, seguridad, capacidad de expansión y la
compatibilidad, estará en función de estas estructuras lógicas.
Fat
12:
Es el sistema de
archivos de DOS, y es con el que formateamos los disquetes. Fue muy utilizado
en las primeras PCs.
Fat
16:
Este sistema de
archivos tenia muchas limitaciones, por ejemplo si el disco duro era mayor de 2
GB, era imposible particionarlos y no usaba nombre largos en los archivos, solo
8 caracteres.
Fat
32:
Fue utilizado a partir
de 1997, y pudo ser utilizado en Windows 98, pero a medida que el tamaño de los
discos duros se incrementaba, surgieron nuevas limitaciones. Se llamó Fat32,
por que utiliza números de 32 bits para representar a los clusters en lugar de
los 16 en los sistemas anteriores.
5.2 Noción de archivo real y virtual.
Un archivo virtual, es
un archivo de uso temporal que es utilizado por los procesos del sistema
mientras se están ejecutando dichos procesos. Estos archivos se crean durante
la ejecución de un sistema y los utiliza para el almacenamiento de información,
intercambio y organización mientras se ejecuta el sistema , su tamaño es muy
variable y terminan al detener la ejecución del sistema, muchos de ellos son
borrados, por ejemplo, los archivos *.tmp
Archivo Real Es un objeto que contiene programas, datos o
cualquier otro elemento. Un archivo se muestra de manera real, en la
información del espacio que ocupa en un disco duro o sistema de almacenamiento,
en otras palabras su tamaño en bytes.
5.3 Componentes de un sistema de archivos
Lo conforman todas aquellas
rutinas encargadas de administrar todos los aspectos relacionados con el manejo
de Archivos.
En UNIX se define un
File System como un sistema de software dedicado a la creación, destrucción,
organización y lectura, escritura y control de acceso de los archivos,
funcionalmente los componentes de un sistema de archivos son lenguajes de
comandos, interpretador de comandos, manejador del almacenamiento secundario,
sistema de entrada y salida y mecanismos de respaldo y recuperación.
En general, un Sistema
de Archivos está compuesto por: Métodos De Acceso, Administración De Archivos,
Administración De Almacenamiento Secundario, Mecanismos De Integridad.
Métodos De Acceso. Se
ocupan de la manera en que se tendrá acceso a la información almacenada en el
archivo. Ejemplo: Secuencial, Directo, indexado, etc.
Administración De
Archivos. Se ocupa de ofrecer los mecanismos para almacenar, compartir y
asegurar archivos, así como para hacer referencia a ellos.
Administración De
Almacenamiento Secundario. Se ocupa de asignar espacio para los archivos en los
dispositivos de almacenamiento secundario. En la siguiente figura se muestra un
ejemplo de la administración de espacio en un disco duro.
Mecanismos
De Integridad. Se ocupan de garantizar que no se
corrompa la información de un archivo, de tal manera que solo la información
que deba estar en el, se encuentre ahí.
Mecanismos
de Organización Lógica. Contiene las diferentes rutinas y
comandos a través de los cuales el usuario podrá estructurar sus archivos
virtuales.
Directorio
de Identificadores. Convierte los identificadores
simbólicos de los archivos en identificadores internos, los cuales apuntarán a
su descriptor o a una estructura que permite encontrar el archivo.
Sistemas
Teóricos de Archivos. Su objetivo es el de activar y
desactivar a través de las rutinas de abrir y cerrar archivos y verifica el
modo de acceso.
Mecanismos
de Organización Física. Traslada las direcciones lógicas
en direcciones físicas correspondientes a las estructuras de memoria secundaria
y los buffers en memoria principal necesarios para la transferencia de datos.
Mecanismos
de E/S. Por cada petición de acceso al archivo real, este
mecanismo genera la secuencia de operaciones elementales de entrada y salida
que se necesita.
SCHEDULING
E/S.
En este nivel es donde se tiene el número de peticiones pendientes así como de
las que se están realizando y lleva el control y asignación de tiempo de CPU a
las diferentes peticiones de E/S.
5.4 Organización lógica y física
La mayoría de las
computadoras organizan los archivos en jerarquías llamadas carpetas,
directorios o catálogos. (El concepto es el mismo independientemente de la
terminología usada.) Cada carpeta puede contener un número arbitrario de
archivos, y también puede contener otras carpetas. Las otras carpetas pueden
contener todavía más archivos y carpetas, y así sucesivamente, construyéndose
un estructura en árbol en la que una «carpeta raíz» (el nombre varía de una
computadora a otra) puede contener cualquier número de niveles de otras
carpetas y archivos. A las carpetas se les puede dar nombre exactamente igual
que a los archivos (excepto para la carpeta raíz, que a menudo no tiene
nombre). El uso de carpetas hace más fácil organizar los archivos de una manera
lógica.
Es la forma más fácil
de organizar un archivo. Los datos se recogen en el orden en que llegan.Su
objetivo es simplemente acumular una masa de datos y guardarla.
Los registros pueden
tener campos diferentes o similares en un orden distinto. Cada campo debe ser
autodescriptivo, incluyendo tanto un campo de nombre como el valor. La longitud
de cada campo debe indicarse implícitamente con delimitadores, explícitamente
incluidos como un subcampo más.
El acceso a los
registros se hace por búsquedas exhaustiva y son fáciles de actualizar. Si se
quiere encontrar un registro que contiene un campo particular y un valor
determinado, es necesario examinar cada registro de la pila hasta encontrar el
registro deseado. Si se quieren encontrar todos los registros que contienen un
campo particular o que tienen un valor determinado para ese campo, debe
buscarse el archivo entero.
Se aplica cuando los
datos se recogen o almacenan antes de procesarlos o cuando no son fáciles de
organizar. Esta clase de archivo aprovecha bien el espacio cuando los datos
almacenados varían en tamaño y estructura. Fuera de estos usos limitados, este
tipo de archivos no se adapta a la mayoría de las aplicaciones.
Archivos secuenciales
Es la forma más común
de estructura de archivos.
Se emplea un formato
fijo para los registros, son de la misma longitud y constan del mismo número de
campos de tamaño fijo con un orden determinado.
Se necesita almacenar
los valores de cada campo; el nombre del campo y la longitud de cada uno son
atributos de la estructura del archivo. Cada registro tiene un campo clave que
lo identifica (generalmente es el primero de cada registro). Los registros se
almacenan en secuencia por la clave.
Se utilizan normalmente
en aplicaciones de procesos por lotes, ya que es la única organización de
archivos que se puede guardar tanto en cintas como en discos.
Para las aplicaciones
interactivas que incluyen peticiones o actualizaciones de registros
individuales, los archivos secuenciales no son óptimos. El acceso requiere una
búsqueda secuencial de correspondencias con la clave. Si el archivo entero o
gran parte de él pueden traerse a la memoria principal de una sola vez, se
podrán aplicar técnicas de búsquedas más eficientes. Al acceder un registro de
un archivo secuencial grande, se produce un procesamiento extra y un retardo
considerable.
La organización física
del archivo en una cinta o disco se corresponde exactamente con la organización
lógica del archivo, por lo tanto el procedimiento habitual es ubicar los nuevos
registros en un archivo de pila separado, es llamado archivo de registro o
archivo de transacciones .
Una alternativa es
organizar físicamente el archivo secuencial como una lista enlazada, en cada
bloque físico se almacena uno o más registros y cada bloque del disco contiene
un puntero al bloque siguiente. La inserción de un nuevo registro implica la
manipulación de puntero, pero no requiere que el nuevo registro ocupe una
posición particular del bloque físico.
Organización Física.
Los datos son arreglados
por su adyacencia física, es decir, de acuerdo con el dispositivo de
almacenamiento secundario. Los registros son de tamaño fijo o de tamaño
variable y pueden organizarse de varias formas para constituir archivos
físicos.
Cinta magnética.
En este dispositivo el
archivo físico está formado por un conjunto de registros físicos, y los bloques
están organizados en forma consecutiva, ya que se asigna en igual forma.
Además tales registros
puede contener etiquetas que permitan un mayor control sobre los datos
almacenados, y son las siguientes:
- Etiqueta de volumen.-
Contiene información que permite identificar la cinta, el nombre del
propietario y cualquier información general requerida.
- Etiqueta de archivo.-
Se utilizan por pares para indicar el inicio y fin del archivo, contiene
información acerca del nombre del archivo, fecha de creación.
- Etiqueta de usuario.-
Sirven para guardar información adicional de importancia para el usuario; no
son procesados por el sistema operativo.
Disco magnético.
El archivo
físico en un disco es una colección de registros físicos de igual tamaño, los
cuales pueden estar organizados en forma consecutiva, ligada o con una tabla de
mapeo.
En la
organización contigua, el archivo utiliza registros físicos contiguos,
siguiendo la secuencia normal de direcciones.
La organización
encadenada consiste un conjunto de bloques, cada uno de los cuales tiene un
campo destinado para indicar la dirección del siguiente registro, o sea, para
lo que se ha llamado enlace o liga.
Otra forma de
organización es la tabla de mapeo que consiste en una tabla de apuntadores a
los registros físicos que forman el archivo.
La organización
física de un archivo en el almacenamiento secundario depende de la estrategia
de agrupación y de la estrategia de asignación de archivos.
Para elegir una
organización de archivos se deben tener en cuenta ciertos criterios:
Si un archivo va
a procesar solamente por lotes, accediendo cada vez a todos los registros,
entonces el acceso rápido para la recuperación de un único registro es una
preocupación mínima. Un archivo almacenado en CD-ROM nunca será actualizado,
por lo que la facilidad de actualización no se considera. Para la economía de
almacenamiento , debería existir una mínima redundancia de los datos, ésta
redundancia es el medio fundamental para incrementar la velocidad de acceso a
los datos.
5.5 Mecanismos de acceso a los archivos
Existen varios mecanismos para acceder los archivos:
Directorios, descriptores de archivos, mecanismos de control de acceso y
procedimientos para abrir y cerrar archivos.
Descriptores de archivos.
El descriptor de archivos o bloque de control de
archivos es un bloque de control que contiene información que el sistema
necesita para administrar un archivo.
Es una estructura muy dependiente del sistema.
Puede incluir la siguiente información:
·
Nombre simbólico del archivo.
·
Localización del archivo en el
almacenamiento secundario.
·
Organización del archivo (método de
organización y acceso).
·
Tipo de dispositivo.
·
Datos de control de acceso.
·
Tipo (archivo de datos, programa objeto,
programa fuente, etc.).
·
Disposición (permanente contra
temporal).
·
Fecha y tiempo de creación.
·
Fecha de destrucción.
·
Fecha de la última modificación.
·
Suma de las actividades de acceso
(número de lecturas, por ejemplo).
Los descriptores de archivos suelen mantenerse en el
almacenamiento secundario; se pasan al almacenamiento primario al abrir el
archivo.
El descriptor de archivos es controlado por el
sistema de archivos ; el usuario puede no hacer referencia directa a él.
A cada uno de los archivos se le asigna un
descriptor el cual contendrá toda la información que necesitará el sistema de
archivos para ejecutar con él los comandos que se le soliciten. El descriptor
se mantendrá en memoria principal desde que el archivo es abierto hasta que sea
cerrado, y debe tener al menos la siguiente información, identificación del
archivo, lugar de almacenamiento, información del modo de acceso.
Identificación del archivo. Consiste de dos partes
que es el nombre simbólico que es el que le da el usuario y un identificador
interno que es asignado por el sistema operativo (número). Lugar de
almacenamiento así como el tamaño del archivo. Modo de acceso. Se debe indicar
en forma explícita quien puede accesar el archivo y conque derecho.
Mecanismo
de control de acceso.
Control de un sistema de información
especializado en detectar los intectos de acceso, permitiendo el paso de las
entidades autorizadas, y denegando el paso a todas las demás. Involucra medios
técnicos y procedimientos operativos.
Mecanismo que en función de la
identificación ya autenticada permite acceder a datos o recursos.
Los Directorios son utilizados por el
sistema operativo para llevar un registro de los archivos que incluye el
nombre, los atributos y las direcciones en disco donde se almacenan los datos
del archivo referenciado.
Open (abrir): antes de utilizar un archivo,
un proceso debe abrirlo. La finalidad es permitir que el sistema traslade los
atributos y la lista de direcciones en disco a la memoria principal para un
rápido acceso en llamadas posteriores.
Close (cerrar): cuando concluyen los
accesos, los atributos y direcciones del disco ya no son necesarios, por lo que
el archivo debe cerrarse y liberar la tabla de espacio interno.
5.6 Manejo de espacio en memoria secundaria
A diferencia de la
Memoria Principal la Memoria Secundaria, auxiliar, masiva, externa no es tan
veloz pero tiene gran capacidad para almacenar información en dispositivos tales
como discos, cintas magnéticas, discos ópticos. Frecuentemente los datos y
programas se graban en la Memoria Secundaria, de esta forma, cuando se ejecuta
varias veces un programa o se utilicen repetidamente unos datos, no es
necesario darlos de nuevo a través del dispositivo de entrada.
En la Memoria Secundaria un archivo consta de un
conjunto de bloques (correspondiente a la cantidad de información que se
transfiere físicamente en cada operación de acceso (lectura o escritura).
El Sistema Operativo o Sistema de Gestión de
Archivos es el encargado de la asignación de bloques a archivos, de lo que
surgen dos cuestiones, en primer lugar, debe asignarle el espacio de Memoria
Secundaria a los archivos y, en segundo lugar, es necesario guardar constancia
del espacio disponible para asignar.
El sistema de archivos se ocupa primordialmente de
administrar el espacio de almacenamiento secundario, sobre todo el espacio en
disco. El manejo del espacio libre en disco se lleva a cabo de la siguiente
manera:
·Vector de bits
· Lista ligada (lista
libre)
· Por conteo
(agrupación)
Vector de bits. El
espacio libre en disco es frecuentemente implementado como un mapa de bits,
donde cada block es representado por un bit y si el bloc es libre el bit es
cero de lo contrario está asignado.11000111
Lista ligada. Una lista
ligada de todos los blocks libres. Otra implantación se consigue guardando la
dirección del primer block libre y el número de los blocks libres contiguos que
le siguen. Cada entrada de la lista de espacio libre consiste de una dirección
de disco y un contador (por conteo).En la Memoria Secundaria un archivo consta
de un conjunto de bloques (correspondiente a la cantidad de información que se
transfiere físicamente en cada operación de acceso (lectura o escritura).
El Sistema Operativo o
Sistema de Gestión de Archivos es el encargado de la asignación de bloques a
archivos, de lo que surgen dos cuestiones, en primer lugar, debe asignarle el
espacio de Memoria Secundaria a los archivos y, en segundo lugar, es necesario
guardar constancia del espacio disponible para asignar.
El sistema de archivos
se ocupa primordialmente de administrar el espacio de almacenamiento
secundario, sobre todo el espacio en disco. El manejo del espacio libre en
disco se lleva a cabo de la siguiente manera:
· Vector de bits
· Lista ligada (lista libre)
· Por conteo (agrupación)
Vector de bits. El espacio libre en disco es frecuentemente implementado como un mapa de bits, donde cada block es representado por un bit y si el bloc es libre el bit es cero de lo contrario está asignado.11000111
Lista ligada. Una lista ligada de todos los blocks libres. Otra implantación se consigue guardando la dirección del primer block libre y el número de los blocks libres contiguos que le siguen. Cada entrada de la lista de espacio libre consiste de una dirección de disco y un contador (por conteo).
Por agrupación.
Se almacena la dirección en n blocks libres en el primer block libre y el
último contiene la dirección de otro block que contiene la dirección de otros
blocks libres.
Para manejar los
espacios en disco existen los siguientes métodos:
- Contiguos
- Ligados
-Indexados
? Contiguos.
Esta asignación requiere que cada archivo ocupe un conjunto de direcciones
contiguas en el disco, su asignación es definida por la dirección del primer
bloc y la longitud del archivo.
Cuando se crea
un archivo se le asigna un único conjunto contiguo de bloques, esta es un
estrategia de asignación previa que emplea secciones de tamaño variable. La
tabla de asignación de archivos necesita solo una entrada por cada archivo y
que muestre el bloque de comienzo y la longitud del archivo. La asignación
contigua es la mejor para un archivo secuencial.
La asignación
contigua presenta algunos problemas, como la fragmentación externa. Lo que hace
difícil encontrar bloques contiguos de espacio de tamaño suficiente., lo que
lleva a ejecutar un algoritmo de compactación para libera el espacio adicional
en el disco.
? Asignación
ligada o encadenada. Cada archivo es una lista ligada de blocks y el directorio
contiene un apuntador al primer bloc y al último.
La asignación se
hace con bloques individuales, cada bloque contendrá un puntero al siguiente
bloque de la cadena. La tabla de asignación de archivos necesita una sola
entrada por cada archivo que muestre el bloque de comienzo y la longitud del
mismo, cualquier bloque puede añadirse a la cadena. No hay que preocuparse por
la fragmentación externa porque solo se necesita un bloque cada vez.
Una consecuencia
del encadenamiento es que no hay cabida para el principio de cercanía, si es
necesario traer varios bloques de un archivo al mismo tiempo, se necesita una
serie de accesos a partes diferentes del disco por lo que se debe ejecutar un
algoritmo de compactación para liberar el espacio adicional en el disco.
? Asignación
Indexada. Cada archivo tiene su propio bloc de índice el cual es un arreglo de
direcciones de bloc.
En esta
asignación la tabla de asignación de archivos contiene un índice separado de un
nivel para cada archivo: el índice posee una entrada para cada sección asignada
al archivo. Normalmente, los índices no están almacenados físicamente como
parte de la tabla de asignación de archivos. Mas exactamente el índice de
archivo se guardara en un bloque aparte y la entrada del archivo en la entrada
de asignación apuntara a dicho bloque.
La asignación
puede hacerse por bloques de tamaño fijo, O en secciones de tamaño variable. La
asignación por bloques elimina la fragmentación externa, mientras que la
asignación por secciones de tamaño variable mejora la cercanía. En cualquier
caso, los archivos pueden concentrarse en zonas cercanas de cuando en cuando.
La concentración reduce el tamaño del índice en el caso de secciones de tamaño
variable, pero no en el caso de asignación por bloques.
La asignación
indexada soporta tanto el acceso secuencial como el acceso directo a los archivos
y por ello se ha convertido en la forma más popular de asignación de archivos.
Directorios
El directorio contiene un conjunto de datos por cada
archivo referenciado.
Una posibilidad es que el directorio contenga por
cada archivo referenciado:
·
El nombre.
·
Sus atributos.
·
Las direcciones en disco donde se
almacenan los datos.
Otra posibilidad es que cada entrada del directorio
contenga:
·
El nombre del archivo.
·
Un apuntador a otra estructura de datos
donde se encuentran los atributos y las, direcciones en disco.
Al abrir un archivo el S. O.:
·
Busca en su directorio el nombre del
archivo.
·
Extrae los atributos y direcciones en
disco.
·
Graba esta información en una tabla de
memoria real.
·
Todas las referencias subsecuentes al
archivo utilizarán la información de la memoria principal.
El número y organización de directorios varía de
sistema en sistema:
Ø Directorio
único: el sistema tiene un solo directorio con todos los archivos de todos los
usuarios
Ø Un
directorio por usuario: el sistema habilita un solo directorio por cada usuario
(ver Figura 5.7.4).
Ø Un
árbol de directorios por usuario: el sistema permite que cada usuario tenga
tantos directorios como necesite, respetando una jerarquía general
5.8 Mecanismo de recuperación en caso de falla.
Recuperación
Los archivos y
directorios se mantienen tanto en memoria principal como en disco, y debe
tener. Se cuidado para que los fallos del sistema no provoquen una pérdida de
datos o una incoherencia en los mismos.
Comprobación
de coherencia.
Como hemos explicado en
la Sección 11.3, parte de la información de directorios se almacena en la
memoria principal (o en caché) para acelerar el acceso. La información de
directorios en11a memoria principal está, generalmente, más actualizada que la
correspondiente información en el disco, porque la información de directorios
almacenada en caché no se escribe necesariamente en el disco nada más
producirse la actualización.
Considere, entonces, el
posible ejemplo de un fallo de la computadora. El contenido de la caché y de
los búferes, así como de las operaciones de E/S que se estuvieran realizando en
ese momento, pueden perderse, y con él se perderán los cambios realizados en
los directorios correspondientes a los archivos abiertos. Dicho suceso puede
dejar el sistema de archivos en un estado incoherente. El estado real de
algunos archivos no será el que se describe en la estructura de directorios.
Con frecuencia, suele
ejecutarse un programa especial durante el reinicio para comprobar las posibles
incoherencias del disco y corregidas.
El comprobador de
coherencia (un programa del sistema tal como fsck en UNIX o chkdsk en MS-DOS),
compara los datos de la estructura de directorios con los bloques de datos del
disco y trata de corregir todas las incoherencias que detecte. Los algoritmos
de asignación y de gestión del espacio libre dictan los tipos de problemas que
el comprobador puede tratar de detectar y dictan también el grado de éxito que
el comprobador puede tener en esta tarea. Por ejemplo, si se utiliza un sistema
de asignación enlazada y existe un enlace entre cada bloque y el siguiente,
puede reconstruirse el archivo completo a partir de los bloques de datos y
volver a crear la estructura de directorios. Por el contrario, la pérdida de
una entrada de directorio en un sistema de asignación indexada puede ser
desastrosa, porque los bloques de datos no tienen ningún conocimiento acerca de
los demás bloques de datos del archivo. Por esta razón, UNIX almacena en caché
las entradas de directorio para las lecturas, pero todas las escrituras de
datos que provoquen algún cambio en la asignación de espacio o en algún otro
tipo de metadato se realizan síncronamente, antes de escribir los
correspondientes bloques de datos. Por supuesto, también pueden aparecer
problemas si se interrumpe una escritura síncrona debido a un fallo
catastrófico
La pérdida de la información es uno de los factores
que se le debe de dar mayor importancia, por la sencilla razón de que al perder
información se puede perder lo que no nos podemos imaginar en cuanto a la misma
y ocasionar perdidas hasta hablar de una gran cantidad de dinero. Para
solucionar este o estos problemas todo sistema operativo cuenta con al menos
una herramienta de software que nos permite recuperar información perdida hasta
cierta medida, esto obedece de acuerdo al daño causado o los daños. Si el
sistema no cuenta con la herramienta necesaria, deberá adquirirse el software
apropiado de algún fabricante especializado en el ramo, por ejemplo Norton.
Es necesario proteger la información alojada en el
sistema de archivos, efectuando los resguardos correspondientes.
De esta manera se evitan las consecuencias
generalmente catastróficas de la pérdida de los sistemas de archivos.
Las pérdidas se pueden deber a problemas de
hardware, software, hechos externos, etc.
Manejo de un bloque defectuoso:
Se utilizan soluciones por hardware y por software.
La solución en hardware:
·
Consiste en dedicar un sector del disco
a la lista de bloques defectuosos.
·
Al inicializar el controlador por
primera vez:
·
Lee la “lista de bloques defectuosos”.
·
Elige un bloque (o pista) de reserva
para reemplazar los defectuosos.
·
Registra la asociación en la lista de
bloques defectuosos.
·
En lo sucesivo, las solicitudes del
bloque defectuoso utilizarán el de repuesto.
La solución en software:
·
Requiere que el usuario o el sistema de
archivos construyan un archivo con todos los bloques defectuosos.
·
Se los elimina de la “lista de bloques
libres”.
·
Se crea un “archivo de bloques
defectuosos”:
·
Está constituido por los bloques
defectuosos.
·
No debe ser leído ni escrito.
·
No se debe intentar obtener copias de
respaldo de este archivo.
.
No hay comentarios:
Publicar un comentario