lunes, 6 de septiembre de 2010

Objetivos

Tratar las estructuras y principales características de los sistemas de archivos, ya quwe este esd uo de los temas mas importante en nuestra asignatura de sistema operativo III.

Files

1.    Field (campo)
2.    Record (registro)
3.    Field (archivo)
4.    Database ( Base de Datos)

1.    Un campo (Field) es el elemento de datos básico. Un campo individual contiene un valor único. Esta caracterizado por su longitud y por el tipo de datos. Dependiendo del diseño del archivo, los campos pueden ser de tamaño fijo o variable. Un campo pueden contener un subcampo.
2.    Registro (Record) es una colección de campos relacionados que pueden tratarse como una única unidad por un programa de aplicación. Por ejemplo:, un registro de empleados va contener campos como nombre, numero de seguridad social, etc.
También dependiendo del diseño, los registros pueden ser de longitud fija o de longitud variable. Un registro va a tener una longitud variable si algunos de los campos son de tamaños variables o si el numero de campos es variable. Cada campo tiene un nombre de campo.
1.    Archivo (File) es una colección de registros similares. El archivo es tratado como una entidad individual por los usuarios y las aplicaciones y puede ser referenciada por el nombre. Los archivos tienen nombres únicos y pueden crearse y borrarse. En un sistema compartido, los usuarios y los programas tienen garantizado o denegado el acceso a archivos completos. En algunos sistemas más complejos, dicho control se aplica a los registros o a los campos.
2.    Base de datos(database) es una colección de datos relacionados. El aspecto esencial de la base de datos es que la relación que existe entre los elementos de datos es explícita y la base de datos es diseñada para usarse en un numero diferente de aplicaciones. Una base de datos puede contener toda la información relacionado a una organización o proyecto, corno un estudio de mercado o científico. La base de datos consiste en uno o más tipos de archivos.
Los usuarios y aplicaciones desean usar los archivos. Las operaciones típicas que deben soportarse incluyen las siguientes:
1.    Recuperar Todo ( Retrieve_all): Recuperar todos los registros de un archivo. Esto va a requerir de una aplicación que deba procesar toda la información de un archivo una vez.. Esta opcion es usualmente equivalente con el termino de sequential proccessing, ( proceso secuencial), porque todos los registros son accedidos en secuencia.
2.    Recuperar_Uno (Retrieve_One): Esta operacion requiere la recuperación de un solo un registro. Las
soluciones interactivas orientadas a la transacción necesitan esta operación.
1.    Recuperar_siguiente (Retrieve_Next): Esta operación implica la recuperación del registro que es el siguiente ,según una secuencia lógica, el recuperado hace menos tiempo. Un programa que realice búsquedas puede usar también esta operación.
2.    Recuperar Previo (Retrieve_Previous): Es similar a Recuperar Siguiente, pero en este caso el registro que es "previo" al que se esta accediendo en el momento actual.
3.    Insertar Uno (Insert One): Inserta un nuevo registro dentro del archivo. Es necesario que el nuevo registro se ajuste a una posición particular para preservar la secuencia del archivo.
4.    Borrar uno (Delete One): Borra un registro existente. Ciertos enlaces o otras estructuras
puede que necesiten actualizarse para preservar la secuencia del archivo.
1.    Actualizar Uno ( Update_one): Recupera un registro o actualiza uno o más de sus campos, y rescribe la actualización en el archivo. Es necesario preservar la secuencia con esta operación. Sí el tamaño del registro esta cambiado, la operación de actualización es más difícil si el tamaño es preservado.

Sistemas de Gestión de Archivos (File Management Sytems)

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.

Arquitectura de los sistemas de Archivos

( File System Architecture)
Un camino para hacerse una idea del alcance de la gestión de archivos es de mirar una representación típica de la organización del software, como se muestra en la figura de abajo:
Diferentes sistemas van a tener diferente organizaciones pero estas organizaciones son razonablemente representativas. A un nivel mas bajo los manejadores de dispositivos (device drivers) se comunican directamente con los dispositivos de periféricos o con sus canales o controladores. Un controlador dedispositivos es responsable de iniciar las operaciones de E/S en un dispositivo y procesar la terminación de una petición de E/S. Para operaciones de archivos, el controlador típico de dispositivos son discos y unidades de cinta. Los manejadores de los dispositivos son usualmente considerados como parte del sistema operativo.

