miércoles, 11 de julio de 2018


SISTEMAS DE ARCHIVOS
CONCEPTO SISTEMA DE ARCHIVOS:
Subsistema del S.O. encargado de la gestión de la memoria secundaria (concretamente del almacenamiento de la información en dispositivos de memoria secundaria).
Se encuentra en los niveles más externos del sistema operativo (más próximos al usuario). Este nivel suministra al usuario el concepto de archivo (una de las abstracciones fundamentales que genera un sistema operativo).
El sistema de archivos es el subsistema que suministra los medios para la  organización y el acceso a los datos almacenados en dispositivos de memoria secundaria (disco).
Concepto de archivo: Agrupación de datos que el usuario ve como una entidad (por ejemplo: programa, conjunto de rutinas, resultados de un cálculo, ...). Es la unidad que almacena y manipula el sistema de archivos.
El medio sobre el que se almacenan los archivos se divide en bloques de longitud fija, siendo el sistema de archivos el encargado de asignar un número adecuado de bloques a cada archivo.

NOCIÓN DE ARCHIVO REAL Y VIRTUAL
UN ARCHIVO VIRTUAL
Es un archivo de uso temporal que es utilizado por los procesos del sistema mientras se están e
jecutando dichos procesos. Estos archivos se crean durante la ejecución de un sistema y los utiliza para el almacenamiento de información, intercambio y organización mientras se ejecuta el sistema, su tamaño es muy variable y terminan al detener la ejecución del sistema, muchos de ellos son borrados, por ejemplo, los archivos *.tmp.
Se le conoce como archivo virtual, aquel que contiene los datos generados por el usuario.







ARCHIVO REAL
 Es un objeto que contiene programas, datos o cualquier otro elemento.
Un archivo se muestra de manera real, en la información del espacio que ocupa en un disco duro o sistema de almacenamiento, en otras palabras su tamaño en bytes. 
  


COMPONENTES DE UN SISTEMA DE ARCHIVOS
Lo conforman todas aquellas rutinas encargadas de administrar todos los aspectos relacionados con el manejo de Archivos. 
En UNIX se define un File System como un sistema de software dedicado a la creación, destrucción, organización y lectura, escritura y control de acceso de los archivos, funcionalmente los componentes de un sistema de archivos son lenguajes de comandos, interpretador de comandos, manejador del almacenamiento secundario, sistema de entrada y salida y mecanismos de respaldo y recuperación.
En general, un Sistema de Archivos está compuesto por: Métodos De Acceso, Administración De Archivos, Administración De Almacenamiento Secundario, Mecanismos De Integridad. 
Métodos De Acceso. Se ocupan de la manera en que se tendrá acceso a la información almacenada en el archivo. Ejemplo: Secuencial, Directo, indexado, etc. 
  • Administración De Archivos. Se ocupa de ofrecer los mecanismos para almacenar, compartir y asegurar archivos, así como para hacer referencia a ellos. 
  • Administración De Almacenamiento Secundario. Se ocupa de asignar espacio para los archivos en los dispositivos de almacenamiento secundario. En la siguiente figura se muestra un ejemplo de la administración de espacio en un disco duro. 
  • Mecanismos De Integridad. Se ocupan de garantizar que no se corrompa la información de un archivo, de tal manera que solo la información que deba estar en el, se encuentre ahí. 
  • Mecanismos de Organización Lógica. Contiene las diferentes rutinas y comandos a través de los cuales el usuario podrá estructurar sus archivos virtuales. 
  • Directorio de Identificadores. Convierte los identificadores simbólicos de los archivos en identificadores internos, los cuales apuntarán a su descriptor o a una estructura que permite encontrar el archivo. 
  • Sistemas Teóricos de Archivos. Su objetivo es el de activar y desactivar a través de las rutinas de abrir y cerrar archivos y verifica el modo de acceso. 
  • Mecanismos de Organización Física. Traslada las direcciones lógicas en direcciones físicas correspondientes a las estructuras de memoria secundaria y los buffers en memoria principal necesarios para la transferencia de datos. 
  • Mecanismos de E/S. Por cada petición de acceso al archivo real, este mecanismo genera la secuencia de operaciones elementales de entrada y salida que se necesita. 
  • SCHEDULING E/S. En este nivel es donde se tiene el número de peticiones pendientes así como de las que se están realizando y lleva el control y asignación de tiempo de CPU a las diferentes peticiones de E/S. 


