Sistema de archivos logicos

## Coordinación de operaciones de E/S

Tanto en la E/S programada como la basada en interrupciones, la UCP debe encargarse de la transferencia de datos una vez que sabe que hay datos disponibles en el controlador. Una mejora importante para incrementar la concurrencia entre la UCP y la E/S consiste en que el controlador del dispositivo se pueda encargar de efectuar la transferencia de datos, liberando de este trabajo a la UCP, e interrumpir a la UCP sólo cuando haya terminado la operación completa de E/S. Esta técnica se denomina acceso directo a memoria (DMA, Direct Memory Access).

Cuando se utiliza acceso directo a memoria, es el controlador el que se encarga directamente de transferir los datos entre el periférico y la memoria principal, sin requerir intervención alguna por parte del procesador. Esta técnica funciona de la siguiente manera: cuando el procesador desea que se imprima un bloque de datos, envía una orden al controlador indicándole la siguiente información:

• Tipo de operación: lectura o escritura.

• Periférico involucrado en la operación.

• La dirección de memoria desde la que se va a leer o a la que va a escribir directamente con el controlador de dispositivo (dirección).

• El número de bytes a transferir (contador).

Existen varias operaciones, las más importantes son las siguientes:

• Lectura: el canal transfiere a memoria principal un bloque de palabras de tamaño especificado en el campo nº de palabras, en orden ascendente de direcciones, empezando en la dirección especificada en el campo dirección del dato.

• Escritura: el canal transfiere datos de memoria principal al dispositivo. Las palabras se transfieren en el mismo orden que en la operación de lectura.

• Control: se utiliza esta orden para enviar instrucciones específicas al dispositivo de E/S, como rebobinar una cinta magnética, etc.

• Bifurcación: cumple en el programa de canal la misma función que una instrucción de salto en un programa normal. El canal ejecuta las CCW en secuencia, salvo cuando aparece una CCW de este tipo, que utiliza el campo dirección del dato como la dirección de la siguiente CCW a ejecutar.

==

Funciones implicadas en las operaciones de entrada/salida ==
 Para que un computador pueda ejecutar un programa debe ser ubicado previamente en la memoria, junto con los datos sobre los que opera, y para ello debe existir una unidad funcional de entrada de información capaz de escribir en la memoria desde el exterior. Análogamente, para conocer los resultados de la ejecución de los programas, los usuarios deberán poder leer el contenido de la memoria a través de otra unidad de salida de datos. La unidad de Entrada/Salida  (E/S) soporta estas funciones, realizando las comunicaciones del computador (memoria) con el mundo exterior (periféricos). Los dispositivos periféricos que se pueden conectar a un computador se suelen clasificar en tres grandes grupos:

 Dispositivos de presentación de datos. Son dispositivos con los que interactúan los usuarios, portando datos entre éstos y la máquina, por ejemplo, ratón, teclado, pantalla, impresora, etc.

Dispositivos de almacenamiento de datos. Son dispositivos que forman parte de la jerarquía de memoria del computador. Interactúan de forma autónoma con la máquina, aunque también sirven para el intercambio de datos con el usuario, por ejemplo, los discos magnéticos.

Dispositivos de comunicación con otros procesadores. Permiten la comunicación con procesadores remotos a través de redes, por ejemplo, las redes de área local o global.

Dispositivos de adquisición de datos. Permiten la comunicación con sensores y actuadores que operan de forma autónoma en el entorno del computador. Se utilizan en sistemas de control automático de procesos por computador y suelen incorporar conversores de señales A/D y D/A.

## Métodos de acceso

Los métodos de acceso son funciones que se encuentran en los “mainframes” que permiten el acceso a los datos en dispositivos externos. También pueden ser APIs (Interfaz de programación de aplicaciones) que son comparables a los controladores de los sistemas operativos. Al final, básicamente definen la forma en que los procesos se leen y escriben.

### Métodos de Acceso de almacenamiento

Hay varios métodos de acceso de almacenamiento que pueden ser utilizados. Estos serían:

• BDAM - Método de Acceso Básico Directo

• BSAM - Método de Acceso Básico Secuencial

• QSAM - Método de Acceso En Cola Secuencial

• BPAM - Método de Acceso Básico Particiones