Funciones de la gestión de archivos (File management Functions)

Los usuarios y las aplicaciones interactúan con el sistema de archivos mediante comandos para crear y borrar archivos y realizar operaciones sobre los archivos. Antes de ejecutar alguna operación, los archivos del sistema deben identificar y localizar el archivo seleccionado. Esto requiere el uso de alguna clase de directorio que es reservado para describir la localización de todos los archivos, mas sus atributos. Además , la mayoría de los sistemas compartidos aplican algún control de acceso a los usuarios: solamente los usuarios autorizados están permitidos para acceder a archivos particulares en determinados lugares. Las operaciones básicas que el usuario o el programa puede ejecutar sobre un archivo se puede realizar a nivel de registro. El usuario o la aplicación ve el archivo con una estructura
que organiza los registros, como una estructura secuencial. De este modo, para traducir las ordenes del usuario a ordenes específicas de manipulación de archivos., debe emplearse el método de acceso apropiado para esta estructura de archivo.

Organización y acceso a archivos (File organizittion and access)

En esta parte vamos a usar el termino organización de archivos para referirnos a la estructura lógica de los registros determinada por la manera en que se accede a ellos. La organización fisica del archivo en almacenamiento secundario depende de la estrategia de agrupación y de la estrategia de asignación de archivos.
Para seleccionar una organización de archivos hay diversos criterios que son importantes:
1.    Acceso Rápido para recuperar la información
2.    Fácil actualización
3.    Economia de almacenamiento
4.    Mantenimiento simple.
5.    Fiabilidad para asegurar la confianza de los datos.
La prioridad relativa de estos criterios va a depender de las aplicaciones que va a usar el archivo.
El numero de alternativas de organización de archivos que se han implementado o propuesto es inmanejable,
incluso para un libro dedicado a los sistemas de archivos.
La mayor parte de las estructuras empleadas en los sistemas reales se encuadran en una de estas categorias o
puede implementarse como una combinación de estas:

1.    Pilas (The pile)
2.    Archivos secuenciales (sequential file)
3.    Archivos Secuenciales indexados. (indexed sequential file)
4.    Archivos indexados.(indexed file)
5.    Archivos directos o de dispersión (direct, or hashed, file).

Pilas

La forma menos complicada de organización de archivos puede denominarse la pila. Los datos se recolectan en el orden en que llegan. Cada registro consiste en una ráfaga de datos. El propósito de la pila es simplemente acumular la masa de datos y guardarlo.
Como no hay estructura para el archivo de la pila. el acceso a registro es por búsqueda exhaustiva..Si se quiere todos los registros que contienen un campo particular o que tienen un valor determinado para ese campo, debe buscarse en el archivo entero.
Los archivos de pilas se aplican cuando los datos se recogen y almacenan antes de procesarlos o cuando no son fáciles de organizar. Este tipo de archivo usa bien el espacio cuando los datos almacenados varían en tamaño y en estructuras. Este tipo de archivos no se adapta a la mayoría de las aplicaciones.

Archivos Indexados

Los archivos secuenciales indexados retienen la limitación del archivo secuencial: la eficacia en el procesamiento se limita al basado en un único campo del archivo. Cuando es necesario buscar un registro basándose en algún otro atributo distinto del campo clave ambas formas de archivo secuencial no son adecuadas. En algunas aplicaciones esta flexibilidad es deseable.
Para alcanzar esta flexibilidad, se necesita una estructura que utilice múltiples índices, uno para cada tipo de campo que pueda ser objeto de la búsqueda.
Se suelen utilizar dos tipos de índices. Uno indice exhaustivo contiene una entrada par cada registro del archivo principal. Otro índice parcial contendrá entradas a los registros donde este el campo de interés. Con registros de longitud variable, algunos registros no contendran todos los campos.
Los archivos indexados son muy utilizados en aplicaciones donde es critica la oportunidad de la informacion y donde los datos son rara vez procesados de forma exhaustiva.