ORGANIZACIÓN LOGICA Y FISICA
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» (el nombre varía de una computadora a otra) puede contener cualquier número de niveles de otras carpetas y archivos. A las carpetas se les puede dar nombre exactamente igual que a los archivos (excepto para la carpeta raíz, que a menudo no tiene nombre). El uso de carpetas hace más fácil organizar los archivos de una manera lógica.
La mayor parte de las estructuras de organizaciones alternativas de archivos se encuentran dentro de estas cinco categorías:
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 subcampo 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.
Se aplica cuando los datos se recogen o almacenan antes de procesarlos o cuando no son fáciles de organizar. Esta clase de archivo aprovecha bien el espacio cuando los datos almacenados varían en tamaño y estructura. Fuera de estos usos limitados, este tipo de archivos no se adapta a la mayoría de las aplicaciones.
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.
Una alternativa es organizar físicamente el archivo secuencial como una lista enlazada, en cada bloque físico se almacena uno o más registros y cada bloque del disco contienen un puntero al bloque siguiente. La inserción de un nuevo registro implica la manipulación de puntero, pero no requiere que el nuevo registro ocupe una posición particular del bloque físico.
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.
Para procesar secuencialmente un archivo completo los registros del archivo principal se procesarán en secuencia hasta encontrar un puntero al archivo de desbordamiento, el acceso continúa en el archivo de desbordamiento hasta que encuentra un puntero nulo, entonces renueva el acceso donde se abandonó en el archivo principal.
Archivos indexados









A los registros se accede solo a través de sus índices. No hay resticción en la ubicación de los registros, al menos un índice contiene un puntero a cada registro y pueden emplearse registros de longitud variable.
Se suelen utilizar dos tipos de índices, uno exhaustivo que contiene una entrada para cada registro del archivo principal y se organiza como un archivo secuencial para facilitar la búsqueda, el otro índice es parcial que contiene entrada a los registros donde esté el campo de interés.
Con registro de longitud variable, algunos registros no contendrán todos los campos y cuando se añade un registro al archivo principal, todos los archivos de índices deben actualizarse.
Archivos directos o de dispersión
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.

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. 

Cinta magnética
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.
Para elegir una organización de archivos se deben tener en cuenta ciertos criterios:
Si un archivo va a procesar solamente por lotes, accediendo cada vez a todos los registros, entonces el acceso rápido para la recuperación de un único registro es una preocupación mínima. Un archivo almacenado en CD-ROM nunca será actualizado, por lo que la facilidad de actualización no se considera. Para la economía de almacenamiento , debería existir una mínima redundancia de los datos, ésta redundancia es el medio fundamental para incrementar la velocidad de acceso a los datos.
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.

jueves, 5 de julio de 2018


ADMINISTRACIÓN DE ENTRADA Y SALIDA

¿Que es una estructura?

la estructura de datos su función es organizar los conjuntos datos elementales, para poder tener una fácil actualización, manipulación y para poder cumplir su trabajo correctamente. un dato elemental es la mínima información que tiene un sistema, la estructura generalmente es modular, cada modulo cumple una función determinada y se comunica con los demás módulos.


Estructura simple o sistema monolitico

El sistema MS-DOS es, sin duda, el mejor sistema operativo para microcomputadoras. Sin embargo, sus interfaces y niveles de funcionalidad no están bien definidos. Los programas de aplicación pueden acceder a operaciones básicas de entrada / salida para escribir directamente en pantalla o discos. Este libre acceso, hace que el sistema sea vulnerable, ya que un programa de aplicación puede eliminar por completo un disco rígido por alguna falla. Además este sistema, también esta limitado al hardware sobre el que corre.
 Otra estructura simple es la utilizada por la versión original de UNIX, esta consiste de dos partes separadas, el kernel y los programas de sistemas . El kernel fue posteriormente separado en manejadores (drivers) de dispositivos y una serie de interfaces. El kernel provee el sistema de archivos, la programación de CPU, el administrador de memoria y otras funciones del sistema operativo que responden a las llamadas del sistema enunciadas anteriormente. 
 Es una forma  de relacion entre el kernel y el software  
