MONOGRAFIA GESTION DE Archivos - hungria berbesi. Sistemas

Anuncio
1
1-Archivos y Sistemas de Archivos
Una de las partes más importantes de un Sistema Operativo es el Sistema de Archivos.
Proporciona las abstracciones de recursos asociados con el almacenamiento
secundario, lo cual
permite al usuario crear colecciones de datos llamados
Archivos, con propiedad como:
Existencia a largo plazo: los Archivos se almacenan en disco u otro almacenamiento
para luego operar con ellos.
No desaparece cuando un usuario se desconecta.
Compartible entre procesos: los Archivos tienen nombres, los cuales son utilizados
para compartir, con cierto permiso de acceso.
Estructura: dependiendo del sistema de Archivos, un Archivo puede tener cierta
estructura interna que es conveniente para aplicaciones particulares.
Un sistema de Archivos no solo proporciona una manera de almacenar datos, sino
también una colección de funciones que se pueden llevar a cabo sobre ellos, las
cuales son:
● Crear: se define un nuevo Archivo y se posiciona dentro de la estructura.
● Borrar: elimina un Archivo y lo destruye.
● Abrir: un Archivo existente se declara abierto por un proceso, permitiéndole al
proceso realizar funciones sobre éste.
Cerrar: un determinado proceso cierra el Archivo, de forma que no puede volver a
realizar funciones sobre dicho Archivo., salvo que otro proceso lo vuelva a abrir.
Leer: un proceso lee una porción o todos los datos del Archivo.
Escribir: un proceso actualiza, añadiendo nuevos datos, que expanden el tamaño del
Archivo.
Un sistema de Archivos mantiene un conjunto de atributos asociados, incluyendo el
propietario, tiempo de creación, tiempo de última modificación, privilegios de
acceso, etc.
1.1-Estructura de un Archivo
Normalmente aparecen cuatro términos:
Campo
Es el elemento básico de los datos. Un campo individual contiene un único valor. Se
caracteriza por su longitud y tipo de datos (ASCII, cadena de caracteres).
2
Dependiendo del diseño del Archivo, la longitud puede ser fija o variable. En este
ultimo está formado comúnmente por dos o tres subcampos valor real, nombre y
longitud)
Registro
Es una colección de campos relacionados. Dependiendo de su diseño, pueden ser
de longitud fija o variable. Un registro será de longitud variable si algunos de sus
campos tienen longitud variable o si el número de campos puede variar.
Archivo
Colección de campos similares. Se trata como una entidad única por parte de los
usuarios y aplicaciones. Se los puede referenciar por su nombre. Los Archivos se
pueden crear y borrar.
En un sistema compartido, el acceso a los Archivos puede ser permitido o denegado
a los usuarios y programas.
Base de datos
Es una colección de datos relacionados. Los aspectos esenciales de una base de
datos son que la relación que exista entre los elementos de datos sea explicita y que
se diseña para su uso por parte de varias aplicaciones diferentes.
Esta formada por uno o mas tipos de Archivos. Comúnmente hay un sistema de
gestión de base de datos separadas del Sistema Operativo.
Las operaciones que deben soportar los Archivos incluyen:
* Obtener –todos: obtener todos los registros de un Archivo. Esta operación se
requerirá por aplicaciones que deban procesar toda la información de un Archivo de
una vez. Esta operación se conoce como procesamiento secuencial, porque todos
los registros se acceden en secuencia.
* Obtener-uno: esta operación solicita un único registro.
Obtener-siguiente: esta operación solicita el siguiente registro. En algunas secuencias
con respecto al registro mas recientemente leído.
* Obtener- anterior: en este caso el registro al que se accede es el anterior al mas
reciente leído.
* Insertar-uno: insertar un nuevo registro en el Archivo. Puede ser necesario que el
nuevo registro encaje en una posición específica para preservar la secuencia.
* Borrar-uno: borrar un registro existente.
Actualizar-uno: obtener un registro, actualizar uno o mas de sus campos y rescribir el
registro actualizado.
* Obtener-varios: obtener varios registros. Obtener todos los registros acerca de un
cierto conjunto de criterios.
Se debe destacar que no todos los sistemas de Archivos utilizan el conjunto de
estructuras nombradas anteriormente.
3
1.2-Sistema de Gestión de Archivos.
Es aquel conjunto de software de sistema que proporciona servicio a los usuarios y
aplicaciones en el uso de Archivos.
Comúnmente la única forma en la que un usuario o aplicación pueda acceder a los
Archivos es a través del sistema de gestión de Archivos.
Proporciona al sistema una forma consistente y bien definida de controlar su recurso
más importante.
Los objetivos de un sistema de gestión de Archivos son los siguientes:
▪ Satisfacer las necesidades de gestión de datos y requisitos del usuario, incluyendo el
almacenamiento y la capacidad de llevar a cabo las operaciones anteriormente
mencionadas.
▪ Garantizar que los datos del Archivo son validos.
▪ Optimizar el rendimiento, por parte del sistema en términos de productividad y del
usuario en el tiempo de respuesta.
▪ Proporcionar soporte de E/S a una variedad de tipos de dispositivos de
almacenamiento, como así también un conjunto de estándar de rutinas de interfaces
de E/S a los procesos, soporte de E/S a múltiples usuarios en el caso de sistemas
multiusuarios.
1.3-Arquitectura de un Sistema de Archivos
Distintos sistemas se organizan de forma distinta, pero esta organización es
representativa.
Analizaremos la organización de software típica que es la siguiente:
En el nivel mas bajo, los manejadores de dispositivos se comunican con los dispositivos
de periféricos o controladores.
Un controlador de dispositivo es el responsable de iniciar las operaciones de E/S y
finalizarlo.
El siguiente nivel se denomina sistema de Archivos básico, o nivel de E/S físico. Este
nivel se encarga de la colocación de aquellos bloques del dispositivo de
almacenamiento secundario y el buffering de dichos bloques en memoria principal.
El supervisor de E/S se encarga de todas las iniciaciones y finalizaciones de E/S.
En este nivel, las estructuras de control tratan con los dispositivos de E/S, la
planificación y el estado de los Archivos.
Selecciona el dispositivo en el cual se va a llevar a cabo las operaciones, como así
también de la planificación de disco y cinta para optimizar el rendimiento.
A este nivel se asignan los buffers de E/S y la memoria secundaria.
4
La E/S lógica permite a los usuarios y a las aplicaciones acceder a los registros. Esta
capa proporciona una capacidad de E/S de propósito general, a nivel de registros y
mantiene datos básicos sobre Archivos.
El nivel del sistema más cercano al usuario frecuentemente denominado métodos de
acceso.
Proporciona una interfaz entre las aplicaciones y sistemas de Archivos que contienen
datos.
Todos los niveles se consideran normalmente parte del sistema operativo.
Diferentes métodos de acceso reflejan diferentes estructuras de Archivos y distintas
formas de acceder y procesar los datos, los cuales se describen en la siguiente
sección.
1.4-Funciones de Gestión de Archivos
Los usuarios y programas de aplicaciones interaccionan con el sistema de Archivos
por medio de mandatos para crear y borrar Archivos, realizar operaciones sobre los
Archivos. Antes de realizar cualquier operación, el sistema de Archivos debe
identificar y localizar el Archivo seleccionado. Esto requiere el uso de algún tipo de
directorio que se utilice para describir la ubicación de todos los Archivos y sus
atributos.
Las operaciones básicas que puede realizar un usuario o aplicación se realizan a
nivel de registro. El usuario o aplicación ve el Archivo como una estructura que
organiza registros.
Por tanto para traducir los mandatos de usuario en mandatos de manipulación de
Archivos específicos, debe emplearse el método de acceso apropiado para esta
estructura de Archivos.
La E/S se realiza a nivel de bloque. Los registros de un Archivo se deben convertir en
bloque en salida y volver a convertir es estructura de registro después de la entrada.
Para dar soporte de bloque de E/S se necesitan varias funciones. Se debe gestionar el
almacenamiento secundario así como conocer que bloques están disponibles para
nuevos Archivos y utilizados en Archivos existentes. Adicionalmente se deben
planificar las peticiones de E/S de bloques individuales.
Tanto la planificación de disco como la asignación de Archivos están relacionadas
con la optimización del rendimiento. Estas funciones necesitan considerarse
simultáneamente.
La optimización dependerá de la estructura de los Archivos y los patrones de acceso.
De acuerdo a esto, desarrollar un sistema de gestión de Archivos óptimo.
5
El resto de este capítulo describe algunos de los aspectos de lo diseños. Se comienza
con una discusión de las organizaciones de los Archivos y los métodos de acceso.
El sistema operativo, en nombre del sistema de gestión de Archivos, gestiona
frecuentemente los directorios. Los temas restantes tratan sobre los aspectos físicos de
E/S de gestión de Archivos y son tratados apropiadamente como aspectos de diseño
de sistemas operativos.
Hay temas relacionados con la asignación de Archivos en almacenamiento
secundario y la gestión de almacenamiento secundario libre.
2-Organización y Acceso a los Archivos
Se utiliza el término organización de Archivo para referirse a la estructura lógica de los
registros germinados por la forma que acceden. La organización física del Archivo en
almacenamiento secundario depende de la estrategia de bloques de asignación de
Archivos.
Para escoger una organización de Archivos, son importantes varios criterios:
● Tiempo de acceso corto.
● Facilidad de actualización.
● Economía de almacenamiento.
● Mantenimiento sencillo.
● Fiabilidad.
La prioridad relativa de estos criterios dependerá de las aplicaciones que utilizarán el
Archivo. Por ejemplo, si un Archivo se va a procesar sólo en lotes, con acceso a todos
los registros cada vez, entonces el acceso rápido a un único registro no es un
requisito. Un Archivo almacenado en CD-ROM nunca se actualizará, y por tanto la
facilidad de actualización no es un aspecto a tener en cuenta en este caso.
Estos criterios pueden entrar en conflicto. Por ejemplo, para facilitar la economía de
almacenamiento, debería haber mínima redundancia en los datos. Un ejemplo lo
constituye el uso de índices.
El número de organizaciones de Archivos alternativas que han implementado o
simplemente propuesto es inmanejablemente largo, incluso para un libro dedicado a
los sistemas de Archivos. Se describen cinco organizaciones fundamentales. La
mayoría de las estructuras utilizadas en los sistemas reales cae dentro de una de estas
6
categorías y se puede implementar con una combinación de estas organizaciones.
Las cinco organizaciones, de las cuales las cuatro primeras se muestran:
▪ La pila.
▪ El Archivo secuencial.
▪ El Archivo secuencial indexado.
▪ El Archivo indexado.
▪ El Archivo de acceso directo o hash.
La Pila
La forma menos complicada de organización de Archivos se puede denominar pila.
Los datos se almacenan en el orden en el que llegan. Cada registro está formado
por un conjunto de datos. El propósito de la pila es simplemente acumular la masa de
datos y guardarlos. Los registros podrían tener diferentes campos o similares campos
en diferentes órdenes. Por tanto, cada campo debe ser autodescriptivo, incluyendo
el nombre del campo y el valor. La longitud de cada campo debe ser implícitamente
indicada por delimitadores, explícitamente incluida como un subcampo o conocida
por defecto para cada tipo de campo.
Dado que no hay estructura en este tipo de Archivo, el acceso a los registros se hace
mediante búsqueda exhaustiva. Es decir, si se desea encontrar un registro que
contiene un campo particular con un valor particular, es necesario examinar cada
registro en la pila hasta encontrar el registro deseado o terminar de recorrer todo el
Archivo.
Los Archivos Pila se utiliza cuando los datos se recogen y almacenan antes del
procesamiento o cuando los datos no son fáciles de organizar. Este tipo de Archivo
utiliza el espacio adecuadamente cuando los datos varían en tamaño y escritura, es
perfectamente adecuado para búsquedas exhaustivas y fáciles de actualizar. Sin
embargo, más allá de estos usos limitados, este tipo de Archivo es inadecuado para
la mayoría de las aplicaciones.
2.1-El Archivo Secuencial
La forma más común de estructura de Archivos, es el Archivo secuencial. En este tipo
de Archivos, se utiliza un formato fijo para los registros. Todos los registros son de igual
tamaño y están compuestos por el mismo número de campos de longitud fija en un
orden específico. Debido a que la longitud y la posición de cada campo son
conocidas, solo se necesita almacenar los valores de los campos; el nombre y
longitud de cada campo son atributos de de la estructura del Archivo.
7
Un campo particular normalmente el primer campo de cada registro, se denomina
campo clave.
El campo clave identifica de forma única el registro; por lo tanto, los valores de la
clave de diferentes registros son siempre diferentes, más aún, los registros se
almacenan en secuencia según la clave: orden alfabético para una clave de texto y
orden numérico para una clave numérica.
Los Archivos secuenciales se utilizan normalmente en lotes y son generalmente
óptimos para dichas aplicaciones cuando implican el procesamiento de todos los
registros (por ejemplo, la aplicación bancaria o de nomina). La organización de
Archivo secuencial es el único que se almacena fácilmente en cinta y en disco.
Para aplicaciones interactivas que suponen consultas y/o actualizaciones de registros
individuales, el Archivo secuencial proporciona un pobre rendimiento. Los accesos
requieren una búsqueda en el Archivo para encontrar una clave, si el Archivo entero,
o una porción grande del Archivo, se pueden llevar a memoria principal
simultáneamente, se pueden utilizar técnicas de búsqueda más eficiente. No
obstante, acceder a un registro en Archivo secuencial grande implica un
procesamiento y retrasos considerables. Las adicciones a los Archivos también
presentan problemas. Típicamente, un Archivo secuencial se almacena en una orden
secuencial simple de los registros dentro de los bloques. Es decir, la organización física
del Archivo en cinta o discos encaja directamente con la organización lógica del
Archivo. En este caso, el procedimiento normal es colocar nuevos registros en un
Archivo de pila separado, denominado Archivo registro o Archivo de transacciones,
periódicamente, un sistema de actualización lleva a cabo la mezcla entre el registro y
e Archivo maestro para producir un nuevo Archivo en la secuencia de clave
correcta.
Una alternativa de organizar el Archivo secuencial físicamente como una lista
enlazada. Uno o más registros se almacenan en cada bloque físico. Cada bloque del
disco contiene un puntero al siguiente bloque. La inserción de nuevos registros implica
una manipulación de punteros, pero no requiere que los nuevos registros ocupen una
posición de bloque físico específico. Por tanto, se obtiene ventajas de incrementar el
procesamiento y la sobrecarga.
2.2-El Archivo Secuencial Indexado
Una técnica popular para eliminar las desventajas del Archivo secuencial es utilizar los
Archivos secuenciales indexados. El Archivo secuencial indexado mantiene las
características clave del Archivo secuencial: los registros se organizan en secuencia,
basándose en un campo clave. Dos características se añaden: un índice al Archivo
que da soporte al acceso aleatorio y un Archivo de desbordamiento. El índice
8
proporciona una capacidad de búsqueda para alcanzar rápidamente la vecindad
de un registro deseado. El Archivo de desbordamiento es similar al Archivo registro,
utilizando con un Archivo secuencial, pero se integra de tal forma que en un registro
en el Archivo de desbordamiento se localiza mediante un puntero desde su registro
predecesor.
En la estructura secuencial indexada más sencilla, se utiliza un único nivel de
indización. El índice en este caso es un Archivo secuencial simple. Cada registro del
Archivo índice está formado por dos campos: un campo clave que es el mismo que
el campo clave del Archivo principal y un puntero al Archivo principal. Para encontrar
un campo especifico, se busca el índice que contenga el mayor valor clave que sea
igual o preceda al valor de clave deseado. La búsqueda continúa en el Archivo
principal en la ubicación indicada por el puntero.
Para comprobar la efectividad de esta técnica, considere un Archivo secuencial con
1 millón de registros. Buscar un valor clave particular requerirá medio millón de
accesos a los registros de media. Supóngase que se construye un índice que contiene
1000 entradas, con las claves del índice más o menos distribuidas uniformemente en
el Archivo principal. Encontrar un registro llevará una media de 500 accesos al
Archivo índice seguido por 500 accesos al Archivo principal. La longitud de búsqueda
media se reduce de 500.000 a 1000.7
Las adiciones al Archivo se gestionan de la siguiente forma: cada registro del Archivo
principal contiene un campo adicional no visible a la aplicación que es un puntero al
Archivo de desbordamiento. Cuando se inserta un nuevo registro en el Archivo, se
añade al Archivo de desbordamiento. Si el registro inmediatamente precedente esta
a su vez en el Archivo de desbordamiento, entonces se actualiza el puntero de dicho
registro. Al igual que el Archivo secuencial, el Archivo secuencial indexado es
ocasionalmente mezclado con el Archivo de desbordamiento en modo batch.
El Archivo secuencial indexado reduce enormemente el tiempo requerido para
acceder a un único registro, sin sacrificar la naturaleza secuencial del Archivo. Para
procesar el Archivo entero secuencialmente, los registros del Archivo principal se
procesan en secuencia hasta que se encuentra un puntero al Archivo de
desbordamiento; a continuación, se accede de forma continua en el Archivo de
desbordamiento hasta que se encuentra un putero nulo, momento en el cual se
continua accediendo al Archivo principal desde el lugar en que se dejo.
Para proporcionar incluso mayor eficiencia en el acceso, se pueden utilizar múltiples
niveles de indexación. A continuación, el menor nivel de indexación se trata como un
Archivo secuencial y se crea un Archivo índice de mayor nivel para dicho Archivo. Se
construye un índice de bajo nivel con 10000 entradas. Entonces se puede construir un
9
índice de mayor nivel por cada 100 entradas. La búsqueda comienza en el índice de
mayor nivel (longitud media=50 accesos) para encontrar un punto de entrada en el
Archivo principal, en el cual se busca de nuevo. Por lo tanto, la longitud media de
búsqueda se ha reducido de 500000 a 1000, y 1000 a 150.
2.3-Archivo Indexado
El Archivo secuencial indexado elimina una de las limitaciones del Archivo secuencial:
el procesamiento efectivo se limita a las búsquedas que se basan en un único campo
del Archivo. Cuando es necesario buscar por alguno otro atributo que no sea el
campo clave, ambas formas de Archivos secuenciales son inadecuadas. En algunas
aplicaciones, esta flexibilidad es deseable.
Para lograr esta flexibilidad, se necesita una estructura que emplea múltiples índices,
uno por cada tipo de campo que puede estar sujeto a una búsqueda. En el Archivo
indexado general, se abandonan los conceptos de secuencialidad y clave única. Los
registros se exceden solo a través de sus índices. El resultado es que no hay restricción
en la colocación de los registros siempre que al menos un puntero en un índice se
refiera a dicho registro. Además, se pueden emplear registros de longitud variable.
Se utilizan dos tipos de índices. Un índice exhaustivo contiene una entrada por cada
registro del Archivo principal. Para facilitar la búsqueda, el índice a su vez está
organizado como un Archivo secuencial. Un índice parcial contiene entradas a
registros donde el campo de intereses existe. Con registro de longitud variable,
algunos registros no contendrán todos los campos. Cuando se añade un nuevo
registro al Archivo principal, todos los Archivos índices deben actualizarse.
Los Archivos índices se utilizan frecuentemente en aplicaciones donde la
temporización de la información es crítica y donde los datos casi nunca se procesan
exhaustivamente. Ejemplo de este tipo de aplicación son los sistemas de reservas de
aerolíneas y los sistemas de control de inventario.
2.4-Archivo de Acceso Directo o Hash
El Archivo de acceso directo o hash, explota la capacidad encontrada en los discos
para acceder directamente a cualquier bloque de una dirección conocida. Al igual
que a los Archivos secuenciales y secuenciales indexados, se requiere una clave para
cada registro. Sin embargo, en este tipo de Archivos no existe el concepto de
ordenaron secuencial.
El Archivo directo hace uso de una función hash sobre un valor clave.
Los Archivos directos se utilizan frecuentemente cuando requiere un acceso muy
rápido, los registro son de tamaño fijo y los registros se acceden un en uno. Ejemplo
de este tipo de estructura son los directorios, las tablas de precios, los inventarios y las
listas de nombres.
10
3-Directorios
Los directorios contienen información sobre los Archivos, incluyendo atributos,
ubicación y propietario, Gran parte de esta información y especialmente la relativa al
almacenamiento la gestiona el sistema operativo. El directorio es propiamente dicho
un Archivo poseído por el sistema operativo y accesible a través de diversas rutinas
de gestión de Archivo.
Los elementos de información de un directorio de Archivo son: Nombre del Archivo,
Tipo de Archivo, Organización del Archivo, Volumen, Directorio de Comienzo,
Tamaño Usado, Tamaño Asignado, Propietario, Información de Acceso, Acciones
Permitidas, Fecha de Creación, Identificación del Creador, Fecha de Ultima Lectura
Identidad de Ultimo Lector, Fecha de Ultima Modificación, Identificación del Ultimo
Modificador, Fecha de Ultima Copia de Reserva, Utilización Actual.
Para entender los requisitos de estructura de Archivo, es necesario tener en cuenta
las operaciones que pueden realizarse con un directorio son: Buscar, Crear Archivos,
Borrar Archivos, Listar Directorios y Actualizar directorios.
La manera de Almacenar la información difiere mucho entre distintos sistemas, puede
guardarse en un registro de cabecera asociado al Archivo, lo cual reduce la
cantidad de espacio necesario para el directorio o puede guardarse parte en la
memoria principal para mejorar la velocidad.
3.1-Estructuras
Una Lista de entradas, una para cada Archivo esta estructura puede representarse
con un simple Archivo secuencial, con el nombre del Archivo haciendo las veces de
clave. Pero esta estructura no es adecuada cuando múltiples usuarios comparten el
sistema e incluso para un solo usuario con muchos archivos.
Esquema de dos niveles: Existe un directorio de 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. El directorio usuario es
una lista de los archivos del usuario, en este los nombres de los archivos deben ser
únicos.
Este esquema no ofrece a los usuarios ayuda alguna para estructurar sus conjuntos de
archivos.
Directorio Jerárquico o Estructurado en Árbol: el enfoque más sencillo, almacena
cada directorio como un Archivo secuencial. Con un directorio maestro que contiene
un número determinado de directorios de usuarios y cada uno de estos directorios de
usuarios pueden tener a su vez subdirectorios y archivos como entradas y esto se
cumple en cualquier nivel. (Fig. 3.1).Si los directorios contuvieran un gran numero de
11
entradas, dicha organización llevaría a unos tiempo de búsqueda innecesariamente
largos. Es preferible una estructura hash.
3.2-Nombrado
Los usuarios necesitan poder referenciar un Archivo mediante un nombre simbólico.
Cada Archivo en el sistema debe tener un nombre único a fin de que las referencias
al mismo no sean ambiguas. Por otro lado es inaceptable, es inaceptable obligar a
que los usuarios proporcionen nombres únicos, especialmente en un sistema
compartido.
El uso de un directorio estructurado en forma de árbol minimiza la dificultad de
asignar nombres únicos. Cualquier Archivo del sistema se puede localizar siguiendo un
camino desde el directorio raíz o maestro y bajando por las ramas hasta alcanzar el
Archivo. El conjunto de nombres de directorios, finalizando en el nombre del Archivo,
constituye un nombre de camino para el Archivo.
Aunque los nombres de caminos facilitan la selección de los nombres de Archivo,
sería complicado para el usuario tener que referencia a un Archivo. Normalmente, un
usuario interactivo o un proceso esta asociado con un directorio actual, que se suele
denominar directorio de trabajo. Los Archivos se pueden referenciar en forma relativa
al directorio de trabajo.
4 -Compartición de Archivos
En los sistemas multiusuarios se debe permitir a los usuarios compartir los Archivos. Por
lo cual hay que tener en cuenta:
-Los derechos de acceso
-La gestión de acceso simultaneo
4.1 Derechos de Acceso
El sistema de Archivos debe tener una herramienta de fácil manejo para el
compartimiento de Archivos y conjunto de opciones para el control del acceso a
cada Archivo, a los usuarios o grupos de usuarios se les dan algunos derechos de
acceso a cada Archivo, por lo que se han usado varios de ellos.
Los derechos de acceso a un Archivo específico que se puede asignar a un usuario
son:
▪ Ninguno: no puede conocer la existencia del Archivo, ni acceder al mismo. Para ello
al usuario no se le prohíbe leer el directorio que incluya al Archivo.
▪ Conocimiento: se le permite señalar que existe el Archivo y quien es su propietario.
El usuario está apto para pedir derecho de accesos adicionales al propietario.
12
▪ Ejecución: se le permite cargar y ejecutar un programa pero no copiarlo. Un
ejemplo de esto son los programas comerciales que cumplen con la restricción.
▪ Lectura: se le permite leer, ejecutar, y copiar el Archivo, algunos sistemas hacen
diferencia entre visualizar y copiar. Para visualizar se puede mostrar el contenido del
Archivo al usuario, pero no cuenta con los medios para copiarlo.
▪ Adición: se le permite sumar datos al Archivo casi siempre al final, se le prohíbe
modificar o borrar el contenido del Archivo la adición es útil en recopilación de datos
de varias fuentes.
▪ Actualización: se permite modificar dar de alta o baja datos del Archivo. Este
derecho incluye la escritura del Archivo al comienzo, la reescritura entera, o en parte
y la baja de todos o algunos de los datos. Hay sistema que diferencian varios grados
de actualización.
▪ Cambio de protección: se le permite cambiar los derechos de acceso cedidos a
otros usuarios. Este derecho es retirado solo por el propietario, aunque hay sistemas
que permiten al propietario ceder este derecho a otros usuarios. Para evitar el abuso
de uso del derecho el propietario puede especiar que derechos se pueden cambiar
por el poseedor de este derecho.
▪ Borrado: se le permite borrar el Archivo del sistema de Archivo. Este derecho puede
crear una Jérica, cada una incluyendo a todos los que le precede. Si un usuario
adquiere un derecho también adquiere los que estén antes que él.
Generalmente las personas que crean un Archivo son designadas como propietario
que cuenta con todos los derechos de acceso y puede ceder derechos a los otros.
Hay acceso a estas clases de usuarios:
: usuarios individuales por su ID de usuario.
Grupo de usuario: conjunto de ellos no definidos individualmente. El sistema tendrá
que tener algún medio para guardar contenido de la concurrencia de los grupos de
usuario
Todos: todos los usuarios que tengan acceso al sistema. Archivo público.
4.2 Accesos Simultáneos
Cuando se da acceso para añadir o actualizar un archivo a más de un usuario; el
s.o. o el sistema de gestión de Archivos hace ampliar una disciplina en método mayor
es permitir a los usuarios bloquear el Archivo entero cuando lo vayan a actualizar.
Otros más eficientes son bloquear los registros individuales durante la actualización.
13
5.
BLOQUES Y REGISTROS
Registros: constituyen la unidad lógica de acceso a los Archivos.
Bloques: representan la unidad de E/ S para almacenamiento secundario.
Para realizar E/ S los registros se organizan en bloques.
Se pueden considerar los siguientes aspectos:
Longitud del Bloque: en la mayoría de los sistemas, los bloques son de longitud fija.
Esto significa la E/ S, la asignación de la memoria intermedia (buffer) van en la
memoria principal, y la organización de los bloques en la memoria segundaria.
Tamaño de los Bloques en comparación de un registro: cuando mayor sea el bloque
mas registro se trasladan en una operación E/ S esto es una ventaja si el
procesamiento es secuencial ya que las operaciones de E/ S se reducen, pero si el
acceso es aleatorio y no se observa cercanía de referencias, el uso de bloques
mayores redunda en una transferencia de registros sin usar. Sin embargo si se
combinan la frecuencia de las operaciones secuénciales con la posibilidad de
cercanía de referencia, entonces el tiempo de transferencia de E/S sé reduce.
5.1 Tamaño del Bloque: Métodos de Agrupación
1. Bloque Fijo: se usa registros de longitud fija y en cada bloque un número entero
de registro. Puede existir espacio sin usar al final de cada bloque. Esto se
denomina fragmentación interna.
2. Bloque Expandidos de Longitud Variable: se usan registros variables que se
agrupan en bloques sin dejar espacio. De este modo algunos registros deben
abarcar dos bloques, indicando el tramo de continuación con un puntero al
bloque siguiente
3. Bloque de Longitud Variable sin Tramo: se usan registros de longitud variable,
pero no se divide en tramos. En la mayoría de los bloques habrá un espacio
desperdiciado.
Los bloques de tamaño fijo son el modo más común de Archivos secuénciales con
registros de longitud variable. Los bloques de longitud variable con tramo constituyen
14
un almacenamiento eficaz y no ponen límite al tamaño de los registros. Los registros
que ocupan dos bloques necesitan dos operaciones de E /S y los archivos se hacen
difícil de actualizar. Los bloques de longitud variable sin tramo producen un
desperdicio de espacio y limitan el tamaño del registro al tamaño del bloque.
En un entorno de memoria virtual, es deseable que la unidad de transferencia sea la
página. Generalmente, las páginas son pequeñas, de forma que es poco práctico
tratarlas con bloques sin tramo. Así también algunos sistemas combinan múltiples
páginas para crear un bloque para la E/ S de Archivos.
6.
GESTIÓN DE ALMACENAMIENTO SECUNDARIO
En la memoria secundaria, un Archivo consta de un conjunto de bloques. El sistema
de gestión de Archivos del sistema operativo es responsable de la asignación de los
bloques de Archivos.
Hay dos cuestiones a considerar. Primero se debe asignar el espacio de memoria
secundaria a los archivos, luego, es necesario guardar constancia del espacio
disponible para asignar. Veremos q estas dos tareas esta relacionadas.
6.1 Asignación de Archivos
En la asignación de archivos surgen varias cuestiones:
1. Cuando se crea un nuevo Archivo, ¿se asigna de una sola vez el máximo espacio
que necesita?
2. El espacio se asigna aun Archivo en forma de una o más unidades contiguas, que
se llaman secciones. El tamaño de una sección puede variar desde un único
bloque a un Archivo entero. ¿Qué tamaño de sección debería usarse rara asignar
Archivos?
3 ¿Qué tipo de estructura de datos o tabla se usará para guardar constancia de las
secciones asignadas a un Archivo? Dicha tabla se conoce normalmente como tabla
de asignación de Archivos (FAT, File Allocation Table)
Veamos estas cuestiones:
15
6.1.1 Preasignación Frente a la Asignación Dinámica
Una política de asignación previa requeriría que el tamaño máximo de un Archivo se
declarase en el momento de crearla. En algunos casos, corno al compilar los
programas, al crear Archivo de datos de resumen o al transferir un Archivo desde otro
sistema por una red de comunicaciones, este valor puede estimarse. Sin embargo,
para muchas aplicaciones es difícil, si no imposible, estimar de manera fiable el
posible tamaño máximo del Archivo. En esos casos, los usuarios y programadores de
aplicaciones se inclinarían por sobrestimar el tamaño dcl Archivo de forma que no sé
quedaran sin espacio. Evidentemente. Esto es un derroche desde el punto de vista de
la asignación de memoria secundaria. Por lo tanto, existen ventajas en el uso de la
asignación dinámica, que asigna espacio a los archivos en secciones a medida que
se necesitan.
6.1.2 Tamaño de Porción
La segunda cuestión de la lista anterior es la del tamaño de la sección asignada a los
Archivos. En un extremo, se puede asignar una sección suficientemente grande para
guardar el Archivo entero. En el otro extremo, se asigna el espacio en disco de
bloque en bloque. Al elegir el tamaño de sección, debe haber un equilibrio relativo a
la eficiencia desde el punto dc vista de un solo Archivo frente al del sistema global,
considera los siguientes cuatro elementos en esta elección:

