Definiremos una operación de E/S como el conjunto de
acciones necesarias para la transferencia de un conjunto de datos (es decir,
una transferencia completa de datos).
Una operación de entrada tiene por objeto el
obtener datos de los diferentes dispositivos de entrada; generalmente del
teclado, y de almacenarlos en memoria principal.
Una operación
de salida tiene por objeto el obtener datos de memoria principal y sacarlos
a los dispositivos de salida, generalmente la pantalla.
Para la
realización de una operación de E/S se deben efectuar las siguientes
funciones:
Recuento de las unidades de información transferidas
(normalmente bytes) para reconocer el fin de operación.
Sincronización de velocidad entre la CPU y el
periférico.
Detección de errores (e incluso corrección) mediante
la utilización de los códigos necesarios (bits de paridad, códigos de
redundancia cíclica, etc.)
Almacenamiento temporal de la información. Es más
eficiente utilizar un buffer temporal específico para las operaciones
de E/S que utilizan el área de datos
del programa.
Conversión de códigos, conversión serie/paralelo,
etc.
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.
No hay comentarios:
Publicar un comentario