lunes, 28 de noviembre de 2011

5.6 Manejo de Espacio en Memoria Secundaria.

El sistema de archivos se ocupa primordialmente de administrar el espacio de almacenamiento secundario, sobre todo el espacio en disco. El manejo del espacio libre en disco se lleva a cabo de la siguiente manera:

  • Vector de bits.
  • Lista ligada (lista libre).
  • Por conteo (agrupación).
Vector de bits.
El espacio libre en disco es frecuentemente implementado como un mapa de bits, donde cada sector es representado por un bit y si el sector es libre el bit es cero de lo contrario está asignado.
Lista ligada
Existe una cabecera en la que se tiene la dirección del primer sector vacio, ese sector a su vez, tiene un apuntador al siguiente sector, y así sucesivamente hasta que se encuentre una marca indicando que ya no hay espacio libre.
Por conteo 
Aquí, por cada conjunto de sectores contiguos que estén vacios, se tiene por cada apuntador, un número de inicio y el tamaño del grupo de sectores vacios.
Métodos de asignación de espacio en disco.
Un método de asignación de espacio en disco determina la manera en que un Sistema Operativo controla los lugares del disco ocupados por cada archivo de datos.
  • Contigua
  • Ligada
  • Indexada
Asignación contigua
Este método consiste en asignar el espacio en disco de tal manera que las direcciones de todos los bloques correspondientes a un archivo definen un orden lineal.
Asignación ligada
En este método, cada archivo es una lista ligada de bloques de disco. En el directorio hay un apuntador al bloque de inicio y un apuntador al bloque final para cada archivo. En cada uno de los bloques donde se encuentra un archivo hay un apuntador al siguiente bloque de la lista.
Asignación indexada
Cada archivo tiene su bloque índice, El cual es un arreglo de direcciones de bloques de disco. La i-ésima entrada en el bloque índice apunta al i-ésimo bloque que conforma el archivo.

5.7.- Modelo Jerárquico


Sistemas Jerárquicos de Directorios


El directorio contiene un conjunto de datos por cada archivo referenciado.
Una posibilidad es que el directorio contenga por cada archivo referenciado:
  • El nombre.
  • Sus atributos.
  • Las direcciones en disco donde se almacenan los datos.
Otra posibilidad es que cada entrada del directorio contenga:
  • El nombre del archivo.
  • Un apuntador a otra estructura de datos donde se encuentran los atributos y las direcciones en disco.
Al abrir un archivo el S. O.:
  • Busca en su directorio el nombre del archivo.
  • Extrae los atributos y direcciones en disco.
  • Graba esta información en una tabla de memoria real.
  • Todas las referencias subsecuentes al archivo utilizarán la información de la memoria principal.
El número y organización de directorios varía de sistema en sistema:
  • Directorio único: el sistema tiene un solo directorio con todos los archivos de todos los usuarios (ver Figura 4.1).

Un solo directorio compartido por todos los usuarios.
  • Un directorio por usuario: el sistema habilita un solo directorio por cada usuario 

  • Un árbol de directorios por usuario: el sistema permite que cada usuario tenga tantos directorios como necesite, respetando una jerarquía general.



Nombre de las Rutas de Acceso
Cuando el sistema de archivos está organizado como un árbol de directorios se necesita una forma de determinar los nombres de los archivos.
Los principales métodos para nombres de los archivos son:
  • Ruta de Acceso Absoluta:
    • Cada archivo tiene una ruta de acceso absoluta.
    • Consta de la ruta de acceso desde el directorio raíz hasta el archivo.
    • Los componentes de la ruta de acceso se separan mediante algún carácter llamado “separador”.
  • Ruta de Acceso Relativa:
    • Se utiliza junto con el concepto de directorio de trabajo o directorio activo.
    • Todos los nombres que no comiencen en el directorio raíz se toman en relación con el directorio de trabajo.
    • El nombre absoluto de la ruta de acceso siempre funciona, sin importar cual sea el directorio de trabajo.
Operaciones con Directorios
Las llamadas al sistema permitidas para el manejo de los directorios tienen variación de sistema a sistema.
Las más comunes son las siguientes:
  • Create (crear): se crea un directorio vacío.
  • Delete (eliminar): se elimina un directorio, que debe estar vacío.
  • Opendir (abrir directorio): se pueden leer los directorios:
    • Antes de poder leer un directorio, éste debe ser abierto.
  • Closedir (cerrar directorio): cuando se ha leído un directorio, éste debe ser cerrado para liberar el espacio correspondiente de la tabla interna.
  • Readdir (leer directorio): regresa la siguiente entrada en un directorio abierto, sin importar el tipo de estructura de directorios que se utilice.
  • Rename (cambiar de nombre): cambia el nombre de un directorio de manera similar al cambio para archivos.
  • Link (ligar): es una técnica que permite que un archivo aparezca en más de un directorio:
    • Especifica un archivo existente y el nombre de una ruta de acceso.
    • Crea un enlace del archivo ya existente con el nombre especificado en la ruta de acceso.
  • Unlink (desligar): se elimina una entrada del directorio:
    • Si el archivo que se desea desligar aparece solo en un directorio (el caso normal):
      • Se elimina del sistema de archivos.
    • Si el archivo que se desea desligar, está presente en varios directorios:
      • Solo se elimina la ruta de acceso especificada.
      • Las demás rutas permanecen.







No hay comentarios.:

Publicar un comentario