La contigüidad del espacio aumenta el rendimiento, especialmente para las
operaciones de Recuperar-Siguiente y, sobremanera, para ejecutar Las
transacciones de un sistema orientado a transacciones.

Disponer de un gran número de secciones pequeñas aumenta el tamaño de
las tablas necesarias para gestionar la asignación de información.

Disponer de secciones de tamaño fijo (por ejemplo, bloques) simplifica la
reasignación del espacio.

Disponer de secciones de tamaño variable o secciones pequeñas de tamaño
fijo minimiza la pérdida de espacio no usado provocada por la sobre
asignación.
Estos elementos interactúan entre sí y deben considerarse en conjunto. Como resultado se tienen dos opciones principales:
16

Secciones contiguas variables y grandes: ésta opción ofrecerá un rendimiento
mejor. El tamaño variable evitará la pérdida 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 necesiten.
Cualquier opción es compatible con la asignación previa o con la asignación
dinámica. En el primer caso, se asigna previamente a los archivos un grupo contiguo
de bloques. Esto elimina la necesidad de una tabla de asignación de archivos, todo
lo que se necesita es un puntero al primer bloque y el número 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.
Las siguientes son algunas de las estrategias alternativas posibles:

Primer ajuste (first fit): elegir el primer grupo de bloques contiguos sin usar
de tamaño suficiente.

