En un sistema de monoprogramación todos
los recursos del ordenador. CPU, memoria, E/S, etc. Se abocan a la ejecución de
un solo programa a la vez. Esto conlleva a una baja utilización de los
recursos, por ejemplo; Cuando el programa en ejecución realiza una operación de
E/S se introduce la orden precisa en el registro de órdenes. El controlador
responde a esto traduciendo esas órdenes al dispositivo, y poniendo a uno el
bit de ocupación para indicar que el dispositivo está ocupado realizando una
operación de E/S. Cuando termine la operación, el controlador pone a cero este
bit para indicar que la operación concluyó, y el dispositivo está desocupado.
Para saber cuándo termina la E/S, el programa, después de mandar la orden,
tiene que ejecutar un ciclo del siguiente estilo:
ØLeer el registro de estado
ØMientras (el bit de ocupación esté a uno)
ØLeer el registro de estado
ØFin Mientras
Esto
nos conlleva a que en un momento dado la
CPU este realizando una acción sin ocupar la E/S y esta ultima quede ociosa o
bien la E/S este siendo ocupada y la CPU revisando la finalización de algún
ciclo; cómo podemos ver en la imagen (grafico), donde los rectángulos rellenos
a trazas representan el ciclo de comprobación. Para dar una medida de la
infrautilización de los recursos que conlleva esta forma de realizar las E/S,
piénsese que en el tiempo en que una impresora imprime una línea, la CPU, en
lugar de ejecutar el ciclo de comprobación que aparece líneas más arriba,
podría ejecutar millones de instrucciones de otro programa. A esta forma de
realizar la E/S de los sistemas de monoprogramación se le llama E/S controlada
por programa.

No hay comentarios:
Publicar un comentario