Archivos Directos o de Dispersión

Los archivos directos explotan la capacidad de los discos para acceder directamente a cualquier bloque de dirección conocida. Como en los archivos secuenciales y secuenciales indexados, se requiere un campo clave en cada registro. Sin embargo, aquí no hay concepto de ordenamiento secuencial.

  • 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.

Directorios de Archivo

Asociado con algunos sistemas de gestión de archivos o cualquier colección de archivos suele haber un directorio de archivos. El directorio contiene informnación acerca de los archivos, incluyendo atributos, localización y propietario. Mucha de esta información, especialmente la concernida con el almacenamiento es gestionada por el sistema operativo. El directorio es propiamente un archivo, poseído por el sistema operativo y, accesible a traces de diversas rutinas de gestión de archivos. Aunque alguna información en los directorios esta disponible para los usuarios y aplicaciones, en general , la información se proporciona indirectamente a través de rutinas del sistema. De este modo los usuarios pueden acceder directamente al directorio, incluso en modo de solo lectura.

Designación (Naming)

Los usuarios necesitan poder referirse a un archivo mediante un nombre simbólico. Cada archivo del sistema debe tener un nombre único para que las referencias al archivo no sean ambiguas. Por otro lado, es una carga inaceptable para los usuarios el proporcionar nombres únicos, especialmente en los sistemas compartidos.
El uso de directorios estructurados en arbol minimiza la dificultad de asignar nombres unicos. 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 propio nombre del camino del archivo.
Cada usuario interactivo o proceso tiene asociado un directorio actual, conocido a menudo como directorio de trabajo.

El Compartir Archivos ( File Sharing)

En un sistema multiusuario, casi siempre existe la necesidad de permitir a los usuarios
Compartir archivos. Dos problemas surgen:
1.    Los derechos de accesos
2.    Gestion de 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.

Acceso Simultáneos

Cuando el acceso es concedido para añadir o actualizar un archivo a mas de un usuario, el sistema operativo o el sistema de gestión de archivos debe hacer cumplir una disciplina. Un método de fuerza bruta consiste en permitir a los usuarios bloquear el archivo entero cuando lo vaya a actualizar. Un mejor control es bloquear los registros individuales durante la actualización. Al disertar la posibilidad de accesos comparados, deben abordarse aspectos de exclusión mutua e interbloqueo.

Agrupación de Registros (Record Blocking)

Para realizar E/S, los registros deben organizarse en bloques. Dado un tamaño de bloque, pueden seguirse los siguientes tres métodos de agrupación en bloques:
1.    Bloques fijos: Se usan registros de longitud fija y un numero entero de registros son Guardados en un bloque. Puede haber espacio sin usar al final de cada bloque.
2.    Bloque de longitud variable por tramos: Se usan registros de longitud variable y agrupados en bloques sin dejar espacios sin usar.
3.    Bloque de longitud variable sin tramos: Son usados registros de longitud variable, pero no se dividen en tramos. En la mayoria de los bloques habrá un espacio desperdiciado, debido a la imposibilidad de aprovechar el resto del bloque si el registro siguiente es mayor que el espacio sin usar restante.
Los bloques de tamaño fijo son el modo mas común de archivos secuenciales con registro de
longitud variable. Los bloques de longitud variable por tramos constituyen un
almacenamiento eficaz y no ponen limites al tamaño de los registros. Pero esta tecnica es difícil de implementar.

Gestión del Almacenamiento secundario (Secondary Storage Management)

En el almacenamiento secundarlo, un archivo consiste en una colección de bloques. El sistema de gestiónele archivos es el responsable de la asignación de los bloques a archivos. Esto crea dos problemas sobre la gestión. Primero, el espacio en el almacenamiento secundario debe ser designados a los archivos, en segundo lugar, es necesario guardar constancia del espacio disponible para asignar. Estas dos tareas están relacionadas, el metodo tomado para asignar los archivos puede influir en el método de gestión del espacio libre. También existe una interacción entre la estructura de archivo y la política de asignación.