Mejor ajuste (best fit): elegir el grupo más pequeño sin usar que tenga
tamaño suficiente.

Ajuste más cercano (nearest fit): elegir el grupo más pequeño sin usar de
tamaño suficiente que esté más cerca al asignado previamente al Archivo
para aumentar la cercanía.
6.1.3 Métodos de Asignación de Archivos
Después de ver el estudio sobre asignación previa y dinámica y el tamaño de sección
estamos en condiciones de considerar métodos específicos de asignación de
Archivos. Son de uso común tres métodos:
Con asignación continua, cuando se crea un Archivo, se le asigna un único conjunto
contiguo dc bloques Por lo tanto, esta es una estrategia de asignación previa que
emplea secciones de tamaño variable. La tabla de asignación de Archivo necesita
sólo una entrada por cada Archivo y que muestre el bloque de comienzo y la
longitud del Archivo. Desde el punto de vista de un Archivo secuencial individual esta
asignación es la mejor, pero presenta algunos problemas: se produce fragmentación
externa haciendo difícil encontrar bloques contiguos de espacio de tamaño
suficiente. De vez en cuando se deberá ejecutar un algoritmo de compactación
para liberar espacio adicional en el disco. Además se debe definir en la asignación
17
previa el tamaño del Archivo en el momento de su creación, lo que crea los
problemas antes mencionados.
El opuesto de la asignación contigua es la asignación encadenada: Cada bloque
contendrá un puntero al siguiente bloque de la cadena. La tabla de asignación de
Archivos necesita de nuevo una sola entrada por cada Archivo que muestre el
bloque de comienzo y la longitud del mismo. Aunque es posible la asignación previa,
es más común simplemente asignar bloques a medida que se necesiten. Entonces es
sencillo, cualquier bloque libre puede añadirse a la cadena. Así no hay que
preocuparse por la fragmentación externa porque sólo se necesita un bloque cada
vez. Este tipo de organización se ajusta mejor a los Archivos secuenciales que serán
procesados secuencialmente.
Una consecuencia del encadenamiento es que no hay cabida para el principio de
cercanía, ya que si se produce fragmentación el traer varios bloques de un Archivo al
mismo tiempo se podría necesitar accesos a diferentes partes del disco. Esto podría
ser considerable en sistemas que necesiten respuesta rápida de los archivos. Para
cubrir este problema, algunos sistemas consolidan (agrupar) periódicamente los
Archivos.
En la asignación indexada la tabla de asignación Archivos contiene un índice
separado de un nivel para cada Archivo; el índice posee una entrada para cada
sección asignada al mismo. Normalmente los índices no están almacenados
físicamente como parte de la tabla de asignación de archivos. Más exactamente, el
índice del Archivo se guardará en un bloque aparte y la entrada del mismo en la
tabla de asignación apuntará 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.
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.
6.2 Gestión del Espacio Libre
Al igual que el espacio asignado a los Archivos, se debe gestionar el espacio que no
está asignado actualmente a ninguno de ellos. Para llevar a cabo cualquiera de las
técnicas de asignación que se han descrito, es necesario saber qué bloques del disco
18
están disponibles. Por lo tanto hace falta una Tabla de asignación de disco además
de una tabla de asignación de Archivos. Técnicas q se han implementado
6.2.1 Tablas de bits
Este método utiliza un vector que contiene un bit por cada bloque del disco. Cada
entrada igual a 0 corresponde a un bloque libre y cada entrada igual a 1
corresponde a un bloque en uso, por ejemplo la disposición del disco de la figura 12.7
se necesitaría un vector de longitud 35 que tendría el siguiente valor:
001110000111110000111111111111011000
La ventaja es que es relativamente fácil encontrar un bloque o un grupo contiguo de
bloques libres. Otra ventaja que puede ser tan pequeña como sea posible. Sin
embargo, puede hacerse grande. La cantidad de memoria (en bytes) requerida
para un mapa de bits en bloques se puede calcular de la siguiente manera:
Tamaño del disco en bytes
_______________________________________
8 X tamaño del bloque en el sistema de archivos
Así, un disco de 16 Gb con bloques de 512 bytes, la tabla ocupará 4 Megabytes, lo
cual podrá acceder a la tabla de bits sin necesidad de acceder al disco. Pero aun
con los tamaños actuales de discos rígidos, el tamaño asignado a bloques de bits es
considerable para una sola función. No se puede permitir una búsqueda en esa
cantidad de espacio del disco cada vez que se necesita un bloque, por lo tanto es
recomendable una tabla de bits residente en memoria.
Aun con esta alternativa, una búsqueda exhaustiva de la tabla puede reducir en un
grado inaceptable el rendimiento del sistema de Archivos. Esto es especialmente
cierto cuando el disco está casi lleno y hay pocos bloques libres.
19
6.2.2 Secciones Libres Encadenadas
Las secciones libres pueden encadenarse juntas mediante un puntero y un valor de
longitud en cada sección libre. Este método tiene un gasto insignificante porque no
hay necesidad de tabla de asignación de disco, sino solamente 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,
solamente 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 hacerse el algoritmo de primer ajuste (first fit): se leen las cabeceras
de la sección una a una para determinar la siguiente sección de la cadena que se
ajuste. De nuevo hay que retocar el puntero y las longitudes.
Este método tiene sus propios problemas. Después de cierto tiempo de uso, el disco
estará fragmentado y muchas secciones serán de un solo bloque. También hay que
notar que cada vez que se 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. Si para una operación sobre un Archivo se necesita asignar muchos bloques
individuales en un mismo instante de tiempo, se ralentizará mucho la creación del
Archivo. De forma similar, el borrado de un Archivo altamente fragmentados
consume demasiado tiempo.
6.2.3 Indexación
El método de indexación trata el espacio libre como si fuera un Archivo y utiliza una
tabla índice como la descrita en la asignación de Archivos. Por razones de eficiencia,
el índice debe trabajar con secciones de tamaño variable mejor que con bloques.
De este modo habrá una entrada en la tabla para cada sección libre del disco. Este
método ofrece un soporte eficaz para todos los métodos de asignación de Archivos.
6.2.4 Lista de Bloques Libres
En este método, 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.
Dependiendo del tamaño del disco, cada 24 o 32 bits se necesitará almacenar el
número de un solo bloque, así el tamaño de la lista de bloques libres es 24 o 32 veces
el tamaño de la tabla de bits correspondiente y así se puede almacenar sobre el
20
disco mejor que en la memoria principal. Sin embargo este es un método bastante
satisfactorio.
6.3 Fiabilidad
Consideremos el siguiente escenario:
1. El usuario A solicita una asignación para añadir datos a un Archivo existente.
2. La petición se atiende y se actualizan en la memoria principal las tablas de
asignación de Archivos y archivos, pero no aun en el disco.
3. El sistema se hunde y a continuación se reinicia.
4. 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.
5. El usuario A accede a la sección solapada mediante una referencia que está
almacenada en el Archivo de A.
Esta dificultad surge debido a que, 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:
1. Bloquear en el disco la tabla de asignación de disco. Esto impedirá a otro usuario
alterar la tabla hasta que la asignación actual se complete.
2. Buscar espacio disponible en la tabla de asignación de disco. Se supone que se
mantiene siempre en la memoria principal una copia de la tabla de asignación
de disco. Si fuese así, primero debe leerse ésta del disco.
3. 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
del disco. Con asignación encadenada, también se necesita actualizar algunos
punteros del disco.
4. Actualizar la tabla de asignación de Archivos y actualizar el disco.
5. Desbloquear la tabla de asignación de disco.
Esta técnica impedirá los errores, sin embargo cuando se asignan pequeñas
secciones de manera frecuente, el impacto en el rendimiento será sustancial. Para
reducir este gasto, puede asignarse 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
21
puede llevarse a cabo en la memoria principal. Cuando se agota un lote, se
actualiza en el disco la tabla de asignación de disco y se adquiere un lote nuevo. Si
se produce un fallo del sistema, las secciones del disco marcadas como “en uso”
deben limpiarse de alguna forma antes de ser reasignadas. La técnica de limpieza
dependerá de las características del sistema de Archivos en particular.
7-GESTIÓN DE ARCHIVOS EN UNÍX
El núcleo (Kernel) de UNIX contempla a todos lo archivos como flujos de bytes.
Cualquier estructura lógica interna será específica de la aplicación. Sin embargo,
UNIX se ocupa de la estructura física de los Archivos.
Se distinguen cuatro tipos de Archivos:
Ordinarios: son Archivos que contienen información introducida por un usuario, un
programa de aplicación o un programa del sistema.
Directorio: contiene una lista de nombre de Archivos y punteros a nodos-i (nodos
índices) asociados. Los directorios están organizados jerárquicamente. Los Archivos
de directorio son en realidad Archivos ordinarios con unos privilegios especiales de
protección de forma que solo el sistema de Archivos puede escribir en ellos, mientras
que los programas de usuarios disponen de acceso para lectura.
Especiales: usados para acceder a dispositivos periféricos, como terminales e
impresoras. Cada dispositivo de E/S esta asociado a un Archivo especial.
Tuberías con Nombre: tubos con nombre. Una tubería es una utilidad de
comunicación entre procesos, guarda en un buffer los datos de su entrada de forma
que un proceso que lea de la salida de la tubería reciba los datos del mismo modo
que si leyera de una cola FIFO.
7.1 Nodos-I
Todos los tipos de Archivos UNIX son administrados por el sistema operativo por medio
de nodos-I. Un nodo-I es una estructura de control que contiene la información clave
de un Archivo necesario para el sistema operativo. Pueden asociarse varios nombres
de Archivo a un mismo nodo-I, pero un nodo-I activo se puede asociar con un único
Archivo y cada Archivo es controlado por un solo nodo-I.
Los atributos del Archivo, así como sus permisos y otra información de control, se
almacenan en el nodo-I.
22
7.2 Asignación de Archivos
Los Archivos se asignan en bloques. La asignación es dinámica, a medida que se
necesita. No se emplea asignación previa. Por lo tanto, los bloques de un Archivo no
tienen por qué estar contiguos necesariamente. Se usa un método de indexación
para seguir la pista de cada Archivo, con parte del índice almacenada en el nodo-i
del Archivo. El nodo-i incluye 39 bytes de información de dirección, organizadas
como 13 direcciones o punteros de 3 bytes. Las primeras 10 direcciones apuntan a los
primeros 10 bloques de datos del Archivo. Si el Archivo es mayor de 10 bloques, se
usan uno a más niveles indirectos, de la forma siguiente:
● La dirección undécima del nodo-i apunta a un bloque del disco que contiene la
siguiente parte del índice. Este bloque se conoce como el bloque indirecto simple.
Este bloque contiene los punteros a los siguientes bloques del Archivo.
● Si el Archivo contiene más bloques, la dirección duodécima del nodo-i apuntará a
un bloque indirecto doble. Este bloque contiene una lista de direcciones de bloques
indirectos simples adicionales. Cada uno de los bloques indirectos simples contiene a
su vez punteros a los bloques del Archivo.
● Si el Archivo contiene aún más bloques, la dirección decimotercera del nodo-i
apuntará a un bloque indirecto triple que consiste en un tercer nivel de indexación.
Este bloque apunta a bloques indirectos dobles adicionales.
Podemos ver la ilustración en la figura 7.1
El número total de bloques de un Archivo dependerá de la capacidad de los bloques
de tamaño fijo del sistema. En UNIX SV, la longitud de un bloque es de 1Kb y cada
bloque puede albergar un total de 256 direcciones de bloques. Por lo tanto, el
tamaño máximo de un Archivo usando este esquema se aproxima a los 16 Gbytes.
23
Nivel
Número de bloques
Número de bytes
Directo
10
10 Kb
Indirecto simple
256
256 Kb
Indirecto doble
256 x 256 = 65 K
65 Mb
Indirecto triple
256 x 65K = 16 M
16 Gb
Capacidad de un Archivo de UNÍX
Este esquema tiene varias ventajas y son las siguientes:
● Los nodos-i son de tamaño fijo y relativamente pequeños, por lo que pueden
guardarse en la memoria principal durante periodos largos.
● Se puede acceder a los Archivos de modo directo o indirecto, reduciendo así el
procesamiento y el tiempo de acceso al disco.
● El tamaño máximo teórico de un Archivo es suficientemente grande como para
satisfacer a casi todas las aplicaciones.
7.3 DIRECTORIOS
Los directorios se estructuran como un árbol. Cada directorio contiene Archivos y/ u
otros directorio. Un directorio que se encuentra dentro de otro directorio se
denomina subdirectorio.
Como se menciono anteriormente, un directorio es simplemente un Archivo que
contiene una lista de nombres de Archivos mas punteros a nodos-i asociados. Cada
entrada de directorio ( entrada D) contiene con nombre para el Archivo asociado o
subdirectorio mas un entero llamado el numero-i (numero índice). Cuando se
accede al Archivo o directorio, su numero-i utiliza como índice en la tabla de nodos-i
24
7.4 ESTRUCTURA DEL VOLUMEN
Un sistema de Archivos UNÍS reside en un único disco lógico o partición de disco y se
compone de los siguientes elementos:

