sábado, 16 de noviembre de 2013

4.4 Operación de Entrada/Salida

4.4

Operaciones de Entrada y Salida

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 EIS. 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).
Donde el campo Operación corresponde al código de operación de las instrucciones máquina normales. Especifica la operación que debe realizar la CCW. La unidad de control decodifica este campo y envía las señales adecuadas de control al dispositivo. 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.
Flags: Los bits de este campo indican lo siguiente:
CC (Encadenamiento de comando): cuando este bit está a 1, indica al canal que la siguiente CCW especifica una nueva operación de E/S que debe realizarse con el mismo dispositivo. El canal ejecuta primero la operación de E/S especificada en la CCW que tiene a 1 el flag CC. Después ejecuta la siguiente sobre el mismo dispositivo. Desde el punto de vista del dispositivo, las dos operaciones resultantes de la primera y segunda CCW aparecen como dos comandos de E/S separados.
CD (Encadenamiento de datos): una CCW con el bit CD a 1, indica al canal que la siguiente CCW contiene una nueva dirección del dato y un nuevo nº de palabras. Éstos deben utilizarse para transferir un segundo bloque de datos hacia o desde el dispositivo de E/S, mediante la orden especificada por la CCW actual. Cuando el canal termina la transferencia de datos especificada en la CCW con el bit CD a 1, no corta la conexión con el dispositivo de E/S, continúa la transferencia utilizando la dirección y el nº de palabras de la siguiente CCW.
SKIP (Salto): este bit, cuando está a 1, hace que el programa de canal salte un número de palabras igual al especificado en el campo nº de palabras. Cuando se utiliza con la orden de lectura, este flag hace que los datos se lean del dispositivo sin que se transfieran a la memoria principal.
PCI (Interrupción controlada por programa): el canal produce una interrupción cuando ejecuta una CCW con el flag PCI a 1. Si esta CCW va precedida por otra CCW con encadenamiento de comandos, la interrupción se genera después de que hayan concluido todas las transferencias de datos.
Una vez emitida la orden, el procesador continúa realizando otro trabajo sin necesidad de transferir el bloque de datos. Es el propio controlador el que se encarga de transferir el bloque de datos del periférico a memoria. La transferencia se realiza palabra a palabra. Cuando el controlador ha completado la transferencia, genera una interrupción que activa la rutina de tratamiento correspondiente, de tal manera que se sepa que la operación ha concluido.
Utilizando acceso directo a memoria el procesador únicamente se ve involucrado al inicio y al final de la transferencia. Por tanto, cuando el sistema operativo despierta al proceso que pidió la E/S, no tiene que copiar el bloque a memoria porque ya está allí. El DMA requiere una etapa de almacenamiento intermedio en el controlador del dispositivo para armonizar la velocidad del dispositivo de EIS con la copia de los datos en memoria principal. La razón para este almacenamiento intermedio reside en que una vez que el dispositivo empieza la transferencia de datos, ésta debe hacerse a velocidad constante para evitar transferencias parciales y nuevas esperas de posicionamiento del dispositivo sobre los datos (latencia). Una vez transferidos los datos a la memoria del controlador, éste los copia en memoria principal aprovechando el ancho de banda libre del bus.
Los pasos a seguir en una operación de E/S con DMA son los siguientes:


Programación de la operación de E/S. Se indica al controlador la operación, los datos a transferir y la dirección de memoria sobre la que se efectuará la operación.
El controlador contesta aceptando la petición de E/S.
El controlador le ordena al dispositivo que lea (para operación de lectura) una cierta cantidad de datos desde una posición determinada del dispositivo a su memoria interna.
Cuando los datos están listos, el controlador los copia a la posición de memoria que tiene en sus registros, incrementa dicha posición de memoria y decrementa el contador de datospendientes de transferir.
Los pasos 3 y 4 se repiten hasta que no quedan más datos por leer.
Cuando el registro de contador está a cero, el controlador interrumpe a la UCP para in dicar que la operación de DMA ha terminado.
Inicio y control de los programas de canal.
Hemos visto como se utilizan los programas de canal para realizar operaciones de E/S. Estos programas residen en la memoria principal del computador y se ejecutan en el canal. Vamos a examinar ahora la forma en que la CPU inicia y supervisa las operaciones de E/S, es decir, el programa de canal. En el IBM S/370 existen cuatro instrucciones máquina que la CPU puede utilizar para estos fines. Son las siguientes:

