Visitas: 309  
Tiempo total: 4 días con 22:1:54 hrs  

Un archivo es una colección de datos con nombre, estos datos están compuestos por bits (0 y 1), a su vez para almacenar información se utiliza un byte (8 bits), es decir un numero binario de longitud 8 que tiene 256 posibles valores (2^8). En los sistemas computacionales se utiliza comúnmente el código ASCII, entonces cada posible valor de un byte representa un símbolo:

Imagen: https://es.wikipedia.org/wiki/ASCII#/media/File:US-ASCII_code_chart.png
Imagen: https://es.wikipedia.org/wiki/ASCII#/media/File:US-ASCII_code_chart.png

La información en un archivo puede ser manipulada por las siguientes unidades de operación:

  • Open
  • Close
  • Create
  • Destroy
  • Copy
  • Rename
  • List
  • Read
  • Write
  • Update
  • Insert
  • Delete

Un sistema de archivos es el responsable de la administración de los archivos del usuario (almacenamiento secundario), también se puede mencionar que es responsable de compartir cuidadosamente* archivos entre usuarios.

Cuidadosamente hace referencia a que pueden existir distintas funciones al momento de compartir un archivo, por ejemplo, que una persona o grupo de personas pueda leer, escribir o ejecutar un archivo. Un ejemplo básico de lo que esto significa es la instrucción chmod (GNU/Linux):

Imagen: https://es.wikipedia.org/wiki/Chmod
Imagen: https://es.wikipedia.org/wiki/Chmod

Bloques

Es la unidad de información leida o escrita y un registro lógico es una colección de datos que representan una unidad para el usuario. Entonces, si un registro físico contiene exactamente un registro lógico, se dice que es un registro no bloqueado; cuando tiene más de un registro lógico es un registro en bloque. Se tiene también que un registro puede ser de longitud fija (en cuyo caso el tamaño de bloque será múltiplo del tamaño del registro), y de longitud variable (hasta el tamaño del bloque).

Organización de archivos

Los archivos se almacenan en el almacenamiento secundario de la siguiente manera.

  • Secuencial: El siguiente registro se almacena físicamente después del actual, este caso se da en cassette’s o cintas magnéticas (entre otros).
  • Secuencial indexado: cada registro contiene una clave con la cual se relaciona su dirección física en el índice del sistema de archivos.
  • Directo (aleatorio): Los archivos se acceden directamente según sus direcciones en el dispositivo de almacenamiento directo (DASD).
  • De partición: los archivos están compuestos de subarchivos, de esta manera el archivo contiene las direcciones físicas de cada subarchivo.

Los métodos de acceso a los registros son categorizados como: básicos y por colas. El método de acceso por colas se cuando los registros están organizados de manera secuencial o secuencial indexada, esto ayuda a anticipar la secuencia en que serán procesados los archivos, utilizando operaciones de buffer para leer el registro y mientras lo escriben en un proceso, leer el siguiente registro.

El método de acceso básico se utiliza cuando no es posible anticipar el siguiente registro, como por ejemplo en la organización de archivos directa.

Sistema de archivos

Suponga que una computadora en una empresa comparte un disco duro con todos sus trabajadores, los cuales son más de 100 personas que acceden y utilizan constantemente el disco duro. Un sistema de archivos debe ser capaz gestionar la información y operaciones realizadas en el. Por este motivo, un sistema de archivos debe de contener:

  • Métodos de acceso a los archivos.
  • Mecanismos para compartir y asegurar archivos.
  • Mecanismos de gestión de espacio del almacenamiento secundario.
  • Funciones que mantengan la integridad del sistema.

Fragmentación

La eliminación de archivos deja espacios vacios en el disco, los archivos del sistema ya no quedarán continuos unos a otros, lo cual vuelve complejo (o más tardado) la escritura y acceso a la información; por este motivo es necesario reasignar de dirección los archivos, estas operaciones consumen recursos en el sistema, lógicamente se deben de programar en momentos en donde no se utilice el sistema.

La recolección de basura hace esto, reunir los fragmentos en el disco, aunque puede no ser la mejor solución en un sistema accedido por bastantes usuarios, pues el mismo fragmento de archivo que se está manipulando puede haber cambiado para el momento que se finalice la operación con él.

Asignación continúa

Consiste en asignar los archivos en espacios continuos, de esta manera los registros que lo conforman estarán adyacentes entre sí. Existen algunos problemas, por ejemplo si el espacio no está disponible no se podrá crear el archivo; o si el archivo que se está trabajando crece de tamaño, no podrá escribirse si existe otro justo a un lado, para enfrentar este último problema se sobreestima el tamaño del archivo, pero esto es sinónimo de desperdicio de espacio en el disco.

Asignación no continúa

Soluciona los problemas de la asignación continua, aunque tiene también desventajas.

  • Asignación encadenada orientada hacia el sector: un disco está compuesto por sectores, entonces cada archivo se almacena en distintos sectores, si este necesita crecer solicitará el siguiente sector libre de la lista de sectores libres, cuando es eliminado o disminuye de tamaño devuelve los sectores utilizados a la lista. Su desventaja es la lectura, pues si el archivo está disperso por todo el disco la operación de lectura tardará más tiempo.

Asignación por bloques

Cada bloque es un grupo de sectores, en este tipo de asignación se trata la forma de asignar espacio continuo o lo más cerca posible.

  • Encadenamiento de bloques: El directorio de archivos almacena la dirección del primer bloque, y este bloque almacena los datos y la dirección al siguiente bloque. Esta lista de bloques puede ir de adelante hacia atrás.
Imagen: http://exa.unne.edu.ar/informatica/SO/imageMRD.JPG
Imagen: http://exa.unne.edu.ar/informatica/SO/imageMRD.JPG
  • Encadenamiento de bloques de índices: Cada archivo tiene un bloque de índices que lista los bloques que conforman el archivo, cada uno de estos bloques de índices es de tamaño fijo, si esta cantidad no es suficiente se hace referencia a los bloques de índices necesarios para almacenar el archivo. La ventaja es que se puede mantener en el almacenamiento primario (memoria) para poder acceder más rápido al archivo.
Imagen: http://exa.unne.edu.ar/informatica/SO/imagePOA.JPG
Imagen: http://exa.unne.edu.ar/informatica/SO/imagePOA.JPG
  • Transformación de archivos orientadas hacia bloques: Se utiliza un directorio de bloques que apunta al primer bloque del mismo, y también se utiliza un mapa que describe que parte de que archivo está almacenado en el, para describir que parte del archivo se utiliza un numero. La ventaja es que para asignar espacio a un disco se utiliza el mapa para encontrar el primer espacio libre.
Imagen: http://exa.unne.edu.ar/informatica/SO/imageBPK.JPG
Imagen: http://exa.unne.edu.ar/informatica/SO/imageBPK.JPG

Descriptor

Es una estructura de información que almacena información sobre el archivo y es utilizada por el sistema de archivos, es cargado al almacenamiento primario para poder obtener información del archivo.

Control de acceso

Se puede utilizar una matriz de i usuarios y j archivos, donde Aij es 0 si no le es permitido acceder al archivo. Manejar una matriz de j archivos puede ser bastante tardado, y más si la cantidad de usuarios también es grande, por este motivo se utilizan clases de usuario para acceder a un archivo, de esta manera se define el acceso al archivo por la case de usuario que es.

Clases de usuario:

  • Propietario
  • Usuario especifico
  • Grupo o proyecto
  • Publico

Lecturas sugeridas

Bibliografía

Introducción a los Sistemas Operativos
Harvey M. Deitel
p. 325 a 339

0