Tema 18 - Sistemas Operativos: Gestión de Entradas/salidas: Índice
Tema 18 - Sistemas Operativos: Gestión de Entradas/salidas: Índice
de entradas/salidas
ÍNDICE
1. INTRODUCCIÓN
5. INTERRUPCIONES
6. SPOOL
7. BIBLIOGRAFÍA
1. INTRODUCCIÓN
Toda la transferencia es ordenada por el procesador central, pero si esta se hiciese de forma
directa por él, se dedicaría mucho tiempo en el intercambio; por ello se han diseñado
dispositivos de E/S que en la forma más sencilla se denominan unidades de acceso directo a
memoria (DMA) y en general se denominan canales de transferencia.
E/S programada: El procesador emite una orden de E/S de parte de un proceso a un módulo
de
E/S; el proceso espera entonces a que termine la operación, antes de seguir.
E/S dirigida por interrupciones: El procesador emite una orden de E/S de parte de un proceso,
continúa la ejecución de las instrucciones siguientes y es interrumpido por el módulo de E/S
cuando éste ha completado su trabajo.
Acceso directo a memoria (DMA): Un módulo de DMA controla el intercambio de datos entre
la memoria principal y un módulo de E/S. El procesador envía una petición de transferencia
de un bloque de datos al módulo de DMA y se ve interrumpido sólo cuando el bloque entero
se haya transferido.
Existe una gran variedad de dispositivos que se pueden conectar a los ordenadores; tanto el
hardware como el software de E/S se enfrentan con complicadas tareas para realizar las
operaciones de forma segura y eficaz.
CPU y la memoria.
La tercera característica pasa por las conversiones de formato necesarias entre los
periféricos y el sistema, dado que mientras unos requieren transferencias en serie, otros los
reciben o transmiten en paralelo.
2.1. Dispositivos de entrada/salida
Los dispositivos externos que tienen que hacer E/S con los ordenadores pueden clasificarse,
básicamente, en tres categorías:
Dispositivos legibles por los humanos: apropiados para la comunicación con el usuario,
como el teclado y la pantalla de vídeo.
Dispositivos legibles por la máquina: adecuados para comunicarse con equipos electrónicos,
como discos y unidades de cinta.
Los dispositivos de bloque suelen estar asociados a dispositivos de alta velocidad que
transmiten datos mediante técnicas de acceso directo a memoria. Los tamaños de bloques
son variables y los más comunes son de 128, 512 y 1024 bytes.
Los dispositivos de tipo carácter están controlados, generalmente, por la CPU y transmiten
carácter a carácter.
2.2. Controladores de dispositivo
Las unidades de E/S tienen una parte mecánica que es el propio dispositivo y otra parte
electrónica que se llama controlador del dispositivo y actúa como intermediario entre el
ordenador y los dispositivos.
El interés por separar el controlador del periférico es el de poder conectar varios periféricos
del mismo tipo a un acoplador único. Así, aunque un sólo periférico puede transmitir
información a la vez, los demás pueden realizar, de forma paralela, operaciones que no
impliquen entradas o salidas.
Las funciones que realiza el controlador y el periférico dependen de cada tipo de dispositivo.
El controlador suele ser una tarjeta de circuitos impresos que posee un cable que va al
dispositivo, y a su vez todos los cables de los dispositivos se unen en un elemento común
llamado bus del sistema que va unido a los componentes del ordenador.
Los microordenadores suelen utilizar un sólo bus, tal como aparece en la figura superior, pero
en los
Para actuar, el controlador dispone de tres capas funcionales: la interfaz con el bus, el
controlador propiamente dicho y la interfaz del dispositivo.
Los registros de entrada y salida guardan los datos hasta que la CPU o el dispositivo destino
esté preparados para recibirlos. Dado que las velocidades de los dispositivos y la CPU son
muy dispares, puede suceder que mientras un dispositivo prepara un dato la CPU esté
dedicada a otro programa y el dato elaborado tenga que esperar una interrupción para ser
recibido, entonces el dato se guardará en un registro de entrada.
Los registros de órdenes se encargan de transmitir las órdenes de E/S entre la CPU y un
dispositivo de E/S.
Para actuar necesita una serie de elementos hardware entre los que destacan: un registro
que almacene la dirección de memoria desde o hacia donde se produce la transferencia; un
registro contador para guardar la longitud del bloque a transferir; un bit que indique si la
operación es de lectura o escritura y un bloque de control que regula el funcionamiento del
sistema.
Como el bus debe ser compartido por el procesador, para sus tareas propias, y por el DMA,
para las transferencias, se buscan formas de aprovechamiento máximo en lo referente a las
transferencias:
– Por ráfagas: La unidad de DMA toma el control de bus en modo exclusivo y hasta su
finalización.
– Por robo de ciclo: El DMA toma el bus durante un ciclo enviando una palabra cada vez.
– Transparente, se aprovechan los ciclos que el procesador está ocioso con respecto al bus.
2.5. Canales de entrada/salida
El canal de E/S es una extensión del concepto de DMA. Un canal de E/S tiene la capacidad de
ejecutar instrucciones de E/S, lo que le da un control total sobre dichas operaciones. En un
sistema informático que posea tales dispositivos, las instrucciones de E/S se almacenan en
memoria principal y serán ejecutadas por un procesador de propósito específico en el mismo
canal de E/S.
Canal se puede definir como vía de transmisión de información, tanto en sentido lógico como
en sentido físico (línea de conducción), por ejemplo, la unión entre periféricos y ordenador o
la conexión entre terminales y, en general, la conexión entre cualquier dispositivo.
Esencialmente, un canal de E/S es un pequeño ordenador con capacidad para ejecutar sus
propios programas, denominados programas de canal (almacenados en la memoria del
ordenador principal), permitiendo liberar a la CPU de las operaciones de E/S, una vez que
éstas han comenzado a ejecutarse y aprovechándose de este tiempo para que dicha unidad
pueda ejecutar un programa diferente hasta que el canal haya terminado su operación de
E/S ejecutada en paralelo con el trabajo de la unidad central.
Es evidente que el uso del canal se debe a que no toda la información está almacenada
dentro de la memoria principal del ordenador, sino que ésta, está, además, almacenada en
las memorias auxiliares o soportes de la información. Por este motivo, la información
contenida en estos soportes y leída/escrita por los periféricos ha de ser transmitida hacia o
desde el ordenador utilizando los canales como vía física de esa transmisión.
Un canal dispone de una serie de instrucciones que le permiten accionar los controladores y
los periféricos a los que está conectado.
El programa que lo gestiona dispone de una serie de comandos, cada uno de los cuales
realiza una operación sencilla de E/S.
Pues bien los canales, como unión entre periféricos y ordenador cumplen funciones tales
como:
a. Servir de vía de comunicación o transferencia de información desde o hacia un periférico y
la unidad central de proceso.
b. Aprovechar con el mayor rendimiento que sea posible los tiempos de ocupación de la
unidad central de proceso.
Canales selectores
Tienen como misión principal la de enlazar los dispositivos de E/S rápidos con la CPU.
comienza con la transferencia de información de otro, debiendo esperar éste hasta que no se
haya terminado la transferencia de información del primero. El canal de E/S elige un
dispositivo y realiza la transferencia.
Canales multiplexores
Tienen como misión principal enlazar los dispositivos de E/S lentos con la CPU.
Al estar varios periféricos unidos a la memoria central por el mismo canal, este efectúa una
exploración cíclica tomando un carácter a cada uno de los periféricos de entrada y enviando
un carácter a cada uno de los periféricos de salida, repitiendo estas operaciones hasta el
total de ejecución de las operaciones de entrada y salida. Los caracteres pasan entrelazados.
A la hora del diseño de E/S es importante distinguir entre los dispositivos dedicados a un sólo
propósito y dispositivos compartibles por varios usuarios a la vez.
Para lograr todos estos objetivos, el software de E/S se estructura en cuatro niveles que
describimos a continuación:
Su trabajo consiste en aceptar las solicitudes del software y comprobar que éstas cumplen
los requisitos para ser atendidas.
Cuando se emite una solicitud, el manejador puede iniciar la ejecución si está libre o por
contra guardar la petición en una lista de espera.
Por ejemplo, al solicitar un registro de un disco el manejador del dispositivo verificará que el
brazo lector esté sobre la pista adecuada, después buscará el bloque que lo contiene, etc.
protección de los mismos, su nominación, la designación del tamaño de los bloques, etc.
Una pequeña parte del software de E/S no reside en el S.O. como tal, sino que está grabado
en bibliotecas que los usuarios manejan mediante programas enlazados a las mismas.
También existen otros procedimientos de E/S en el ámbito de usuario, por ejemplo el manejo
de dispositivos por cola de impresión que se utiliza en sistemas multiprogramados.
La idea consiste en grabar un directorio especial con los programas que van a ir al dispositivo
y un programa manejador de dicho directorio que selecciona el siguiente proceso cada vez
que el dispositivo queda libre. Así se evita que los usuarios mantengan el dispositivo abierto
para su uso un tiempo indefinido mientras otros procesos están esperando la utilización de
dicho periférico.
4. E/S CONTROLADA POR PROGRAMA
Los dispositivos de E/S sincronizan sus actividades con la CPU mediante protocolos de
intercambio. Mediante el bus del sistema y los registros de estado y de órdenes se
proporcionan las señales para dicha sincronización.
Para comenzar con una operación de E/S es imprescindible tener conocimiento sobre el
estado en que se encuentra el dispositivo. Una práctica común es inicializar cada dispositivo
antes de que participe en actividades de E/S.
Cuando la CPU quiere transmitir o recibir datos lanza una orden de arranque; entonces en el
punto de E/S establece un bit de estado en la posición de ocupado. Cuando el dato ha sido
transmitido el bit cambia a modo de preparado para indicar que el dispositivo puede ser
utilizado para una nueva operación.
En general, a cada canal se le conectan varios dispositivos periféricos y aunque las formas de
conexión son muy variadas hay dos que se utilizan con mayor frecuencia:
En la conexión en serie cada canal tiene asignada una conexión fija a un grupo de periféricos
determinados.
Para conectar con un periférico hay que hacerlo por su canal, y en caso de que esté ocupado
por otro periférico, hay que esperar, por tanto se deben establecer prioridades.
En la conexión en red cada canal se conecta con todos los periféricos permitiendo
transferencias alternativas para los periféricos. Si un canal está ocupado se transmite por
otro.
Como cada canal está conectado a varios periféricos ha de repartir el tiempo entre ellos.
Si atiende a los periféricos que tiene conectados repartiendo el tiempo en forma circular se
dice que es un multiplexor.
Para efectuar una salida se repite el mismo bucle. Dicho bucle se le suele denominar de
espera activa y se utiliza frecuentemente en sistemas monousuario.
CPU a los diferentes dispositivos y pasar al programa de E/S del primer dispositivo preparado.
El escrutinio se puede hacer comenzando cada vez con el primer dispositivo o bien de forma
cíclica para evitar prioridades.
5. INTERRUPCIONES
Las interrupciones son un mecanismo hardware para sincronizar la CPU con los sucesos
externos que son asíncronos. La idea consiste en que la interfaz fuerce a la CPU a dejar su
actividad para atender a una rutina de E/S y luego haga que la unidad central retorne al
proceso en curso en el punto donde lo había dejado.
Para implementar dicha actividad es necesario un registro que guarde el contador del
programa en el instante en que se produce la interrupción para que la CPU pueda reanudar
el proceso justo en el punto en que fue detenido.
6. SPOOL
El acceso a la copia se produce como respuesta a una llamada específica del proceso de
ejecución. Los sistemas de llamada e interrupción han de funcionar coordinados y para ello
el dispositivo
auxiliar esta dividido en secciones las cuales quedan referenciadas en una tabla del spool de
entrada.
Estas secciones pasan por varios estados: disponible, entrada, retención y ejecución.
Aunque las características del spool son buenas no se utilizan en todos los sistemas debido a
su complejidad y al consumo de buena parte del área del S.O., además de necesitar una
elevada cantidad de espacio en el dispositivo de almacenaje auxiliar.
7. BIBLIOGRAFÍA