E/S controlada por programa

La sincronización por programa (E/S programada) es la más sencilla de implementar en un computador, sin embargo, presenta algunos inconvenientes:

• Pérdida de tiempo: el computador no realiza trabajo útil en el bucle de espera

• Impide la realización de tareas periódicas, como la exigida por el refresco de una pantalla

• Dificultades para atender varios periféricos
Los dos últimos inconvenientes podrían paliarse en parte limitando el tiempo de espera, como se muestra en el siguiente organigrama:

ES controlada por programa

Ejemplos de E/S controlada por programa

Determinemos el porcentaje de tiempo de ocupación de CPU de tres dispositivos que se conectan a un procesador mediante E/S programada: un ratón, un disco flexible y un disco duro. Supondremos que el número de ciclos que requiere la operación completa de E/S sobre el dispositivo es de 400, y que el procesador trabaja a 500 MHz.

Se supone que se puede ejecutar la consulta del estado del dispositivo con la frecuencia necesaria para que no se pierda ningún dato, y que los dispositivos están potencialmente siempre ocupados.

1. El ratón debe ser leído 30 veces por segundo para asegurar que no se pierde ningún movimiento

2. El disco flexible transfiere datos al procesador en unidades de 16 bits, a una velocidad de 50KB/seg. No debe perderse ningún dato.

3. El disco duro transfiere datos en bloques de 4 palabras, y puede transferir a una velocidad de 4MB/seg. No debe perderse ningún dato.

Ratón:

Ciclos de reloj por segundo para la lectura = 30 X 400 = 12.000 ciclos por segundo Porcentaje de ciclos de procesador consumidos en la lectura = 12 x 103 / 500 x 103 = 0,002 %

El resultado muestra que se podría utilizar E/S programada con el ratón, sin un impacto significativo en el rendimiento del procesador

Disco flexible

La frecuencia a la que debe realizarse la lectura será: 50KB/seg / 2 byte/acceso por encuesta = 25 K acceso por lectura/ seg.
Ciclos por segundo para la lectura = 25K x 400
Porcentaje de ciclos de procesador consumidos en la lectura = 25 x 1000 x 400 / 500 x 106 = 2 % Este tiempo es importante, pero se puede tolerar en un sistema de gama baja.

Disco duro

La frecuencia a la que debe realizarse la lectura será: 50KB/seg / 2 byte/acceso por encuesta = 25 K acceso por lectura/ seg.
Ciclos por segundo para la lectura = 25K x 400
Porcentaje de ciclos de procesador consumidos en la lectura = 25 x 1000 x 400 / 500 x 106 = 2 % Este tiempo es importante, pero se puede tolerar en un sistema de gama baja.

Disco duro

Hay que realizar lectura del dispositivo a una frecuencia que coincida con el ritmo al que llegarán los bloques de 4 palabras, que es 250 K veces por segundo (4 MB por segundo / 16 bytes por transferencia). Por tanto: Ciclos consumidos para lectura = 250 K x 400
Porcentaje de ciclos de procesador consumidos en la lectura = 100 x 106 / 500 x 106 = 20 %

Resultado que indica que una quinta parte del tiempo del procesador se consumirá en la lectura del dispositivo, con lo que resulta claramente inaceptable.

Fuente: Estructura de Computadores, Facultad de Informática, UCM