los sistmas opertivos que usaron este sistemafuron freedbsd, unix y linux



Estructura por capas

La modularizacion de un sistema se puede presentar de diferentes formas, la mas utilizada es por capas, la cual consiste en dividir el sistema operativo en un numero de capas, la capa de menor nivel es el hardware y la de mayor nivel es la interfaz de usuario. la principal ventaja es que cada capa cumple con ciertas funciones y servicios que brindan a las otras capas esto ayuda a una mejor organización y una depuración mas fácil, cada capa se implementa solo utilizando las operaciones provistas por la capa de nivel inferior, una capa no necesita saber como se implementa solo necesita saber que operaciones puede realizar,

Estructura de datos en dispositivos

Los procesos de usuario emiten peticiones de entrada/salida al sistema operativo. Cuando un proceso solicita una operación de E/S, el sistema operativo prepara dicha operación y bloquea al proceso hasta que se recibe una interrupción del controlador del dispositivo indicando que la operación está completa. Las peticiones se procesan de forma estructurada en las siguientes capas:

Manejadores de interrupción.
Manejadores de dispositivos o drivers.
Software de EIS independiente de los dispositivos
Interfaz del sistema operativo.

El sistema operativo
El sistema operativo estructura el software de gestión de E/S de esta forma para ofrecer a los usuarios una serie de servicios de E/S independientes de los dispositivos. Esta independencia implica que deben emplearse los mismos servicios y operaciones de E/S para leer datos de un disquete, de un disco duro, de un CD-ROM o de un teclado. 

En el manejo de los dispositivos de E/S es necesario, introducir dos nuevos términos:

BUFFERING (uso de memoria interna)

Trata de mantener ocupados tanto la CPU como los dispositivos de E/S. Los datos se leen y se almacenan en un buffer, una vez que los datos se han leído y la CPU va a iniciar inmediatamente la operación con ellos, el dispositivo de entrada es introducido para iniciar inmediatamente la siguiente lectura.

La CPU y el dispositivo de entrada permanecen ocupados. Cuando la CPU este libre para el siguiente grupo de datos, el dispositivo de entrada habrá terminado de leerlos. La CPU podrá empezar el proceso de los últimos datos leídos, mientras el dispositivo de entrada iniciara la lectura de los datos siguientes.

SPOOLING

Esta forma de procesamiento de denomina spooling, utiliza el disco como un buffer muy grade para leer tan por delante como sea posible de los dispositivos de entrada y para almacenar los ficheros hasta que los dispositivos de salida sean capaces de aceptarlos.
Es una característica utilizada en la mayoría de los sistemas operativos.

Manejadores de interrupción

Los manejadores de interrupción se encargan de tratar las interrupciones que generan los controladores de dispositivos una vez que éstos están listos para la transferencia de datos o bien han leído o escrito los datos de memoria principal en caso de acceso directo a memoria. Para tratar dicha interrupción se ejecuta el correspondiente manejador de interrupción cuyo efecto es el de salvar los registros, comunicar el evento al manejador del dispositivo y restaurar la ejecución de un proceso (que no tiene por qué ser el interrumpido).

Los manejadores de interrupción suelen hacer algo más que comunicar el evento al manejador de dispositivo. Cuando una interrupción ocurre muy frecuentemente, caso del reloj, o cuando la cantidad de información a transferir es muy pequeña, caso del teclado, sería muy costoso comunicar siempre el evento al manejador de dispositivo asociado. En estos casos, el propio manejador de interrupción registra la ocurrencia del evento, bien mediante el incremento de una variable global para el reloj o la acumulación de caracteres en un buffer del teclado. La notificación al manejador se hace únicamente cada cierto número de ocurrencias del evento, en el caso del reloj, o activando unflag que indica que hay datos en el buffer del teclado.