Sistemas de Ficheros

Anuncio
Introducción
Antes de comenzar a hablar de lo que es un Sistema de gestión de archivos sería conveniente aclarar
que es un archivo y cuáles son sus utilidades:
Cuando hablamos de archivos, habitualmente se utilizan cuatro términos: Campo, Registro, Archivo y
Base de datos. Se puede decir que estos términos forman una estructura de datos agrupados y
relacionados de alguna manera en particular donde uno contiene al otro y que nos facilitan la manera de
almacenarlos y recuperarlos.
Un Campo es el elemento de datos básico, como ejemplo: un campo individual contiene un
valor único, como el apellido de un empleado, una fecha o un valor leído por un sensor. Lo más
importante de un campo es su longitud (que puede ser fija o variable) y el tipo de datos que
contenga(ya sea una cadena ASCII o un dígito decimal).
Un Registro es un conjunto de campos relacionados que pueden tratarse como una unidad por
algunos programas de aplicación. Por ejemplo: un registro de nombre “empleado” contendría
campos tales como nombre, DNI, fecha de contratación, etc. Un registro puede ser de longitud
variable en el caso de que el número de campos pueda variar, esto dependerá de su diseño.
Un Archivo es un conjunto de registros similares. Los usuarios y las aplicaciones se refieren a
él por un nombre que es único y que puede crearse y borrarse. Las restricciones al control de acceso
suelen aplicarse a los archivos. Es decir en un sistema compartido, el acceso de los usuarios y los
programas se garantiza o deniega a archivos completos, en otros casos se aplica a los registros e
incluso a los campos.
Una Base de datos es un conjunto de datos relacionados. El aspecto fundamental es que está
diseñada para ser usada por varias aplicaciones diferentes. Puede contener toda la información
relativa a una organización o proyecto.
Un Sistema de gestión de archivos es el software del sistema que proporciona servicios a usuarios y
aplicaciones para el uso de archivos. Normalmente la única forma en que un usuario o aplicación puede
acceder a los archivos es mediante el sistema de gestión de archivos.
Objetivos para un sistema de gestión de archivos.
Cumplir con las necesidades de gestión de datos y con los requerimientos del usuario.
Garantizar que los datos de los archivos sean válidos.
Optimizar el rendimiento en términos de productividad y tiempo de respuesta.
Ofrecer soporte de E/S para los distintos dispositivos de almacenamiento.
Minimizar o eliminar la posibilidad de pérdida o destrucción de datos.
Con respecto al primer punto. Para un sistema interactivo, de propósito general, deben cumplirse los
siguientes requisitos mínimos:
1. Cada usuario debe ser capaz de crear, borrar, y cambiar los archivos.
2. Cada usuario puede tener acceso controlado a los archivos de otros usuarios.
3. Cada usuario puede controlar qué tipos de acceso estarán permitidos a sus archivos.
4. Cada usuario debe poder reestructurar sus archivos de manera adecuada al problema.
5. Cada usuario debe ser capaz de mover datos entre los archivos.
6. Cada usuario debe ser capaz de guardar una copia de reserva y recuperar sus archivos en el
caso de que hayan sufrido algún daño.
7. Cada usuario debe ser capaz de acceder a sus archivos mediante un nombre simbólico.
Estos objetivos y requerimientos deben tenerse en cuenta en todo nuestro estudio de los sistemas de
gestión de archivos.
Arquitectura de los sistemas de archivos
Una manera de hacerse una idea del alcance de la gestión de archivos es observar una representación de
una organización típica del software.
En el nivel más bajo se encuentran los gestores de dispositivos que se comunican directamente con
los dispositivos periféricos o sus controladores o canales. En operaciones con archivos, los dispositivos
típicos controlados son discos y unidades de cinta. Los gestores de dispositivos son considerados
generalmente como parte del sistema operativo.
El siguiente nivel es conocido con el nombre de sistema de archivos básico o nivel de E/S física,
este sistema se encarga de ubicar los bloques de datos en el dispositivo de almacenamiento secundario
y además del almacenamiento intermedio de los mismos en la memoria principal. El sistema de
archivos básico se considera a menudo parte del sistema operativo.
El supervisor básico de E/S es el responsable de la iniciación y terminación de toda la E/S de
archivos. En este nivel se mantienen unas estructuras de control que se encargan de la E/S con los
dispositivos, la planificación y el estado de los archivos. El supervisor básico de E/S es parte del
sistema operativo.
La E/S lógica es la parte del sistema de archivos que permite a usuarios y aplicaciones acceder a los
registros. Así, mientras el sistema de archivos básico trabaja con bloques de datos, el módulo de E/S
lógica lo hace con registros.
Finalmente, el nivel del sistema de archivo más cercano al usuario es, generalmente, el método de
acceso. Los diferentes métodos de acceso reflejan las distintas estructuras de archivos y las formas
diferentes de acceder y procesar los datos.
Funciones de la gestión de archivos
Los usuarios y programas de aplicación interactúan con el sistema de archivos por medio de órdenes de
creación y eliminación de archivos y realizando operaciones sobre los archivos. Antes de realizar
cualquier operación, el sistema de archivos debe identificar y ubicar el archivo en cuestión. Esto
requiere el uso de algún tipo de directorio que describa la ubicación de todos los archivos y sus
atributos. Además, la mayoría de los sistemas compartidos aplican algún control de acceso a los
usuarios. Las operaciones básicas que un usuario o aplicación puede realizar sobre un archivo tienen
lugar en los registros. El usuario o la aplicación contempla al archivo como una estructura que organiza
registros, como una estructura secuencial.
Mientras que los usuarios y aplicaciones se ocupan de los registros, la E/S se lleva a cavo por bloques.
De esta forma, los registros de un archivo deben traducirse a bloques para la salida, y los bloques
traducirse a registros después de la entrada. Debe gestionarse el almacenamiento secundario. Esto
implica la asignación de archivos a los bloques disponibles del almacenamiento secundario y la gestión
del espacio libre, de manera que se conozca qué bloques están disponibles para la creación de archivos
nuevos y el crecimiento de los archivos existentes.
Organización y acceso a archivos
La organización de archivos es la estructuración lógica de los registros determinada por su forma de
acceso.
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.
La mayor parte de las estructuras de organizaciones alternativas de archivos se encuentran dentro de
estas cinco categorías:
Pilas
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.
Archivos secuenciales indexados:
Los registros se organizan en una secuencia basada en un campo clave presentando dos
características, un índice del archivo para soportar los accesos aleatorios y un archivo de
desbordamiento. El índice proporciona una capacidad de búsqueda para llagar rápidamente al registro
deseado y el archivo de desbordamiento es similar al archivo de registros usado en un archivo
secuencial, pero está integrado de forma que los archivos de desbordamiento se ubiquen siguiendo un
puntero desde su registro predecesor.
La estructura más simple tiene como índice un archivo secuencial simple, cada registro del
archivo índice tiene dos campos, un campo clave igual al del archivo principal y un puntero al archivo
principal. Para encontrar un campo especifico se busca en el índice hasta encontrar el valor mayor de la
clave que es iguale o precede al valor deseado de la clave, la búsqueda continua en el archivo principal
a partir de la posición que indique el puntero.
Cada registro del archivo principal tiene un campo adicional que es un puntero al archivo de
desbordamiento. Cuando se inserta un nuevo registro al archivo, también se añade al archivo de
desbordamiento. El registro del archivo principal que precede inmediatamente al nuevo registro según
la secuencia lógica se actualiza con un puntero del registro nuevo en el archivo de desbordamiento, si el
registro inmediatamente anterior está también en el archivo de desbordamiento se actualizará el puntero
en el registro.
Para procesar secuencialmente un archivo completo los registros del archivo principal se
procesarán en secuencia hasta encontrar un puntero al archivo de desbordamiento, el acceso continua
en el archivo de desbordamiento hasta que encuentra un puntero nulo, entonces renueva el acceso
donde se abandonó en el archivo principal.
Archivos indexados:
A los registros se accede solo a través de sus índices. No hay resticción en la ubicación de los
registros, al menos un índice contiene un puntero a cada registro y pueden emplearse registros de
longitud variable.
Se suelen utilizar dos tipos de índices, uno exhaustivo que contiene una entrada para cada
registro del archivo principal y se organiza como un archivo secuencial para facilitar la búsqueda, el
otro índice es parcial que contiene entrada a los registros donde esté el campo de interés.
Con registro de longitud variable, algunos registros no contendrán todos los campos y cuando se
añade un registro al archivo principal, todos los archivos de índices deben actualizarse.
Archivos directos o de dispersión:
Explotan la capacidad de los discos para acceder directamente a cualquier bloque de dirección
conocida.
Se requiere un campo clave en cada registro.
Los archivos directos son muy usados donde se necesita un acceso muy rápido, donde se usan
registros de longitud fija y donde siempre se accede a los registros de una vez.
Organizaciones comunes de archivo
Archivo de pila: Registro de longitud variable. Conjunto variable de campos. Orden
cronológico
Archivo
secuencial:
Registro de longitud fija. Conjunto fijo de campos en orden constante. Orden secuencial por el campo
clave.
Archivo secuencial indexado:
Archivo indexado:
Organización de Directorios
CONTENIDO
Asociado con cualquier sistema de gestión de archivos o cualquier conjunto de archivos suele haber un
directorio de archivos. El directorio contiene información sobre los archivos, incluyendo atributos,
ubicación y propietario. El directorio es propiamente un archivo poseído por el sistema operativo y
accesible a través de diversas rutinas de gestión de archivos. Aunque parte de la información de los
directorios está disponible para los usuarios y aplicaciones, ésta la proporcionan, generalmente de un
modo indirecto, las rutinas del sistema.
Los usuarios no pueden acceder directamente al directorio, incluso en modo de sólo lectura.
Desde punto de vista del usuario, el directorio ofrece una traducción entre los nombres de archivo
conocidos por usuarios y por aplicaciones y los archivos propiamente dichos. Cada entrada incluirá el
nombre del archivo. Casi todos los sistemas trabajan con clases diferentes de archivos y diferentes
organizaciones de archivos, por lo que también se incluye esta información. Un tipo de información
importante sobre cada archivo es aquella relativa a su almacenamiento, incluyendo su ubicación y
tamaño. En los sistemas compartidos, también es importante ofrecer información para controlar el
acceso del archivo.
Un usuario será el propietario del archivo y podrá otorgar ciertos privilegios de acceso a otros usuarios,
luego se necesita información para gestionar la utilización actual del archivo y guardar un historial
sobre su uso.
Elementos de información que se almacena normalmente en el directorio para cada archivo del sistema:
Información básica
*Nombre del archivo: nombre elegido por el creador ( usuario o programa). Debe ser único en
un directorio específico.
*Tipo de archivo: por ejemplo: texto, binario, módulo de carga, etc.
*Organización de archivo: para sistemas que soportan varias organizaciones.
Información de dirección
*Volumen: indica el dispositivo donde se almacena el archivo.
*Dirección de comienzo: dirección física de inicio de la memoria secundaria (cilindro, pista y
número de bloque en disco).
*Tamaño usado: tamaño actual del archivo en bytes, palabras o bloques.
*Tamaño asignado: tamaño máximo del archivo.
Información de control de acceso
*Propietario: usuario con control sobre el archivo. El propietario puede otorgar o denegar
acceso a otros usuarios y cambiar estos privilegios.
*Información de acceso: una versión simple de este elemento incluye el nombre del usuario y la
contraseña para cada usuario autorizado.
*Acciones permitidas: controla la lectura, escritura, ejecución y transmisión por una red.
Información de uso
*Fecha de creación: cuándo se añadió el archivo al directorio.
*Identidad del creador: normalmente, pero no siempre, el propietario.
*Fecha de última lectura: fecha de la última vez que se leyó un registro.
*Identidad del último lector: usuario que hizo la lectura.
*Fecha de última modificación: fecha de la última actualización, inserción o borrado.
*Identidad del último modificador: usuario que hizo la modificación.
*Fecha de la última copia de reserva: fecha de la última vez que el archivo fue copiado en otro
medio de almacenamiento.
*Utilización actual: información sobre la actividad actual del archivo, como el (los) proceso(s)
que tiene abierto el archivo, si está bloqueado por un proceso y si el archivo ha sido actualizado en la
memoria principal, pero aún no en el disco.
ESTRUCTURA
Parte de la información puede guardarse en un registro de cabecera asociado al archivo; esto reduce la
cantidad de espacio necesario para el directorio, haciendo más fácil mantener todo el directorio o parte
en la memoria principal para mejorar la velocidad. Por supuesto, algunos elementos clave deben
permanecer en el directorio; normalmente, estos incluyen el nombre, dirección, tamaño y organización.
La forma más simple de estructuración de un directorio es una lista de entradas, una para cada archivo,
puede representarse con un simple archivo secuencial, con el nombre del archivo haciendo las veces de
clave, no es adecuada cuando múltiples usuarios comparten el sistema e incluso para un solo usuario
con muchos archivos.
Para comprender los requisitos de una estructura de archivo, merece la pena considerar los tipos de
operaciones que pueden realizarse con un directorio:
•
Buscar: cuando un usuario o aplicación hace referencia a un archivo, debe buscarse en el
directorio la entrada correspondiente al archivo.
•
Crear archivo: al crear un nuevo archivo, debe añadirse una entrada al directorio.
•
Borrar archivo: al borrar un archivo, debe eliminarse una entrada del directorio.
•
Enumerar directorio: puede solicitarse todo el directorio o una parte. Generalmente, esta
petición la hace un usuario y el resultado es una lista de todos los archivos poseídos por dicho
usuario, junto a algunos de los atributos de cada archivo(tipo, información de control de acceso;
información de uso).
•
Actualizar directorio: cuando algunos atributos del archivo se almacenan en el directorio, un
cambio en alguno de estos atributos requiere un cambio en la entrada del directorio
correspondiente.
El usuario puede tener muchos tipos de archivos, incluyendo documentos de texto, archivos gráficos,
hojas de cálculo, etc. El usuario puede querer tenerlos organizados por proyecto, tipo o de otra manera
conveniente. Si el directorio es una simple lista secuencial, no ofrecerá ayuda alguna en la organización
de los archivos y obligará al usuario a tener cuidado de no usar el mismo nombre para dos tipos
diferentes de archivo.
El problema es mucho peor en un sistema compartido. Los nombres únicos se convierten en un
problema serio. Además, es difícil ocultar a los usuarios determinadas partes del directorio global
cuando no hay una estructura inherente en el mismo.
Para resolver estos problemas podría ser acudir a un esquema de dos niveles . En este caso, existe un
directorio para cada usuario y un directorio maestro. El directorio maestro dispone de una entrada para
cada directorio de usuario, incluyendo una dirección e información de control de acceso. Cada
directorio de usuario es una simple lista de los archivos del usuario. Esta disposición significa que los
nombres deben ser únicos sólo dentro del conjunto de archivos de cada usuario y que el sistema de
archivos puede hacer cumplir fácilmente unas restricciones de acceso a los directorios, todavía no
ofrece a los usuarios ayuda alguna para estructurar sus conjuntos de archivos.
Un método más potente y flexible, adoptado casi universalmente, es el directorio jerárquico o
estructurado en árbol, eso quiere decir que existe un directorio maestro que contiene un número
determinado de directorios de usuario, cada uno de estos directorios puede tener a su vez subdirectorios
y archivos como entradas. Esto se cumple en cualquier nivel, es decir en cualquier nivel un directorio
puede constar de entradas para subdirectorios o entradas para archivos.
Queda comentar cómo se organiza cada directorio y subdirectorio. El método más simple es, por
supuesto, almacenar cada directorio como un archivo secuencial, cuando los directorios contengan un
número muy grande de entradas, tal organización puede conducir a tiempos de búsqueda
innecesariamente grandes, en tal caso se prefiere una estructura de dispersión.
DESIGNACIÓN
Cada archivo del sistema debe tener un nombre único para que las referencias al archivo no sean
ambiguas. Por otra parte, proporcionar nombres únicos es una carga inaceptable para los usuarios,
especialmente en un sistema compartido.
Cualquier archivo del sistema puede ser localizado siguiendo un camino desde el directorio raíz o
maestro, descendiendo por varias ramas hasta que se alcance el archivo. La serie de nombres de
directorios, terminados con el propio nombre del archivo, constituye el nombre de camino del
archivo, por ejemplo, un archivo que tiene el nombre de camino /UsuarioB/Textos/Tema1/ABC. La
barra oblicua se utiliza para delimitar los nombres en la secuencia. El nombre del directorio maestro
queda implícito porque todos los caminos comienzan en tal directorio. Es perfectamente aceptable tener
varios archivos con el mismo nombre de archivo mientras tengan nombres de camino únicos. De esta
forma, puede haber otro archivo en el sistema con el nombre ABC, pero su nombre de camino es
/UsuarioB/Dibujos/ABC.
Aunque el nombre del camino facilita la elección de los nombres de archivo, para un usuario sería
incómodo tener que deletrear el nombre del camino entero cada vez que haga una referencia a un
archivo. Cada usuario interactivo o proceso tiene asociado un directorio actual, conocido a menudo
como directorio de trabajo. Las referencias a los archivos son entonces relativas al directorio de
trabajo, por ejemplo, si el directorio de trabajo del usuario B es “Textos” entonces el nombre de camino
es Tema1/ABC. Cuando un usuario interactivo se conecte o cuando se cree un proceso, el valor por
defecto para el directorio de trabajo será el directorio del usuario. Durante la ejecución, el usuario
puede navegar por el árbol y así definir directorios de trabajo diferentes.
Compartimiento de Archivos
En un sistema multiusuario, casi siempre existe la necesidad de permitir a los usuarios compartir
archivos. Se presentan entonces dos cuestiones: los derechos de acceso y la gestión a los accesos
simultáneos.
Derechos de acceso
El sistema de archivos debe ofrecer una herramienta flexible que permita el compartimento general de
archivos entre los usuarios, así como un conjunto de opciones para poder controlar el acceso a cada
archivo
en particular. Generalmente, los usuarios o grupos de usuarios obtienen ciertos derechos de acceso a
cada archivo.
La lista que se presenta a continuación representa los derechos de acceso que pueden asignarse a un
usuario particular para un archivo específico.
Ninguno: el usuario no puede conocer la existencia del archivo ni acceder al mismo. Para
aplicar esta restricción, no se permite al usuario leer el directorio de usuario que incluya al
archivo.
Conocimiento: el usuario puede determinar que el archivo existe y quién es su propietario. El
usuario puede solicitar derechos de acceso adicionales al propietario.
Ejecución: el usuario puede cargar y ejecutar un programa pero no puede copiarlo.
Lectura: el usuario puede leer el archivo para cualquier propósito, incluyendo copia y
ejecución. Hay sistemas que distinguen entre visualizar y copiar. En el primero, el contenido del
archivo puede mostrarse al usuario, pero no se lo puede copiar.
Adición: el usuario puede añadir datos al archivo pero no puede modificar o borrar el contenido
del mismo.
Actualización: el usuario puede modificar, borrar y añadir datos al archivo. Incluye la escritura
del archivo al principio, la reestructuración por completo o en parte y la eliminación de todos
los datos o parte de ellos.
Cambio de protección: el usuario puede cambiar los derechos de acceso otorgados a otros
usuarios. En algunos sistemas el propietario puede otorgar este derecho a los usuarios. Para
frenar el abuso de este mecanismo, el propietario del archivo específica que derechos pueden
ser cambiados.
Borrado: el usuario puede borrar el archivo del sistema de archivos.
Estos derechos constituyen una jerarquía, es decir, si un usuario particular adquiere el derecho de
actualización para un archivo determinado, también habrá adquirido los derechos de: conocimiento,
ejecución, lectura y adición.
Un usuario es designado como propietario de un archivo dado, generalmente es la persona que crea el
archivo al principio. El propietario cuenta con todos los derechos de acceso citados anteriormente y
puede otorgar derechos a los otros.
El propietario puede ofrecer acceso a las siguientes clases de usuarios:
Usuario específico: usuarios individuales designados por su ID de usuario.
Grupos de usuarios: no definidos individualmente. El sistema debe disponer de algún medio
para constatar la militancia de estos grupos.
Todos: todos los usuarios que tengan acceso al sistema. Estos serán archivos públicos.
Accesos simultáneos
Al otorgar acceso para añadir o actualizar un archivo a más de un usuario, el sistema operativo o el
sistema de gestión de archivo debe hacer cumplir una disciplina. Un método consiste en permitir a los
usuarios bloquear el archivo entero cuando lo actualicen. Un mejor control es bloquear los registros
individuales durante la actualización. Al diseñar la posibilidad de accesos compartidos ,se deben
abordar aspectos de exclusión mutua e interbloqueo.
Agrupación de Registros
Registro: unidad lógica de acceso a los archivos.
Bloques: unidad de E/S para almacenamiento secundario.
Para realizar E/S los registros deben organizarse en bloques.
Hay aspectos a considerar:
1.Bloques de Longitud Fija o Variable
En muchos sistemas los bloques son de longitud fija, lo que simplifica la E/S, la asignación de
buffers, y la organización de los bloques en la memoria secundaria.
2.Tamaño relativo de bloque en relación al tamaño medio de registro
Cuando más grande sea el bloque, más registros se transferirán por operación de E/S. Si el
archivo se procesa secuencialmente, es una ventaja pues minimiza la E/S usando bloques más
grandes. Si se accede aleatoriamente a los registros sin cercanía entre las referencias de los
mismos, es una desventaja pues en la E/S se transfieren muchos registros que nunca serán
usados.
Una combinación de la frecuencia de operaciones secuenciales con la posibilidad de cercanía de
referencias, implicaría reducción de E/S usando bloques mayores. El inconveniente es que bloques
grandes resultan en buffers de E/S grandes y difíciles de gestionar.
Métodos de Agrupación en Bloques
 Bloques Fijos: registros de longitud fija. Se guarda en cada bloque un número entero de
