Descargar

Sistemas de archivos (página 2)

Enviado por ecrivelli


Partes: 1, 2

3) 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.

3.1) Estructura

La manera en que la información se almacena difiere mucho en los diferentes sistemas. Parte de la información puede almacenarse en un registro de cabecera asociado al archivo, esto reduce el espacio necesario para el directorio, haciendo mas fácil mantener todo el directorio. La forma mas fácil de estructuración de un directorio es una lista de entradas, unas para cada archivo. Esta estructura puede representarse con un simple archivo secuencial, con el nombre del archivo haciendo las veces de clave.

Operaciones que se pueden realizar con un directorio:

  1. Buscar: Cuando alguien referencia el archivo, debe buscarse en el directorio la entrada correspondiente al archivo.
  2. Crear archivo: Al crear un nuevo archivo. debe añadirse una entrada al directorio.
  3. Borrar archivo: Al borrar un archivo, debe eliminarse una entrada al directorio.
  4. Listar directorio: Puede solicitarse todo el directorio o una parte.

Una simple lista no se ajusta bien a estas operaciones. Si el directorio es una simple lista secuencias, no ofrecerá ayuda en la organización de los archivos y obligara al usuario a tener cuidado de no usar el mismo nombre para dos tipos diferentes de archivos. Para resolver este problema se puede acudir a un esquema de dos niveles donde hay un directorio para cada usuario y un directorio maestro. Un método mas potente y flexible es el directorio jerárquico o estructurado en arbol. Existe un directorio maestro que contiene un numero 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. Para organizar cada directorio y subdirectorio. El método mas simple es almacenar cada directorio como un archivo secuencial. Cuando los directorios contengan un numero muy grande de entradas, tal organización puede conducir a tiempos de, búsqueda innecesariamente grandes. En ese caso se prefiere una estructura de dispersión.

3.2) 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.

4) 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 provee una herramienta flexible para permitir compartir extensos archivos entre los usuarios. El sistema de archivos debe proporcionar un numero de opciones de modo en que un archivo que es accedido pueda ser controlado. Normalmente, al usuarios o a los grupos de usuarios se les otorgan ciertos derechos de acceso a cada archivo. Un amplio rango de derechos de acceso se ha venido usando. La siguiente lista representa los derecho de acceso que pueden ser asignados a un usuario en particular para un archivo en particular:

  1. Ninguno: El usuario no puede siquiera determinar la existencia del archivo ni mucho menos acceder al mismo. No se permite al usuario leer el directorio de usuario que incluya al archivo.
  2. Conocimiento: El usuario sabe de la existencia del archivo Y quien el dueño. El usuario puede solicitar los derechos de acceso adicionales al propietario.
  3. Ejecución: El usuario puede ejecutar y cargar un programa pero no copiarlo.
  4. Lectura: El usuario puede leer el archivo para cualquier propósito, incluyendo copia y ejecución.
  5. Adición: El usuario puede añadir datos al archivo, generalmente al final, pero no puede modificar o borrar el contenido del mismo.
  6. Actualización: El usuario puede modificar, borrar y añadir otros datos al archivo.
  7. Cambio de protección: El usuario puede cambiar los derechos de acceso otorgados a usuarios.
  8. Borrado: El usuario puede borrar el archivo del sistema de archivos.

Los derechos constituyen una jerarquía. Si un usuario adquiere el derecho de la actualización para un archivo determinado, también habrá adquirido los derechos siguientes: conocimiento, ejecución, lectura y adición.

El propietario de un archivo dispone de los derecho de acceso listados antes y puede otorgar derechos a los otros. Puede ofrecerse acceso a las siguientes clases de usuarios:

  1. Usuario específico: Usuarios individuales quienes son designados por su ID de usuario.
  2. Grupos de usuarios: Un conjunto de usuarios no definidos individualmente.
  3. 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.

5) 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.

  

6) 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.

6.1) 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).

Asignación previa frente a Asignación dinámica

Una política de asignación requiere que el tamaño máximo de un archivo sea declarado un el momento de crearlo. En un numero de casos, como el compilar los programas, la producción del resumen de los datos del archivo, o la transferencia de un archivo desde otro sistema por una red de comunicaciones, este valor puede estimarse. Pero en muchas aplicaciones es dificil estimar el tamaño máximo del archivo.

Tamaño de Sección

La segunda cuestión de la lista anterior es la del tamaño de 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 compromiso relativo a la eficiencia desde el punto de vista de un solo archivo frente al del sistema global.

1- La contigüidad del espacio aumenta el rendimiento.

2- Disponer de un gran numero de secciones pequeñas aumenta el tamaño de las tablas necesarias para gestionar la asignación de información.

3. Disponer de secciones de tamaño fijo simplifica la resignación del espacio.

4. Disponer de secciones de tamaño variable o secciones pequeñas de tamaño fijo minimiza la perdida de espacio no usado provocado por la sobre asignación.

  1. 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. El espacio es difícil de reutilizar.
  2. Bloques: Las secciones fijas y pequeñas ofrecen una flexibilidad mayor. La contigüidad se abandona y los bloques se asignan a medida que se necesitan.

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. En el segundo caso, todas las secciones necesarias son asignadas de una vez, Entonces la tabla de asignación de archivos permanecerá con tamaño fijo.

No esta claro que estrategia es la mejor. La dificultad de moldear estrategias alternativas esta en que intervienen muchos factores incluyendo los tipos de archivo, la pauta a los accesos a archivo, el grado de rnultiprogramacion, etc

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.

7) Gestió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.

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 minimo porque no hay necesidad de tabla de asignacion de disco, sin simplemente un puntero al comienzo de la cadena y la longitud de la primera seccion. Este método sirve para todas las técnicas de asignación de archivos.

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.

8) 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.

9) Acronimos

UCP Unidad Central de Proceso

S.O. Sistema Operativo

E/S Entrada y Salida

FAT File allocation Table

10) Bibliografia

  1. Sistemas Operativos. William Stalling
  2. Notas sobre sitemas operativos. Carlos Neetzel

 

 

Autor:

ecrivelli[arroba]hotmail.com

Partes: 1, 2
 Página anterior Volver al principio del trabajoPágina siguiente