6.1. Introducción La Entrada/Salida (E/S) es una unidad básica de

6.1. Introducción
La Entrada/Salida (E/S) es una unidad básica de un sistema computador
a través de la que se realiza la comunicación con el exterior: cargar
programas, introducir de datos para ser procesados y visualizar resultados.
Elementos básicos del sistema de E/S
• Interfaz o controlador del periférico
– Sistema mixto hardware/software que permite la comunicación
entre la CPU/memoria y el periférico, que tiene una velocidad de
transferencia menor y formatos de datos distintos.
• Periférico
– Dispositivo hardware (electrónico, mecánico u óptico) que posibilita
la comunicación con el exterior. Puede ser de almacenamiento o de
E/S de datos.
Processor
Interrupts
Cache
Memory– I/O bus
Main
memory
I/O
controller
Disk
Disk
I/O
controller
I/O
controller
Graphics
output
Network
6.2. Dispositivos de E/S
Tipos de periféricos
• Características útiles para la clasificación de los periféricos
– Comportamiento
• Entrada (teclado, ratón,...)
• Salida (impresora, pantalla, ...)
• Lectura y escritura o almacenamiento (discos y cintas
magnéticas)
– Compañero (según quien introduzca o lea los datos en el otro
extremo del periférico)
• Máquina
• Humano
– Frecuencia de datos (Ancho de banda (KB/seg))
• Frecuencia máxima a la que pueden ser transferidos datos
entre procesador y periférico o entre memoria y periférico.
Dispositivo
Teclado
Ratón
Entrada de voz
Escáner
Salida de voz
Impresora de línea
Impresora láser
Pantalla gráfica
Red-LAN
Modem
Disco flexible
Disco óptico
Cinta magnética
Disco magnético
Comportamiento
Entrada
Entrada
Entrada
Entrada
Salida
Salida
Salida
Salida
Entrada/salida
Entrada/salida
Almacenamiento
Almacenamiento
Almacenamiento
Almacenamiento
Compañero
Humano
Humano
Humano
Humano
Humano
Humano
Humano
Humano
Máquina
Máquina
Máquina
Máquina
Máquina
Máquina
Frecuencia de datos
KB/seg
0.01
0.02
0.02
400
0.6
1
200
60000
500-6000
2-8
100
1000
2000
2000-10000
6.3. Métodos de sincronización
Los dispositivos funcionan más lentos que el procesador, por lo que este
sigue ejecutando instrucciones durante las operaciones de E/S, y lo que
hace es sincronizarse con ellos para determinar cuando los datos están
listos, como por ejemplo ha habido un movimiento del ratón, o se ha leído
un bloque de datos de un disco.
(1) Consulta: el procesador comprueba cada cierto tiempo (leyendo el
registro de estado) si los datos en el dispositivo están listos.
(2) Interrupción: el dispositivo interrumpe cuando los datos están listos.
En ese momento el procesador tendrá que ejecutar una rutina para
determinar de qué dispositivo se trata y realizar la transferencia de los
datos.
(1) Sincronización por consulta
–
Forma más simple de sincronización
–
El dispositivo pone la información en el registro de Estado y el
procesador la lee
–
El procesador hace todo el trabajo
Desventaja: Se necesita mucho tiempo de procesador (sobrecarga)
dedicado a comprobar el estado del periférico y transferir el dato.
Sobrecarga = proporción del tiempo de CPU que se utiliza para la
sincronización.
Ejercicio: Suponga que el número de ciclos que requiere una operación de
encuesta, incluidos el salto a la rutina de encuesta, el acceso al dispositivo y el
retorno al programa de usuario, es 400 y que el procesador trabaja con un reloj de
500 MHz. Determine la proporción del tiempo de CPU que se consume en cada
uno de los tres casos siguientes, suponiendo que se realiza la encuesta con la
frecuencia necesaria para que no se pierda ningún dato y que los dispositivos
están potencialmente siempre ocupados:
– El ratón debe ser encuestado 30 veces por segundo para asegurar que no se
pierde ningún movimiento realizado por el usuario.
– El disco flexible transfiere datos al procesador en unidades de 16 bits, a una
velocidad de 50 KB/sg. No debe perderse ningún dato.
– El disco duro transfiere datos en bloques de 4 palabras, y puede transferir a
una velocidad de 4MB/sg. De nuevo, no debe perderse ningún dato.
Ciclos por segundo para encuestas:
cpse = encuestas/segundo * ciclos/encuesta = e/s * c/e
Ciclos por segundo totales:
cpst = frecuencia de reloj
Sobrecarga:
S = ( cpse / cpst ) Æ S% = ( cpse / cpst ) * 100 %
Ratón
cpse = e/s * c/e = 30 * 400 = 12 * 103 c/s
S = cpse / cpst Æ S% = ( 12 * 103 / 500 * 106 ) * 102 = 0.0024 %
Disco flexible
e/s = frecuencia de llegada de datos =
velocidad de transferencia / tamaño del bloque = 50KB/seg / 2B = 25K
cpse = e/s * c/e = 25K * 400 § 25*103 * 400 = 25*103 * 4*102 = 100*103 *102 =
10*106
S = cpse / cpst Æ S% = ( 10 * 106 / 500 * 106 ) * 102 = ( 1 / 50 ) * 102 = 2 %
Disco duro
e/s = 4MB/seg / 16B § ( 4 / 16 ) * 106 = 0.25 * 106
cpse = e/s * c/e = 0.25 * 106 * 400 = 0.25*106 * 4*102 = 108
S = cpse / cpst Æ S% = ( 108 / 500 * 106 ) * 102 = ( 108 / 5 * 108 ) * 102 =
( 1 / 5 ) * 102 = 20 %
(2) Sincronización por interrupciones
– Las interrupciones tienen su origen en los controladores de los
periféricos que activan la señal de interrupción de la CPU (ej. INTR)
para demandar su atención.
Al final de la ejecución de una instrucción la CPU comprueba si hay
interrupciones pendientes. En caso afirmativo y si están permitidas (bit de
habilitación de interrupciones activo en el registro de estado) Æ el
procesador inicia un ciclo de reconocimiento de interrupción que tiene
como fin bifurcar a una rutina de servicio de interrupción para atender al
periférico que interrumpió y, finalmente, volver al programa interrumpido.
Ejercicio: Sobrecarga de las interrupciones en un sistema de E/S.
Determinación del impacto de la sobrecarga de las interrupciones. Suponga que
tiene el mismo disco duro y el mismo procesador que en el ejercicio anterior, pero
que ahora se utiliza E/S por interrupciones. La sobrecarga para cada
transferencia, incluida la interrupción, es de 500 ciclos de reloj. Encuentre la
proporción de tiempo de procesador consumida si cada disco duro transfiere datos
solo el 5% del tiempo.
- Ciclos por segundo para interrupciones:
cpsi = interrupciones / segundo * ciclos / interrupción = i/s * c/i
- Cuando el disco está siempre ocupado:
i/s = e/s = 0.25M = 250K Æ cpsi = 250K * 500 § 125 * 106
Sobrecarga:
So = ( cpse / cpst ) = (125 * 106) / (500 * 106) = 0.25 Æ S% = 25%
- En la realidad el disco transfiere el 5% del tiempo:
Sr = (5%cpse)/cpst = [ 5%(125 * 106)] / (500 * 106)= 5%[(125 * 106) / (500 * 106)]
= (5/100)*0.25 = 1.25 / 100 Æ S% = (1.25 / 100) * 100 = 1.25%