registros. Puede haber espacio sin usar al final de cada bloque (fragmentación interna).
 Bloques de longitud variable con tramos: registros de longitud variable que se agrupan en
bloques sin dejar espacios libres; por esto algunos registros podrían abarcar dos bloques
indicando el tramo de continuación con un puntero al bloque siguiente.
 Bloques de longitud variable sin tramos: registros de longitud variable sin dividirlos en
tramos. En muchos bloque habrá espacios libres por no usar el resto del bloque si el siguiente es
mayor que el espacio sin usar restante.
Conclusiones sobre los métodos
*Los bloques de tamaño fijo son el modo más común de archivos secuenciales con registros de
longitud variable.
*Los bloques de longitud variable con tramos son eficaces y no limitan el tamaño de registro,
pero son difíciles de implementar: los registros que ocupan dos bloques requieren dos operaciones de
E/S, los archivos se hacen difíciles de actualizar y la organización es compleja.
*Los bloques de longitud variable sin tramos desperdician espacio y limitan el tamaño de
registro al tamaño del bloque.
Comentarios sobre memoria virtual y agrupación de registros
La técnica de agrupación de registros podría colaborar con el hardware de la memoria virtual, para ello
es deseable que la unidad básica de transferencia sea la página, si estas son pequeñas es poco práctico
tratarlas como bloques sin tramos por ello algunos sistemas combinan varias páginas para formar un
bloque (mayor), para la E/S de archivos. Por ejemplo en archivos VSAM de máquinas IBM.
Gestión de Almacenamiento Secundario
La Memoria es el lugar donde se almacenan todos los datos como las instrucciones, existen dos tipos
básicos de memoria, diferenciados principalmente por su velocidad:
La Memoria Principal, interna o central: es la que actúa con mayor velocidad y esta ligada directamente
a las unidades mas rápidas de la computadora (unidad de control y unidad aritmetico_logica).
Para que un programa se ejecute debe estar almacenado en la Memoria Principal; esta se divide en dos
zonas: en la de solo lectura (Memoria RAM) la cual es permanente, y otra en donde se puede leer y
escribir (Memoria ROM) la que es volátil.
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.
En la asignación de archivos surgen varios planteos:
¿Al crearse un archivo, el espacio que necesita se le asigna el máximo de una vez o no?
¿Qué tamaño de sección debería usarse para asignar archivos?. Entendiéndose por sección al
espacio que se asigna a un archivo en forma de una o mas unidades contiguas, el tamaño de la
sección puede variar desde un único bloque a un archivo entero.
¿Que tipo de estructura de datos o tabla se usara para guardar constancia de las secciones asignadas
a un archivo?. Esta tabla se conoce como tabla de asignación de archivos (FAT File Allocation
Table).
El primer planteo es el de la asignación previa frente a asignación dinámica:
La asignación previa requeriría que el tamaño se declarase en el momento de crearlo, esto es difícil de
estimar de manera fiable, ya que al asignar el espacio máximo al archivo se puede sobrestimar el
tamaño de la asignación de forma que no falte espacio, esto es un derroche desde el punto de vista de la
asignación de Memoria Secundaria, por lo que existen ventajas en el uso de la asignación dinámica,
que asigna espacio a los archivos en secciones a medida que se necesitan.
Otro planteo es el del tamaño de sección:
Se puede asignar una sección suficientemente grande como para guardar el archivo entero, o asignar el
espacio en disco bloque en bloque.
Se debe tener en cuenta los siguientes elementos:
La contigüidad aumenta el rendimiento, especialmente para las operaciones de Recupere_Siguiente
y, para ejecutar las transacciones de un sistema orientado a transacciones.
Disponer de un gran numero de secciones pequeñas aumenta el tamaño de las tablas necesarias para
gestionar las asignación de información.
Disponer de secciones de tamaño fijo (bloques) simplifica la resignación del espacio.
Disponer de secciones de tamaño variable o secciones pequeñas de tamaño fijo minimiza la perdida
de espacio no usado provocada por la sobreasignación.
Estos elementos interactuan entre si por lo que se deben considerar en conjunto:
Secciones contiguas variables y grandes: esta opción ofrecerá un rendimiento mejor. El tamaño
variable evitara la perdida y las tablas de asignación de archivos serán pequeñas. Sin embargo el
espacio es difícil de reutilizar.
Bloques: las secciones fijas y pequeñas ofrecen una flexibilidad mayor. Se pueden necesitar tablas
grandes o estructuras complejas para su asignación. La contigüidad se abandona, los bloques se
asignan a medida que se necesitan.
Las opciones anteriormente redactadas son compatibles con la asignación previa o con la asignación
dinámica. Para la primera se asigna previamente a los archivos un grupo contiguo de bloques. Esto
elimina la necesidad de una tabla de asignación de archivos; lo único que se necesita es un puntero al
primer bloque y el numero de bloques asignados. En el segundo caso, todas las secciones necesarias
son asignadas de una vez. Esto significa que la tabla de asignación del archivo permanecerá con un
tamaño fijo.
Con secciones de tamaño variable, hay que preocuparse por la fragmentación del espacio libre, se
pueden utilizar las siguientes estrategias:
Primer ajuste (first fit): elegir el primer grupo de bloques sin usar de tamaño suficiente.
Mejor ajuste (best fit): elegir el grupo mas pequeño sin usar que tenga de tamaño suficiente.
Ajuste mas cercano (nearest fit): elegir el grupo sin usar de tamaño suficiente que esta mas cerca
al asignado previamente al archivo para aumentar la cercanía.
Métodos de asignación de archivos:
Existen tres métodos de asignación: el contiguo, encadenado e indexado.
El contiguo: 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.
La asignación encadenada: 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.
La asignación indexada: 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 indice 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 mas popular de asignación de
archivos.
Gestión del espacio libre
Se debe gestionar el espacio que no está asignado a ningún archivo. Para esto es necesario saber qué
bloques están disponibles, entonces hace falta una tabla de asignación e discos. Se utilizan tres técnicas
de uso común: las tablas de asignación de bits, las secciones libres encadenadas y la indexación.
Tablas de bits:
Utiliza un vector que contiene un bit por cada bloque del disco. Cada entrada igual a 0 es un bloque
libre, si es un 1 corresponde a un bloque en uso. Tienen la ventaja de que es fácil encontrar un bloque
libre o un grupo de bloques libres.
La cantidad de memoria requerida para un mapa de bits en bloques se puede calcular:
Tamaño del disco en bytes
8*tamaño del bloque en el sistema de
archivos
Es recomendable ubicar la tabla de bits en la memoria, aún cuando la tabla de bits esté en la memoria,
una búsqueda exhaustiva de la tabla puede reducir considerablemente el rendimiento del sistema de
archivos. Esto es especialmente cierto cuando el disco está casi lleno y hay pocos bloques libres. De
acuerdo con esto la mayor parte de los sistemas que utilizan tablas de bits mantiene estructuras de datos
auxiliares que resumen el contenido de subrangos de las tablas de bits. Esta tabla resumen podría
incluir por cada subrango, el número de bloques libres y el máximo tamaño de números de bloques
libres contiguos.
Secciones libres encadenadas:
Pueden encadenarse juntas mediante un puntero y un valor de longitud en cada sección libre. No tiene
necesidad de una tabla de asignación de disco, sino un puntero al comienzo de la cadena y la longitud
de la primera sección.
Este método sirve para todas las técnicas de asignación de archivos, si la asignación se realiza por
bloques sólo hay que elegir el bloque libre del principio de la cadena y retocar el primer puntero o el
valor de la longitud. Si la asignación se hace por secciones de longitud variable, puede usarse el
algoritmo el primer ajuste.
Este método tiene sus propios problemas, después de un tiempo de uso el disco llegará a estar
fragmentado y muchas secciones serán de un solo bloque. Cada vez que asigna un bloque es necesario
leer antes el bloque para recuperar el puntero al nuevo primer bloque libre antes de escribir datos sobre
ese bloque, entonces se ralentizará mucho la creación del archivo.
Indexación:
Trata al espacio libre como si fuera un archivo y utiliza una tabla índice como la descrita en la
asignación de archivos. Por eficiencia el índice debe trabajar con secciones de tamaño variables mejor
que con bloques. De este modo habrá una entrada en la tabla para cada sección libre del disco. Este
procedimiento ofrece un soporte eficaz para todos los métodos de asignación de archivos.
Lista de bloques libres:
Cada bloque tiene asignado un número secuencial y la lista de números de todos los bloques libres
mantenidos en una sección reservada del disco. Considérense los siguientes puntos:
1-
El espacio en disco dedicado a la lista de bloques libres es menor que el 1% del espacio total
del disco. Si se utiliza un número de bloque de 32 bits, entonces el espacio penalizado es de 4
bytes por cada bloque de 512 bytes.
2-
Aunque la lista de bloques libres sea demasiado grande para almacenar en la memoria
principal, existen dos técnicas efectivas para almacenar una pequeña parte de la lista en la
memoria principal.
a)
La lista puede traerse como una pila con los primeros miles de elementos de la pila
guardados en la memoria principal. Cuando se asigna un bloque nuevo, se retira de la
cima de la pila, y
b)
cuando se desasigna uno se lo apila dentro de la pila, solo hay una transferencia entre el
disco y la memoria principal, cuando la sección que está en la memoria de la pila está
llena o vacía.
c)
La lista puede tratarse como una cola FIFO, con unas pocas miles entradas entre el
principio y el final de la cola en la memoria. Un bloque se asigna tomando la primera
entrada de la cabeza de la cola y se desasigna añadiéndolo al final de la cola. Solo existen
transferencias entre el disco y la memoria principal, cuando la sección que en la memoria
del principio de la cola está vacía o la sección en la memoria del final de la cola está llena.
En cada uno de los puntos anteriores, un hilo puede e segundo plano puede clasificar en la memoria
una lista para facilitar la asignación contigua.
FIABILIDAD:
Considerar:
El usuario A solicita una asignación para añadir datos a un archivo existente.
La petición se atiende y se actualizan en la memoria principal las tablas de asignación de disco
y archivos, pero aún no en el disco.
El sistema se hunde y a continuación se reinicia.
El usuario B solicita una asignación y se le otorga un espacio en el disco que se solapa con la
última asignación hecha al usuario A.
El usuario A accede a la sección solapada mediante una referencia que está almacenada en el
archivo de A.
Esto sucede debido a que el sistema por eficiencia el sistema mantiene copias de la tabla de asignación
de disco y de la tabla de asignación de archivos en la memoria principal. Para evitar esta clase de
errores pueden darse los siguientes pasos cuando se solicite una asignación:
Bloquear en el disco la tabla de asignación de disco. Lo que impedirá a otro usuario alterar la
tabla hasta que la asignación de archivos actual se complete.
Buscar espacio disponible en la tabla de asignación de disco. Se supone que mantiene siempre
en la memoria principal una copia de la tabla de asignación de disco. Si no fuese así, primero
debe leerse ésta del disco.
Asignar el espacio, actualizar la tabla de asignación de disco y actualizar el disco. Actualizar el
disco implica volcar de nuevo al disco la tabla de asignación de disco. Con asignación
encadenada, también se necesita actualizar algunos punteros del disco.
Actualizar la tabla de asignación e archivos y actualizar el disco.
Desbloquear la tabla de asignación de disco.
Esta técnica impedirá los errores, pero cuando se asignan pequeñas secciones de manera frecuente, el
impacto en el rendimiento será sustancial. Para reducir este gasto, puede usarse un esquema de
asignación por lotes, en cuyo caso se obtienen lotes de secciones libres del disco para asignación. Las
secciones correspondientes del disco se marcarán como en uso. La asignación por lotes puede llevarse a
cabo en la memoria principal.
Gestión de archivos en Unix
Para un kernel Unix todos los archivos son flujos de bytes, cualquier estructura lógica interna será
especificada por la aplicación, pero sí está contemplada estructura física de los archivos.
Tipos de archivos
Ordinarios: contienen información creada por usuarios, aplicaciones o el sistema operativo.
Directorios: son listas de nombres de archivo y punteros a nodos-i asociados. Están
organizados jerárquicamente. Son realmente archivos ordinarios con privilegio especial de protección
para que solo el sistema de archivos pueda escribir en ellos (programas de usuario tienen permiso de
lectura).
Especiales: se usan para acceder a dispositivos periféricos como impresoras, cada dispositivo
de E/S tiene asociado un archivo especial.
Nombrados: pipes (tuberías) con nombre.
Nodos-i
Todos los tipos de archivos son administrados por Unix por medio de nodos-i. Éste es una estructura de
control que contiene información (permisos, atributos, información de control, etc.), de un archivo
necesaria para el sistema operativo.
Puede asociarse varios nombres de archivo a un mismo nodo-i, pero un nodo-i activo se puede asociar
con un único archivo (cada uno es controlado por un solo nodo-i).
Asignación de Archivos
Los archivos se asignan en bloques dinámicamente según sea necesario, por ello no hay asignación
previa. Por esto los bloques pueden no ser contiguos, y se usa un método de indexación para “formar”
un archivo: un índice en parte guardado en el nodo-i, 39 bytes de información de dirección, organizada
como 13 direcciones; las primeras 10 direcciones apuntan los primeros 10 bloques de datos del archivo,
si éste es más grande que 10 bloques se usan más niveles de indexación llamados “indirectos”. A
considerar:
 La dirección 11 del nodo-i apunta a un bloque del disco que contiene la siguiente parte del
