Vous êtes sur la page 1sur 3

El modulo de control de entrada/salida de un sistema operativo trata estos problemas presentando al programador la E/S como una cuestin independiente

del dispositivo. El sistema operativo se encarga de los aspectos fsicos de la transferencia (por ejemplo determinar que sector, pista y cara del disco se van a utilizar), dejando al programador libre para que solo se preocupe de los aspectos lgicos de la transferencia (los registros y archivos involucrados), siendo pues independiente del dispositivo en concreto que se utiliza. Una tcnica muy comn especialmente en la salida es la ya explicada del spooling. 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 slo cuando haya terminado la operacin completa de EIS. Esta tcnica 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 perifrico y la memoria principal, sin requerir intervencin alguna por parte del procesador. Esta tcnica funciona de la siguiente manera: cuando el procesador desea que se imprima un bloque de datos, enva una orden al controlador indicndole la siguiente informacin:

Tipo de operacin: lectura o escritura. Perifrico involucrado en la operacin. La direccin de memoria desde la que se va a leer o a la que va a escribir directamente con el controlador de dispositivo (direccin). El nmero de bytes a transferir (contador).

Donde el campo Operacin corresponde al cdigo de operacin de las instrucciones mquina normales. Especifica la operacin que debe realizar la CCW. La unidad de control decodifica este campo y enva las seales adecuadas de control al dispositivo. Existen varias operaciones, las ms importantes son las siguientes: Lectura: el canal transfiere a memoria principal un bloque de palabras de tamao especificado en el campo n de palabras, en orden ascendente de direcciones, empezando en la direccin especificada en el campo direccin del dato. Escritura: el canal transfiere datos de memoria principal al dispositivo. Las palabras se transfieren en el mismo orden que en la operacin de lectura. Control: se utiliza esta orden para enviar instrucciones especficas al dispositivo de E/S, como rebobinar una cinta magntica, etc. Bifurcacin: cumple en el programa de canal la misma funcin que una instruccin 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 direccin del dato como la direccin 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 operacin de E/S que debe realizarse con el mismo dispositivo. El canal ejecuta primero la operacin de E/S especificada en la CCW que tiene a 1 el flag CC. Despus 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 direccin 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 conexin con el dispositivo de E/S, contina la transferencia utilizando la direccin 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 nmero 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 (Interrupcin controlada por programa): el canal produce una interrupcin cuando ejecuta una CCW con el flag PCI a 1. Si esta CCW va precedida por otra CCW con encadenamiento de comandos, la interrupcin se genera despus de que hayan concluido todas las transferencias de datos. Una vez emitida la orden, el procesador contina 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 perifrico a memoria. La transferencia se realiza palabra a palabra. Cuando el controlador ha completado la transferencia, genera una interrupcin que activa la rutina de tratamiento correspondiente, de tal manera que se sepa que la operacin 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 razn 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 operacin de E/S con DMA son los siguientes: 1. Programacin de la operacin de E/S. Se indica al controlador la operacin, los datos a transferir y la direccin de memoria sobre la que se efectuar la operacin. 2. El controlador contesta aceptando la peticin de E/S. 3. El controlador le ordena al dispositivo que lea (para operacin de lectura) una cierta cantidad de datos desde una posicin determinada del dispositivo a su memoria interna. 7.3. 4. Cuando los datos estn listos, el controlador los copia a la posicin de memoria que tiene en sus registros, incrementa dicha posicin de memoria y decrementa el contador de datospendientes de transferir. 5. Los pasos 3 y 4 se repiten hasta que no quedan ms datos por leer. 6. Cuando el registro de contador est a cero, el controlador interrumpe a la UCP para in dicar que la operacin de DMA ha terminado. Inicio y control de los programas de canal 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 mquina que la CPU puede utilizar para estos fines. Son las siguientes: START I/O Inicia una operacin de E/S. El campo de direccin de la instruccin seemplea para especificar el canal y el dispositivo de E/S que participa en la operacin. HALT I/O Finaliza la operacin 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. Bibliografa
Conceptos de Sistemas Operativos, Juan M. Morera Pascual, Univ Pontifica de Comillas, 02/11/2002

http://sistemasoperativos.angelfire.com/html/4.4.html
www.slideshare.net/.../gestion-de-dispositivos-de-entrada-y-salida

Vous aimerez peut-être aussi