START I/O Inicia una operación de E/S. El campo de dirección de la instrucción seemplea para especificar el canal y el dispositivo de E/S que participa en la operación.
HALT I/O Finaliza la operación del canal.
TEST CHANNEL Prueba el estado del canal.
TEST I/O Prueba el estado del canal, el subcanal y el dispositivo de E/S.
Una operación de E/S se inicia con la instrucción START I/O. La ubicación del programa de canal en la memoria principal viene definida en la palabra de dirección de canal (CAW: Channel A ddress word), que siempre está almacenada en la posición 72 de la memoria principal.

UNIDAD 5: Sistemas de Archivo

5.1 Conceptos

5.1

Conceptos

Según Moshe Bar (McGraw-Hill, 2001).Los sistemas de archivos (filesystem en inglés), estructuran la información guardada en una unidad de almacenamiento (normalmente un disco duro) de una computadora, que luego será representada ya sea textual o gráficamente utilizando un gestor de archivos.
Menciona Moshe Bar (McGraw-Hill, 2001). Que el software del sistema de archivos es responsable de la organización de estos sectores en archivos y directorios y mantiene un registro de qué sectores pertenecen a qué archivos y cuáles no han sido utilizados.
Según Moshe Bar (McGraw-Hill, 2001). Los sistemas de archivos tradicionales proveen métodos para crear, mover, renombrar y eliminar tanto archivos como directorios, pero carecen de métodos para crear, por ejemplo, enlaces adicionales a un directorio o archivo (enlace duro en Unix) o renombrar enlaces padres (".." en Unix).

5.2 Noción de Archivo Real y Virtual

5.2

Noción de Archivos Real y Virtual