índice, este bloque es llamado “indirecto simple” y contiene los punteros a los siguientes
bloques que forman el archivo.
 Si el archivo contiene más bloques: la dirección 12 del nodo-i apuntará a un bloque “indirecto
doble” que contendrá una lista de direcciones de bloques “indirectos simples” adicionales.
 Si el archivo tiene aún más bloques: la dirección 13 del nodo-i apuntará a un bloque “indirecto
triple” que consiste en un tercer nivel que apunta a bloques “indirectos dobles” adicionales.
El número total de bloques de un archivo depende de la capacidad de los bloques de tamaño fijo del
sistema. Por ejemplo: en Unix SV la longitud de bloque es de 1KB y cada uno puede guardar 256
direcciones de bloques, por lo tanto el tamaño máximo de archivo sería cercano a 16 GB.
Ventajas de los nodos-i
 Son de tamaño fijo y pequeños por lo que pueden permanecer en memoria principal largos
períodos.
 Se accede a archivos pequeños de modo directo o indirecto reduciendo el tiempo de acceso al
disco.
 El tamaño máximo teórico de un archivo satisface los requerimientos de la mayoría de las
aplicaciones.
Sistema de archivos en Windows 2000
Los diseñadores de Windows 2000 diseñaron un nuevo sistema de archivos, el sistema de archivos de
W2K (NTFS), que cumple requisitos de estaciones de trabajo y servidores.
Algunas aplicaciones de alto nivel pueden ser :
Aplicaciones Cliente/ Servidor tales como servidores de archivos, de procesamiento y de base
de datos.
Ingeniería de recursos intensivos y aplicaciones científicas.
Aplicaciones de redes para grandes sistemas corporativos.
Características clave de NTFS
NTFS es un sistema de archivos potente y flexible construido sobre un modelo de sistema de archivos
simple y refinado, estas son sus características mas importantes:
Recuperabilidad: Ante las caídas del sistema y fallos del disco, NTFS es capas de reconstruir
los volúmenes de disco y devolverlos a un estado consistente.
Seguridad: NTFS utiliza el modelo de objetos de W2K para imponer la seguridad. Un archivo
abierto se implementa como un objeto archivo con un descriptor de seguridad que define sus
atributos de seguridad.
Discos grandes y archivos grandes: NTFS soporta discos muy grandes y archivos muy
grandes mas eficientemente que la mayoría de los sistemas de archivos, incluyendo FAT.
Serie de datos múltiples: el contenido de un archivo se trata como una serie de bytes, en NTFS
es posible definir múltiples series de datos para un solo archivo.
Capacidad de indexación general: NTFS asocia un conjunto de atributos con cada archivo. El
conjunto de descripciones de archivo en un sistema de gestión de archivos se organiza como
una base de datos relacional, así los archivos de pueden indexar por cualquier atributo.
Estructura de archivos y volúmenes NTFS
NTFS hace uso de los siguientes conceptos de almacenamiento en disco:
Sector: la unidad de almacenamiento físico mas pequeña sobre el disco. El tamaño de los datos
en bytes es una potencia de 2 y es casi siempre de 512 bytes.
Agrupamiento (cluster): uno o mas sectores contiguos , siguientes uno al otro en la misma
pista. El tamaño del agrupamiento en sectores es una potencia 2.
Volumen: una partición lógica sobre el disco, que consta de uno o mas agrupamientos y que el
sistema de archivos utiliza para asignar el espacio. En un instante dado, un volumen consta
de la información del sistema de archivos, un conjunto de archivos y cualquier espacio libre
adicional en el resto del volumen que se pueda asignar a los archivos. Un volumen puede ser
todo o una parte de un único disco o puede extenderse a través de múltiples discos. El
tamaño máximo de volumen para NTFS es de 2
El uso de agrupamientos par asignación hace independiente a NTFS del tamaño del sector físico. Esto
permite a NTFS soportar fácilmente discos no estándar que no tienen sectores de 512 bytes, y soportar
eficientemente archivos muy grande mediante el uso de tamaño de agrupamiento mas grande. La
eficiencia viene del hecho de que el sistema de archivos debe guardar la pista de cada agrupamiento
asignado a cada archivo; con agrupamientos mas grandes, hay menos campos para gestionar.
Disposición de un volumen NTFS
Esta disposición esta formado por cuatro regiones.
1)
Los primeros sectores de un volumen están ocupados por la partición del sector de arranque
(puede tener hasta 16 sectores de longitud) que contiene información acerca de la disposición de un
volumen y de las estructuras del sistema de archivos, así como la información y el código de
arranque.
2)
A continuación esta la “Tabla Maestra de Archivos” (MFT), contiene información acerca de todos
los archivos y carpetas de este volumen NTFS, así como la información de espacio disponible.
3)
La (MTT), es una lista de todos los contenidos de este volumen NTFS organizada como un
conjunto de filas en una estructura de base de datos relacional.
4)
Región que contiene los archivos del sistema, normalmente alrededor de 1Mbytes.
(1) MFT2: un espejo de las tres primeras filas de la MFT, utilizado para garantizar el
acceso a la MFT en el caso de un fallo de ese sector.
(2)
Archivo de registro: una lista de los pasos de transacciones utilizados para la
recuperabilidad de NTFS.
(3) Mapa de bits de agrupamiento: es una representación del volumen, mostrando qué
agrupamientos están en uso.
(4) Tabla de definición de atributos: define los tipos de atributos soportados en este
volumen e indican si se pueden indexar y si se pueden recuperar mediante una operación
de recuperación del sistema.
Tabla maestra de archivos:
Está organizada como una tabla de filas de longitud variable, denominados registros. Cada fila describe
un archivo o carpeta en este volumen, incluyendo a la propia MFT, que se trata como a otro archivo.
Disposición de un volumen NTFS.
Cada registro en la (MFT) consta de un conjunto de atributos que caracteriza al archivo o carpeta y el
contenido del archivo.
Tipos de atributos
Información estándar: atributos de acceso, marcas de tiempo, contador de enlaces, etc.
Lista de atributos: describe al archivo y la referencia al registro de la MFT. Se lo
utiliza cuando todos los atributos no caven en un solo registro de la MFT.
Nombre de archivo:
Descriptor de seguridad: quién es el propietario del archivo y quien puede accederla.
Datos: son el contenido del archivo.
Raíz de índices: usada para implementar carpetas.
Asignación de índices: usada para implementar carpetas.
Volumen de información: información relativa al volumen, versión y nombre.
Mapa de bits: representa a los registros en uso en la MFT o carpeta.
Recuperabilidad: los elementos clave son los siguientes:
Gestor de Entrada/Salida: Incluye controlador NTFS, que gestiona las funciones
básicas, tales como: Apertura – Cierre – Lectura y Escritura.
Servicio de archivos de registro: mantiene un registro de escrituras al disco. Se lo
utiliza para recuperar un volumen con formato NTFS en caso de fallo en el sistema.
Gestor de Caché: responsable de leer y escribir los archivos situados en la caché.
Optimiza la E/S a disco utilizando técnicas de escritura retardada y confirmación
retardada.
Gestor de memoria virtual: accede a la caché de archivos NTFS mediante la
traducción de referencias al archivo a referencias a la memoria virtual, y , lecturas y
escrituras en la memoria virtual.
La esencia de recuperación, está en el registro. Cada operación que modifica el sistema de archivos se
trata como una transacción, se registra en un archivo de registro. Por medio del registro, una
transacción parcialmente completada en el momento de la caída del sistema, puede rehacerse o
deshacerse mas tarde, cuando se recupere el sistema.
Pasos a dar para asegurar la recuperabilidad:
NTFS primero lleva al registro del sistema de archivo para grabar en el archivo de registro de la caché,
cualquier transacción que modifique la estructura del volumen.
NTFS modifica el volumen (en la caché).
El gestor de caché llama al registro del sistema de archivos para indicarle que lleve el archivo de
registro al disco.
Una ves que el archivo de registro actualizado está seguro en el disco, el gestor de caché lleva los
cambios del volumen al disco.
Conclusión
Un sistema de gestión de archivos es un sistema que proporciona servicios a usuarios y aplicaciones
para el uso de archivos, conservación de directorios y control de acceso. Generalmente el sistema de
gestión de archivos se contempla como un servicio del sistema que se sirve a su vez del sistema
operativo, más que como una parte del propio sistema operativo. Sin embargo, al menos una parte e
las funciones de gestión de archivos las realiza el mismo sistema operativo.
Un archivo es una colección de registros, y la organización lógica, también física en el disco; en algún
punto, de estos registros está determinada por la forma en la que se accede a ellos
Si un archivo va a ser procesado en su totalidad, la organización secuencial es la más simple y
adecuada.
Si el acceso es secuencial, pero también se desea el acceso aleatorio al archivo, entonces es útil una
organización secuencial indexada, que podría dar el mejor rendimiento.
Cuando el tipo de acceso es básicamente aleatorio, sería más apropiado un archivo aleatorio o de
dispersión.
Más allá de la estructura es indispensable un sistema de directorios para una organización jerárquica.
Esto es útil para que los usuarios sigan la pista de los archivos y para que el sistema de gestión de
archivos proporcione a los usuarios un control de acceso junto a otros servicios.
Los registros no se ajustan al tamaño del bloque del disco, ni siquiera los de tamaño fijo, entonces se
utiliza una estrategia de agrupación, la cual quedará determinada por un equilibrio entre la
complejidad, el rendimiento y el aprovechamiento del espacio.
Una función clave de cualquier sistema de gestión de archivos es la gestión del espacio en disco. Una
parte de esta función s la estrategia de asignación de bloques en disco a los archivos, se han utilizado
una amplia variedad de métodos y de estructuras de datos para guardar constancia de la ubicación de
cada archivo. Hay que tener en cuenta que también debe gestionarse el espacio en disco que no ha
sido asignado. Esta última función consiste en mantener una tabla de asignación de discos que indique
los bloques que están libres.
Descargar