BLOQUE DE ARRANQUE contiene el código requerido para arrancar el
sistema operativo.

SUPERBLOQUE contiene atributos e información sobre el sistema de
Archivos, tal como el tamaño de la participación y el tamaño de la tabla
de nodos-i

TABLA DE NODOS-I la colección de los nodos-i para cada Archivo.

BLOQUE DE DATOS
el espacio de almacenamiento disponible para
cada Archivo de datos y subdirectorios.
8-Sistema de Archivos Virtual Linux
Linux incluye una utilidad versátil y potente para gestión de Archivos .El enfoque
usado en Linux consiste en hacer uso del sistema de Archivos virtual (VFS) que
presenta una única y uniforme interfaz de sistema de Archivos para los procesos de
usuario .VFS define un modelo de Archivos común que es capaz de representar
cualquier característica general y comportamiento de un sistema de Archivos
concebible .VSF asume que los Archivos son objeto de un almacenamiento masivo
del computador que comparten propiedades básicas sin tener en cuenta el sistema
de Archivos concreto o el hardware subyacente .Los Archivos tienen nombres
simbólicos que les permiten identificarse de forma única dentro de un directorio
especifico en el sistema de Archivos. Un Archivo tiene un propietario ,protección
frente a accesos o modificaciones no autorizadas y otras propiedades .Un Archivo se
puede crear, leer ,escribir o borrar .Para cualquier sistema de Archivo especifico ,se
necesita un modulo de proyección que transforme las características del sistema de
Archivos real a las características esperadas por el sistema de Archivos virtual.
VFS es un esquema orientado a objetos .Debido a que esta escrito en C, en lugar de
en un lenguaje que de soporte a la programación de objetos (como C++ o JAVA), los
objetos VFS se implementan como estructuras de datos C. Cada objeto contiene
tanto datos como punteros a las funciones implementadas del sistema de Archivos
que operan sobre los datos. Los cuatro tipos de objetos primarios en VFS son los
siguientes:
25
1-Objeto superbloque.
2-Objeto nodo-i.
3-Objeto entrada de directorio.
4-Objeto de Archivo.
Este esquema se basa en los conceptos utilizados en el sistema de Archivo de UNIX.
8.1-El Objeto Superbloque
El objeto superbloque almacena información que describe un sistema de Archivos
especifico .El superbloque corresponde al superbloque del sistema de Archivos
bloque de control del sistema de Archivos, que se almacena en un sector especial en
el disco.
El objeto superbloque esta formado por varios elementos de datos .Ejemplos de
estos elementos incluyen los siguientes:
*El dispositivo sobre el cual el sistema de Archivos esta montado.
*El tamaño de bloque básico del sistema de Archivos.
*El dirty flag que indica que se ha cambiado el superbloque pero no se ha escrito
a disco.
*Tipo de Archivo.
*Flags como el de solo lectura.
*Puntero al directorio raíz del sistema de Archivos.
*Lista de Archivos abiertos.
*Semáforo para controlar el acceso al sistema de Archivos.
*Lista de operaciones de superbloque.
El último elemento de la lista precedente se refiere a un objeto de operaciones
contenido en el objeto superbloque .El objeto operación define los métodos de
objeto (funciones) que el núcleo puede invocar sobre el objeto superbloque .Los
métodos definidos para el objeto superbloque incluyen las siguientes:
●* read_inode .Leer un nodo-i especifico desde un sistema de Archivos montado.
●* write_inode. Escribir un nodo-i dado a disco.
●*put_inode.Obtener un nodo-i.
●* delete_inode. Borrar un nodo-i del disco.
●*notify_change. Invocado cuando se cambian los atributos.
●*put_super. Llamado por VFS cuando el sistema de Archivos esta desmontado, para
obtenerle superbloque.
●*write_super. Invocado cuando VFS decide que el superbloque necesita escribirse a
disco.
●*status. Obtiene las estadísticas del sistema de Archivos.
●*remount_fs. Llamado por VFS cuando el sistema de Archivos es motado de nuevo
con nuevas opciones de montaje.
26
●*clear_inode. Obtener nodo-i y borrar cualquier pagina que contenga datos
relacionados.
8.2-El Objeto Nodo-i
Un nodo-i esta asociado con cada Archivo .El objeto nodo-i contiene la información
sobre un determinado Archivo excepto su nombre y el contenido real del Archivo .Los
elementos contenidos en un objeto nodo-i incluyen el propietario, grupo, permisos,
tiempos de acceso para un Archivo, tamaño de los datos que contiene y numero de
enlaces.
El objeto nodo-i también incluye un objeto operaciones de nodo-i, que describe las
funciones implementadas en el Archivo VFS que puede invocar sobre el nodo-i .los
métodos definidos por el objeto nodo-i incluyen los siguientes:
Create. Crear un nodo-i nuevo para un Archivo regular asociado con un objeto
entrada D en algún directorio.
Lookup. Buscar en un directorio el nodo-i correspondiente a un nombre de Archivo.
Mkdir. Crear un nuevo nodo-i para un directorio asociado aun objeto entrada D en
algún directorio.
8.3-El Objeto Entrada D
Una entrada D (entrada de directorio) es un componente específico de una ruta. El
componente puede ser un nombre de directorio o un nombre de Archivo. El objeto
de entrada D facilita el acceso a los Archivos y directorios y se utilizan en un cache de
entrada D para dicho propósito.
8.4-El Objeto Archivo
El objeto Archivo se utiliza para representar un Archivo abierto por un proceso. El
objeto se crea en respuesta a la llamada al sistema open () y se destruyen en
respuesta a la llamada al sistema close(). El objeto Archivo esta formado por un
conjunto de elementos, que incluye los siguientes:
- Objeto entrada D asociado con el Archivo.
- Sistema de Archivos que contiene el Archivo.
27
- Contador de uso del objeto Archivo.
- Identificador del usuario.
- Identificador de grupo del usuario.
Puntero de posición del Archivo, que es la posición actual en el Archivo desde la cual
tendra lugar la siguiente operación.
El objeto Archivo también incluye un objeto operaciones de nodo-i, que describe las
funciones implementadas en del sistema de Archivos que VFS puede invocar sobre el
objeto Archivo. Los métodos definidos para el objeto Archivo incluyen la lectura,
escritura, apertura, creación y bloqueo.
9-Sistemas de Archivos de WINDOWS
Windows soporta varios sistemas de Archivos, incluyendo el de la tabla de asignación
de Archivos (FAT) que se ejecutaba sobre Windows 95, MS-DOS, y OS/2. Pero los
diseñadores de Windows también diseñaron un nuevo sistema de Archivos, el sistema
de Archivos Windows (NTFS), que intenta cumplir los requisitos de estaciones de
trabajo y servidores. Como ejemplos de aplicaciones de alto nivel están las siguientes:
♦ Aplicaciones Clientes /Servidor tales como servidores de Archivos, servidores de
procesamiento y servidores de bases de datos.
♦ Ingeniería de recursos intensivos y aplicaciones científicas.
♦ Aplicaciones de redes para grandes sistemas corporativos.
9.1 Características Clave de NTFS
NTFS es un sistema de Archivos potente y flexible construido, como se vera, sobre un
modelo de sistema de Archivos simples y refinado. Las características más notables de
NTFS incluyen las siguientes:
Recuperabilidad: el primero en la lista de requisitos del nuevo sistema de Archivos
Windows fue la capacidad para recuperarse de las caídas del sistema y de los fallos
del disco. En caso de estos fallos, NTFS es capaz de reconstruir los volúmenes de disco
y devolverlos a un estado consistente. Esto lo consigue por medio de un modelo de
28
proceso de transacciones para los cambios en los sistemas de Archivos; cada cambio
significativo se trata como una acción atómica que se ejecuta totalmente o no se
ejecuta. Cada transacción que estaba en ejecución en el momento del fallo se
retrocede o se completa. Además, NTFS utiliza un almacenamiento redundante para
los datos críticos del sistema de Archivos, de esta manera el fallo de un sector del
disco no causa la pérdida de los datos que describen la escritura y el estado del
sistema de Archivos
Seguridad: NTFS utiliza el modelo de objetos Windows 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 más eficientemente que la mayoría de los sistemas de Archivos,
incluyendo FAT.
Serie de datos múltiples: el contenido actual de un Archivo se trata como una serie
de bytes. En NTFS es posible definir múltiples series de datos para un solo Archivo. Un
ejemplo de la utilidad de esta característica es que permite utilizar Windows a un
sistema remoto Macintosh para almacenar y recuperar Archivos. Sobre Macintosh,
cada Archivo tienen dos componentes: un Archivo de datos y un recurso fork que
contiene información acerca del Archivo, NTFS trata estas dos componentes como
dos series de datos.
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í que los Archivos se
pueden indexar por cualquier atributo.
9.2-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 más sectores contiguos (siguientes cada uno al otro en
la misma pista). El tamaño del agrupamiento en sectores es una potencia de 2.
Volumen: una partición lógica sobre el disco, que consta de uno o más
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. Si se emplea el
hardware o el software RAID 5, un volumen estará formado por una serie de bandas
en varios discos. El tamaño máximo de volumen para NTFS es de 264 bytes.
29
El agrupamiento es la unidad fundamental de asignación en NTFS, que no reconoce
sectores. Por ejemplo, se supone que cada sector tiene 512 bytes y el sistema se
configura con dos sectores por agrupamiento (un agrupamiento = 1K bytes). Si un
usuario crea un Archivo de 1.600 bytes, se asignan al Archivo dos agrupamientos. Más
tarde, si el usuario actualiza el Archivo a 3.200 bytes, se le asignan otros dos
agrupamientos. La asignación de agrupamientos no necesita ser contigua; se permite
fragmentar un Archivo sobre el disco. Generalmente, el tamaño máximo de Archivo
soportado por NTFS es 232 agrupamientos, lo cual es equivalente a un máximo de 248
bytes.
El uso de agrupamientos para 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 grandes mediante el
uso de un tamaño de agrupamiento más 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 más grandes, hay menos campos para gestionar.
9.3-Estructura de un Volumen NTFS
NTFS utiliza un método notablemente sencillo pero potente para organizar la
información sobre un volumen de disco. Cada elemento en un volumen es un Archivo
y cada Archivo consta de un conjunto de atributos. Incluso los datos que contiene un
Archivo se tratan como un atributo. Con esta estructura sencilla unas cuantas
funciones de propósito general son suficientes para organizar y gestionar el sistema de
Archivo.
Tamaño de agrupamiento y de partición en Windows NTFS
Tabla del volumen
Sectores por
agrupamiento
Tamaño de agrupamiento
< = 512 Mbytes
1
512 bytes
512 Mbytes – 1 Gbyte
2
1K
1 Gbyte – 2 Gbytes
4
2K
2 Gbytes – 4 Gbytes
8
4K
4 Gbytes – 8 Gbytes
16
8K
8 Gbytes – 16 Gbytes
32
16K
16 Gbytes – 32 Gbytes
128
64K
30
La disposición de un volumen NTFS esta formado por cuatro regiones. Los primero
sectores de un volumen están formados por la partición del sector de arranque
(aunque se denomina sector, puede tener hasta 16 sectores de longitud), que
contiene información acerca de la disposición del volumen y de las estructuras del
sistema de Archivos así como la información y el código de arranque. A continuación
está la tabla maestra de Archivos (MFT, Master File Table), la cual contiene la
información acerca de todos los Archivos y carpetas (directorios) de este volumen
NTFS así como la información acerca del espacio disponible. En esencia la MFT 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.
A continuación de la MFT está una región, normalmente de alrededor 1 Mbyte, que
contiene los Archivos del sistema. Entre los archivos de esta región figuran los
siguientes:
MFT2: un espejo de las tres primeras filas de la MFT, utilizado para garantizar el acceso
a la MF en el caso de un fallo de ese sector.
Archivo de registro: una lista de los pasos de transacciones utilizados para la
recuperabilidad de NTFS.
Mapa de bits de agrupamientos: una representación del volumen, mostrando que
agrupamientos están en uso.
Tabla de definición de atributos: define los tipos de atributos soportados en este
volumen e indican si se puede indexar y se pueden recuperar durante una operación
de recuperación del sistema.
9.3.1-Tabla Maestra de Archivos
La parte más importante del sistema de Archivos Windows es la MFT. La MFT está
organizada como una tabla de filas de longitud variable, denominadas registros.
Cada fila describe un Archivo o una carpeta en este volumen, incluyendo a la propia
MFT, que se trata como otros Archivos. Si los contenidos de un Archivo son demasiado
pequeños, entonces se ubica el Archivo entero en una fila de la MFT. Si no, la fila para
ese Archivo contendrá una parte de la información y el resto del Archivo se
desbordará sobre otro agrupamiento libre de volumen, con punteros a esos
agrupamientos en la fila MFT de ese Archivo.
Cada registro en la MFT consta de un conjunto de atributos que sirven para definir las
características del Archivo (o carpeta) y el contenido del Archivo.
31
9.4-Recuperación
NTFS hace lo posible para devolver el sistema de Archivos a un estado consistente
después de una caída del sistema o un fallo del disco. Los elementos clave para
ofrecer recuperabilidad son los siguientes:
Gestor de E/S: incluye el controlador NTFS, que gestiona las funciones básicas de NTFS
para la apertura, cierre, lectura y escritura. Además, se puede configurar el uso de
RAID por software FTDISK.
Servicio de Archivo de registro: mantiene un registro de escrituras a disco. El Archivo
de registro se utiliza para recuperar un volumen con formato NTFS en el caso de un
fallo en el sistema.
Gestor de cache: es el responsable de leer y escribir los Archivo situados en la caché
para aumentar el rendimiento. El gestor de caché optimiza la E/S a disco utilizando las
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 lectura y
escrituras en la memoria virtual. (Fig 8.2)
Es importante destacar que los procedimientos de recuperación utilizados por NTFS
están diseñados para recuperar los datos del sistema de Archivos, no el contenido de
los Archivos. Por ello, el usuario no debería perder nunca un volumen o la estructura
de un Archivo/ directorio de una aplicación por causa de una caída. Sin embargo,
los datos de usuario no están garantizados por el sistema de Archivos. Ofrecer una
recuperabilidad completa, incluidos los datos de usuario, haría mucho más
elaborada la utilidad de recuperación y produciría un mayor consumo de recursos.
La esencia de la capacidad de recuperación de NTFS 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 cada suboperación de una transacción que
modifica estructuras de datos importantes del sistema de Archivos antes de grabarla
en el volumen del disco. Por medio del registro, una transacción parcialmente
completada en el instante de la caída puede rehacerse o deshacerse más tarde,
cuando se recupere el sistema.
En términos estos son los pasos a dar para asegurar la recuperabilidad, como
describe [CUST94]:
NTFS primero llama al registro del sistema de Archivos para grabar en el Archivo el
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 registros al disco.
Una vez que el Archivo de registro actualizado está seguro en el disco, el gestor de
caché lleva los cambios del volumen al disco.
32
Básicamente un sistema de Archivos es el software de sistema, componente del
sistema operativo, que proporciona servicios a usuarios y aplicaciones para el uso de
Archivos, conservación de Archivos y control de accesos. Normalmente, 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.
Ahora, tenemos diferentes formas de organizar los Archivos en los discos, siempre con
el objetivo de poder recuperarlos lo más rápido posible. En esto apuntan
principalmente los algoritmos de organización/ recuperación de Archivos.
Una función clave de cualquier esquema de gestión de Archivos es la gestión de del
espacio en el disco. Una parte de esta función es la estrategia de asignación de
bloques de disco a los Archivos. Se han empleado una amplia variedad de métodos
y de estructuras de datos para guardar constancia de la ubicación de cada
Archivos. También debe gestionarse el espacio en el disco sin asignar.
33
BIBLIOGRAFÍA
CONSULTADA
-Sistema Operativo. Cáp.12 Gestión de Archivos
5ta Edición Stalling
Descargar