• ISAM - Método de Acceso Secuencial Indizado

• VSAM - Método de Acceso Almacenamiento Virtual

• OAM - Método de Acceso con Objetos

Estos métodos de acceso se pueden clasificar como directo o secuencial.

### Método de Acceso En Cola Secuencial (QSAM)

QSAM organiza y secuencialmente almacena datos en registros, con campos de longitud fija. Es compatible con el bloqueo interno de los datos y de lectura anticipada. Finalmente, facilita un mejor rendimiento y permite manipulación de un bloque de datos a la vez.

### Método de Acceso Básico Particiones (BPAM)

BPAM manipula bloques de datos y produce una salida y entrada de datos. Construye y causa la escritura de entradas en el directorio como una salida de información mientras que la búsqueda y la lectura de las entradas del directorio como una entrada de información. Finalmente es más flexibilidad que algunos otros métodos de acceso.

### Método de Acceso Secuencial Indizado (ISAM)

ISAM almacena registros de forma secuencial y permite tanto el procesamiento secuencial que el aleatorio. Sus índices permite el acceso a los registros seleccionados sin tener que buscar el archivo completo.

### Método de Acceso Almacenamiento virtual (VSAM)

VSAM almacena varios registros en un bloque físico y puede organizar los registros en:

1. Secuencia física (ordenado secuencialmente)

2. Secuencia lógica utilizando llaves (Ej. identificación de empleado)

3. Y / o el número relativo de registro

### Método de Acceso con Objetos (OAM)

OAM cataloga todo un conjunto de archivos como una unidad (colección), lo cual resulta reducir el uso de memoria. Estas unidades no tienen estructura de registro interno y se acceden como secuencia binaria.

==

Métodos de acceso por sistema operativo ==

### Métodos de acceso en Windows

Los sistemas de organización de archivos que utiliza Windows utilizan el acceso secuencial indexado (acceso secuencial y acceso indexado adjuntos en un mismo método), el acceso directo en algunos casos en la utilización de los sistemas de organización por tablas.

 Métodos de acceso en Linux ===
Linux es el sistema operativo que soporta más sistemas de organización lo cuál lo convierte en uno de los más versátiles; Además al igual que Windows utiliza los mismos tipos de acceso y sistemas de organización. La estructura de archivos es unas estructura jerárquica en forma de árbol invertido, donde el directorio principal (raíz) es el directorio "/", del que cuelga toda la estructura del sistema. Éste sistema de archivos permite al usuario crear, borrar y acceder a los archivos sin necesidad de saber el lugar exacto en el que se encuentran. No existen unidades físicas, sino archivos que hacen referencia a ellas. Consta de tres partes importantes, superbloque, tabla de i-nodos y bloques de datos.

### Métodos de acceso en MacOs

Los sistemas de archivos que utilizan MacOs tienen su forma peculiar de trabajar, la cual es totalmente distinta a la de Windows y Linux, trabajan por medio de jerarquías. En las cuales utilizan bloques lógicos en los que cada uno tiene una tarea específica.

## Organización de archivos

Se refiere a las diferentes maneras en las que puede ser organizada la información de los archivos, así como las diferentes maneras en que ésta puede ser accesada. Dado que hay 2 niveles de visión de los archivos (físico y lógico), se puede hablar también de 2 aspectos de organización de archivos: Organización de archivos lógicos y de archivos físicos.

El sistema de archivos está relacionado especialmente con la administración del espacio de almacenamiento secundario, fundamentalmente con el almacenamiento de disco.

Una forma de organización de un sistema de archivos puede ser la siguiente:

• Se utiliza una “raíz” para indicar en qué parte del disco comienza el “directorio raíz”.

• El “directorio raíz” apunta a los “directorios de usuarios”.

• Un “directorio de usuario” contiene una entrada para cada uno de los archivos del usuario.

• Cada entrada de archivo apunta al lugar del disco donde está almacenado el archivo referenciado.

Los nombres de archivos solo necesitan ser únicos dentro de un directorio de usuario dado.

El nombre del sistema para un archivo dado debe ser único para el sistema de archivos.

En sistemas de archivo “jerárquicos” el nombre del sistema para un archivo suele estar formado como el “nombre de la trayectoria” del directorio raíz al archivo.