Dice Marco Cesati (O'Reilly Media, 2005). Que un sistema de archivos virtual (abreviado como VFS, del inglés Virtual File System), también denominado conmutador de sistema de archivos virtual, es una capa de abstracción encima de un sistema de archivos más concreto. El propósito de un VFS es permitir que las aplicaciones cliente tengan acceso a diversos tipos de sistemas de archivos concretos de una manera uniforme. Puede ser utilizada para tender un puente sobre las diferencias en los sistemas de archivos de Windows, de Mac OS y Unix, de modo que las aplicaciones pudieran tener acceso a archivos en los sistemas de archivos locales de esos tipos sin tener que saber a qué tipo de sistema de archivos están teniendo acceso.
Un VFS especifica un interfaz (o un contrato) entre el kernel y un sistema de archivos en concreto.

5.3 Componentes de un Sistema de Archivos

5.3

Componente de un Sistema de Archivos

Según Silberschatz, Abraham (2006). La gestión de procesos. Puede tener una lista de tareas a realizar y a estas fijarles prioridades alta, media, baja por ejemplo. Debemos comenzar haciendo las tareas de prioridad alta primero y cuando se terminen seguir con las de prioridad media y después las de baja. Una vez realizada la tarea se tacha. Esto puede traer un problema que las tareas de baja prioridad pueden que nunca lleguen a ejecutarse. y permanezcan en la lista para siempre. Para solucionar esto, se puede asignar alta prioridad a las tareas más antiguas.
Según Silberschatz, Abraham (2006).La Gestión de la memoria principal tiene las siguientes funciones:
• Conocer qué partes de la memoria están utilizadas y por quién.
• Decidir qué procesos se cargarán en memoria cuando haya espacio disponible.
• Asignar y reclamar espacio de memoria cuando sea necesario.
Gestión del almacenamiento secundario
Silberschatz, Abraham (2006). Un sistema de almacenamiento secundario es necesario, ya que la memoria principal (almacenamiento primario) es volátil y además muy pequeña para almacenar todos los programas y datos. También es necesario mantener los datos que no convenga mantener en la memoria principal. El SO se encarga de:
• Planificar los discos.
• Gestionar el espacio libre.
• Asignar el almacenamiento.
El sistema de E/S
Según Silberschatz, Abraham (2006). Consiste en un sistema de almacenamiento temporal (caché), una interfaz de manejadores de dispositivos y otra para dispositivos concretos. El sistema operativo debe gestionar el almacenamiento temporal de E/S y servir las interrupciones de los dispositivos de E/S.
Sistema de archivos
Según Silberschatz, Abraham (2006). Los Sistema de archivos estructuran la información guardada en una unidad de almacenamiento, y es responsable de la organización de estos sectores en archivos y directorios y mantiene un registro de qué sectores pertenecen a qué archivos y cuáles no han sido utilizados.
Sistemas de protección
Dice Silberschatz, Abraham (2006). Que es un Mecanismo que controla el acceso de los programas o los usuarios a los recursos del sistema. El SO se encarga de:
• Distinguir entre uso autorizado y no autorizado.
• Especificar los controles de seguridad a realizar.
• Forzar el uso de estos mecanismos de protección.
Sistema de comunicaciones
Según Silberschatz, Abraham (2006). Para mantener las comunicaciones con otros sistemas es necesario poder controlar el envío y recepción de información a través de las interfaces de red. También hay que crear y mantener puntos de comunicación que sirvan a las aplicaciones para enviar y recibir información, y crear y mantener conexiones virtuales entre aplicaciones que están ejecutándose localmente y otras que lo hacen remotamente.
Intérprete de órdenes
(Shell de línea de comandos)
Según Silberschatz, Abraham (2006). El Shell del sistema es el principal componente del SO que utiliza el usuario. Este uso se realiza siempre directa o indirectamente a través del intérprete. Generalmente incorpora un lenguaje de programación para automatizar las tareas.
Hay dos tipos de intérpretes de órdenes:
• Alfanuméricos: las órdenes se expresan mediante un lenguaje específico usando las cadenas de caracteres introducidas por el terminal.
• Gráficos: normalmente las órdenes se especifican por medio de iconos y otros elementos gráficos.
Programas de sistema
Según Silberschatz, Abraham (2006). Son aplicaciones de utilidad que se suministran con el SO pero no forman parte de él. Ofrecen un entorno útil para el desarrollo y ejecución de programas, siendo algunas de las tareas que realizan:
• Manipulación y modificación de archivos.
• Información del estado del sistema.
• Soporte a lenguajes de programación.
• Comunicaciones.
Gestor de recursos
Según Silberschatz, Abraham (2006). Como gestor de recursos, el Sistema Operativo administra
• La CPU (Unidad Central de Proceso, donde está alojado el microprocesador).
• Los dispositivos de E/S (entrada y salida)
• La memoria principal (o de acceso directo).
• Los discos (o memoria secundaria).
• Los procesos (o programas en ejecución).
• y en general todos los recursos del sistema.
Administración de tareas
• Según Silberschatz, Abraham (2006). Monotarea: Solamente puede ejecutar un proceso (aparte de los procesos del propio S.O.) en un momento dado. Una vez que empieza a ejecutar un proceso, continuará haciéndolo hasta su finalización y/o interrupción.
• Según Silberschatz, Abraham (2006). Multitarea: Es capaz de ejecutar varios procesos al mismo tiempo. Este tipo de S.O. normalmente asigna los recursos disponibles (CPU, memoria, periféricos) de forma alternada a los procesos que los solicitan, de manera que el usuario percibe que todos funcionan a la vez, de forma concurrente.
Administración de usuarios
• Según Silberschatz, Abraham (2006). Monousuario: Si sólo permite ejecutar los programas de un usuario al mismo tiempo.
• Según Silberschatz, Abraham (2006). Multiusuario: Si permite que varios usuarios ejecuten simultáneamente sus programas, accediendo a la vez a los recursos de la computadora. Normalmente estos sistemas operativos utilizan métodos de protección de datos, de manera que un programa no pueda usar o cambiar los datos de otro usuario.
Manejo de recursos
• Según Silberschatz, Abraham (2006). Centralizado: Si permite utilizar los recursos de una sola computadora.
• Según Silberschatz, Abraham (2006). Distribuido: Si permite utilizar los recursos (memoria, CPU, disco, periféricos) de más de una computadora al mismo tiempo.

5.4 Organización Lógica y Fisíca

5.4

Organización Lógica y Fisica


Según Silberschatz, Abraham (2006). 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.

DE ARCHIVOS LOGICOS. Contempla la organización desde el punto de vista lógico. Por ejemplo, secuencial, directo, etc.

DE ARCHIVOS FISICOS. Contempla la administración de archivos desde la perspectiva física, particularmente la organización del almacenamiento en disco a nivel de pistas y sectores.

5.5 Mecanismo de Acceso a los Archivos

5.5

Mecanismos de Accesos a los archivos

Según O´brien, James A. (2006). El Método de Acceso Secuencial: significa que un grupo de elementos es accedido en un predeterminado orden secuencial. Todos los registros tienen el mismo tamaño, constan del mismo número de campos de tamaño fijo en un orden particular.
Según O´brien, James A. (2006). El Método de Acceso Secuencial Indexado: Método común de acceso a disco que almacena datos en forma secuencial, al tiempo que mantiene un índice de campos claves para todos los registros en el archivo para acceso directo. Dos características se añaden: un índice del archivo para soportar los accesos aleatorios y un archivo de desbordamiento ( overflow ).
Según O´brien, James A. (2006). Los Archivos Directos o de Dispersión (Hashed) :Los archivos directos explotan la capacidad de los discos para acceder directamente a cualquier bloque de dirección conocida. Como en los archivos secuenciales y secuenciales indexados, se requiere un campo clave en cada registro. Sin embargo, aquí no hay concepto de ordenamiento secuencial.