Asignación de Archivos

Surgen varias cuestiones:
1. Cuando se crea un archivo nuevo. ¿ se asigna de una sola vez el maximo espacio que necesite?
2. El espacio se asigna a un archivo en forma de una o mas unidades contiguas que se llaman secciones. Un tamaño de una sección puede variar desde un único bloque a un archivo entera. Que tamaño de sección deberia usarse para asignar archivos?
3. ¿Qué tipos de estructura de datos o tabla se usaran para guardar constancia de las secciones asignadas a un archivo. Dicha tabla se conoce normalmente como tabla de asignacion de archivos (FAT).

Métodos de Asignación de Archivos

Con Asignación contigua: Cuando se crea un archivo se le asigna un unico conjunto contiguo de bloques. Esta es una 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, que muestre el bloque de comienzo y la longitud del archivo. La asignación contigua es la mejor desde el punto de vista de un archivo secuencias individual.
Con Asignación encadenada: La asignación normalmente se hace con bloques individuales. 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 archivo. No hay que preocuparse por la fragmentación externa porque solo se necesita un solo bloque cada vez. Este tipo de organización física se ajusta mejor a los archivos secuenciales que van a ser procesados secuencialmente.
La asignación indexada: Trata mucho de los problemas de las asignaciones contigua y encadenada. La tabla de asignación de archivos contienen un índice separado de un nivel para cada archivo; el índice posee una entrada para cada sección asignada al archivo. Los índices no están almacenados físicamente como parte de la tabla de asignación de archivos. El índice del archivo se guardara en un bloque aparte y la entrada del archivo en la tabla de asignación apuntada a dicho bloque. La asignación indexada soporta tanto el acceso secuencial como el acceso directo a los archivos.

Gestión del Espacio LibreGestión del Espacio Libre

Al igual que al espacio asignado a los archivos, se debe gestionar el espacio que no queda asignado actualmente a ningun archivo. Para llevar a cabo cualquiera de las técnicas de asignación que se han descrito, es necesario saber que bloques del disco están disponibles. Hace falta una tabla de asignación de disco además de una tabla de asignación de archivos. Tres técnicas son de uso común:
1.    Las tablas de bits.
2.    Las secciones libres encadenadas.
3.    Y la indexación.

Tablas de Bíts

El método de las tablas de bits utiliza un vector que contiene un bit por cada bloque del disco. Cada entrada de igual a 0 corresponde a u bloque libre y cada 1 corresponde a un bloque en uso. Las tablas de bits tienen la ventaja de que es relativamente facil encontrar un bloque o un grupo continuo de bloques libres. Las tablas de bits trabajan bien con cualquiera de los métodos de asignación de archivos. Otra ventaja es que puede ser tan pequeña como sea posible y puede mantenerse en memoria cada vez que se realice una asignación.

Indexación

El método de indexación trata el espacio libre como si fuera un archivo y utiliza una tabla índice. 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 procedimiento ofrece un soporte eficaz para todos los métodos de asignación de archivos.

Fiabilidad

Considérese el escenario siguiente:

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 memoria principal las tablas de asignación de disco y archivos, pero no aun en el disco.
3. El sistema se hunde y a continuacion se reinicia
4. El usuario B solicita una asignación y se le otorga un espacio en el disco que se solapa con la ultima asignación hecha al usuario A.
5. El usuario A accede a la sección solapada mediante una referencia que esta almacenada en el archivo de A.
Esto surge debido al que el sistema mantiene copias de la tabla de asignación de disco y la tabla de asignación de archivos en memoria principal. Para evitar esto puede seguir los siguientes pasos:
1. bloquear en el disco la tabla de asignación de disco
2- Buscar espacio disponible en la tabla de asignación de disco.
3- Asignar el espacio, actualizar la tabla de asignación de disco y actualizar el disco.
4. Actualizar la tabla de asignación de archivos y actualizar el disco.
5. Desbloquear la tabla de asignación de disco.

Acronimos

  • UCP Unidad Central de Proceso
  • S.O. Sistema Operativo
  • E/S Entrada y Salida
  • FAT File allocation Table

Bibliografia