### Organización lógica.

La mayoría de las computadoras organizan los archivos en jerarquías llamadas carpetas, directorios o catálogos. (El concepto es el mismo independientemente de la terminología usada.) Cada carpeta puede contener un número arbitrario de archivos, y también puede contener otras carpetas. Las otras carpetas pueden contener todavía más archivos y carpetas, y así sucesivamente, construyéndose un estructura en árbol en la que una «carpeta raíz» puede contener cualquier número de niveles de otras carpetas y archivos.

### Pilas

Es la forma más fácil de organizar un archivo. Los datos se recogen en el orden en que llegan. Su objetivo es simplemente acumular una masa de datos y guardarla.

Los registros pueden tener campos diferentes o similares en un orden distinto. Cada campo debe ser auto descriptivo, incluyendo tanto un campo de nombre como el valor. La longitud de cada campo debe indicarse implícitamente con delimitadores, explícitamente incluidos como un subcampos más.

El acceso a los registros se hace por búsquedas exhaustiva y son fáciles de actualizar. Si se quiere encontrar un registro que contiene un campo particular y un valor determinado, es necesario examinar cada registro de la pila hasta encontrar el registro deseado. Si se quieren encontrar todos los registros que contienen un campo particular o que tienen un valor determinado para ese campo, debe buscarse el archivo entero.

### Archivos secuenciales

Es la forma más común de estructura de archivos. Se emplea un formato fijo para los registros, son de la misma longitud y constan del mismo número de campos de tamaño fijo con un orden determinado.

Se necesita almacenar los valores de cada campo; el nombre del campo y la longitud de cada uno son atributos de la estructura del archivo. Cada registro tiene un campo clave que lo identifica (generalmente es el primero de cada registro). Los registros se almacenan en secuencia por la clave. Se utilizan normalmente en aplicaciones de procesos por lotes, ya que es la única organización de archivos que se puede guardar tanto en cintas como en discos.

Para las aplicaciones interactivas que incluyen peticiones o actualizaciones de registros individuales, los archivos secuenciales no son óptimos. El acceso requiere una búsqueda secuencial de correspondencias con la clave. Si el archivo entero o gran parte de él pueden traerse a la memoria principal de una sola vez, se podrán aplicar técnicas de búsquedas más eficientes. Al acceder un registro de un archivo secuencial grande, se produce un procesamiento extra y un retardo considerable.

La organización física del archivo en una cinta o disco se corresponde exactamente con la organización lógica del archivo, por lo tanto el procedimiento habitual es ubicar los nuevos registros en un archivo de pila separado, es llamado archivo de registro o archivo de transacciones.

### Archivos secuenciales indexados

Los registros se organizan en una secuencia basada en un campo clave presentando dos características, un índice del archivo para soportar los accesos aleatorios y un archivo de desbordamiento. El índice proporciona una capacidad de búsqueda para llagar rápidamente al registro deseado y el archivo de desbordamiento es similar al archivo de registros usado en un archivo secuencial, pero está integrado de forma que los archivos de desbordamiento se ubiquen siguiendo un puntero desde su registro predecesor.

La estructura más simple tiene como índice un archivo secuencial simple, cada registro del archivo índice tiene dos campos, un campo clave igual al del archivo principal y un puntero al archivo principal. Para encontrar un campo especifico se busca en el índice hasta encontrar el valor mayor de la clave que es iguale o precede al valor deseado de la clave, la búsqueda continua en el archivo principal a partir de la posición que indique el puntero.

Cada registro del archivo principal tiene un campo adicional que es un puntero al archivo de desbordamiento. Cuando se inserta un nuevo registro al archivo, también se añade al archivo de desbordamiento. El registro del archivo principal que precede inmediatamente al nuevo registro según la secuencia lógica se actualiza con un puntero del registro nuevo en el archivo de desbordamiento, si el registro inmediatamente anterior está también en el archivo de desbordamiento se actualizará el puntero en el registro.

 Archivos indexados ===
Es un método de acceso que permite buscar archivos sin ningún orden, y para ello utiliza listas con un campo clave o más datos del archivo. Se utiliza en búsquedas para encontrar cierta posición o cierto valor en un archivo. Aunque tiene grandes ventajas en búsquedas y facilita su procesamiento, no permite recorrer los archivos secuencialmente, sólo guarda la dirección de un archivo y la almacena, no guarda una dirección del siguiente archivo por lo cual tiene que llegar a él por otro método.

Su funcionamiento comienza definiendo los tamaños de los bloques que almacenarán a cada uno de los índices (cada uno de los arreglos), asigna el índice en memoria antes de escribir los datos y después crea o modifica el archivo. Para optimizar y validar su funcionamiento se pueden utilizar diversos algoritmos y combinarlos: - Si al insertar notamos que el bloque ya está lleno entonces tenemos que partirlo en 2 - Para eliminar, ubicamos el bloque y eliminamos el registro - Si al eliminar notamos que se pueden mezclar o unir dos bloques con pocos registros entonces lo podemos hacer y el bloque libre lo marcamos para reutilización Todos los archivos deben contener obligatoriamente en su índice al menos un campo clave que identifique el registro de forma única, Los índices se almacenan en campos de tamaño fijo para administrar su organización y facilitar búsquedas, y éstos a su vez deben almacenar los punteros a los registros. Los separadores se utilizan para evitamos el tener que estar actualizando constantemente el índice.

## Organización física.

Los datos son arreglados por su adyacencia física, es decir, de acuerdo con el dispositivo de almacenamiento secundario. Los registros son de tamaño fijo o de tamaño variable y pueden organizarse de varias formas para constituir archivos físicos.

En este dispositivo el archivo físico esta formado por un conjunto de registros físicos, y los bloques están organizados en forma consecutiva, ya que se asigna en igual forma. Además tales registros puede contener etiquetas que permitan un mayor control sobre los datos almacenados, y son las siguientes:

- Etiqueta de volumen.- Contiene información que permite identificar la cinta, el nombre del propietario y cualquier información general requerida.

- Etiqueta de archivo.- Se utilizan por pares para indicar el inicio y fin del archivo, contiene información acerca del nombre del archivo, fecha de creación.

- Etiqueta de usuario.- Sirven para guardar información adicional de importancia para el usuario; no son procesados por el sistema operativo.

==

Discos Magnéticos ==
El archivo físico en un disco es una colección de registros físicos de igual tamaño, los cuales pueden estar organizados en forma consecutiva, ligada o con una tabla de mapeo.

En la organización contigua, el archivo utiliza registros físicos contiguos, siguiendo la secuencia normal de direcciones.

La organización encadenada consiste un conjunto de bloques, cada uno de los cuales tiene un campo destinado para indicar la dirección del siguiente registro, o sea, para lo que se ha llamado enlace o liga.

Otra forma de organización es la tabla de mapeo que consiste en una tabla de apuntadores a los registros físicos que forman el archivo.

La organización física de un archivo en el almacenamiento secundario depende de la estrategia de agrupación y de la estrategia de asignación de archivos.

Este tipo de organización muestra a su vez, 2 aspectos importantes: Métodos De Asignación De Espacio Libre y Asignación De Espacio De Almacenamiento Del Archivo.

## MÉTODOS DE ASIGNACIÓN DE ESPACIO LIBRE

Un método de asignación de espacio libre determina la manera en que un Sistema Operativo controla los lugares del disco que no están siendo ocupados.

Para el control del espacio libre se puede utilizar como base alguno de los métodos teóricos: Vector de Bits, Lista Ligada, Por Agrupación y por Contador.

1. Vector de Bits

Se tiene un arreglo de bits, el número de bits que tiene, representa cada sector del disco, o sea que si los sectores 10 y 11 están ocupados su representación será:

## 2. Lista Ligada

Existe una cabecera en la que se tiene la dirección del primer sector vacío, ese sector a su vez, tiene un apuntador al siguiente bloque, y así sucesivamente hasta que se encuentre una marca indicando que ya no hay espacio libre, tal y como se muestra en la siguiente figura.

## **Lista Ligada**

Existe una cabecera en la que se
tiene la dirección del primer sector vacío, ese sector a su vez, tiene un
apuntador al siguiente bloque, y así sucesivamente hasta que se encuentre una
marca indicando que ya no hay espacio libre, tal y como se muestra en la
siguiente figura.