Los
dispositivos de E/S (Entrada-Salida) son aquellos a través de los cuales un
humano u otro dispositivo intercambian información con un ordenador. Como
ejemplos más claros de dispositivos de entrada están el ratón o el teclado, y
de salida pueden ser por ejemplo una impresora.
La
pantalla se puede considerar un dispositivo de salida en cuanto a que muestra
datos al usuario pero es realmente la tarjeta gráfica el dispositivo de salida
y la pantalla sólo una extensión del mismo.
La
forma en la que gestionemos la comunicación con estos dispositivos podrá tener
un mayor o menor efecto en el rendimiento global del ordenador.
Las
consideraciones que hay que tener en cuanto al diseñar un sistema de E/S (I/O:
Input-Output en inglés) son las siguientes:
- - La necesidad de los agentes humanos de introducir información y recibir información en respuesta
- - La necesidad de los dispositivos de introducir información y recibirla
- - La necesidad de los ordenadores de comunicarse entre sí en red
En
el primer caso la cantidad de información introducida por el usuario es muy
pequeña pero se requiere que la respuesta sea inmediata (introducir un retardo
de 0,5 segundos entre la pulsación de una tecla y la aparición del carácter
correspondiente en un procesador de textos es ciertamente frustrante para
cualquier usuario).
En
el segundo sin embargo la cantidad de información transmitida es mucho mayor y
debe ser tratada en bloques para que resulte eficiente. La velocidad de emisión
de información puede no ser la misma que la de consumo y para lidiar con ello
existen distintos tipos de buffers.
A
continuación vamos a ver los distintos modos de gestión de los eventos de E/S:
-
E/S
programada: en este modo el dispositivo lanza un evento y el procesador se
pone en modo espera hasta que se resuelve, preguntando constantemente cuál es
el estado del dispositivo mientras permanece inactivo. Se puede ver en el
siguiente esquema:
-
E/S de
sondeo: en este modo el sistema pregunta por turno a cada dispositivo si
está listo para emitir o recibir datos. En caso afirmativo gestiona el evento y
pasa al siguiente. Este modo suele usarse en sistemas de red para interrogar a
los puertos. Un esquema de su lógica puede verse a continuación:
-
E/S de
interrupción: como los dispositivos son normalmente mucho más lentos que
los procesadores actuales, en otros modos de gestión se pueden gastar muchos
ciclos de procesador esperando la respuesta de un dispositivo interrogado. La
técnica de interrupción intenta extraer rendimiento de esta situación dejando
que el procesador continúe con la ejecución del resto del proceso hasta que el
dispositivo está listo para funcionar, en ese momento lanza una interrupción
que detiene la ejecución del programa, se guarda el estado en que estaba, se
resuelve la operación de E/S y se continúa. Debido a la diferencia de
velocidades que hemos comentado antes esta suele ser una muy buena técnica pero
dependiendo del número y tipo de dispositivos podemos llegar de nuevo a
excesivas interrupciones que ralenticen al procesador de forma apreciable.
Existen varios tipos de interrupción: internas, externas y por software.
- E/S en
modo DMA o Data Transfer: el acceso directo a memoria (DMA: Direct Memory Access) permite a cierto tipo de
componentes de ordenador acceder a la memoria del sistema para leer o escribir
independientemente de la CPU principal. Los subsistemas de hardware que
utilizan DMA pueden ser: controladores de disco duro, tarjetas gráficas,
tarjetas de red, tarjetas de sonido y tarjetas aceleradoras. También es
utilizado para la transferencia de datos dentro del chip en procesadores con
múltiples núcleos. Se puede ver su funcionamiento de forma esquemática en la
siguiente figura:
Al usar esta técnica el dispositivo y la CPU pueden tener que
competir por el acceso al bus, para ello existen varias formas de gestionarlo:
·
DMA por robo de ciclo
·
DMA por ráfagas
·
DMA transparente
·
DMA tipo scatter-gather
-
Procesadores
de E/S: el procesador de E/S (IOP en inglés) está conectado al bus
principal y ejecuta código propio para controlar la operación de E/S. Surgen
para paliar inconvenientes como los que se detallan en la siguiente tabla:
Bibliografía:
- - http://ecourses.vtu.ac.in/nptel/courses/Webcourse-contents/IISc-BANG/Operating%20Systems/pdf/Mod%205_LN.pdf
- - http://www.cs.umsl.edu/~sanjiv/classes/cs4760/lectures/io.pdf
- - http://www.google.com/events/io/2011/index-live.html
- - http://chess.eecs.berkeley.edu/eecs149/sp09/docs/an01241.pdf
- - http://www.axis.com/files/tech_notes/etrax_fs_iop_howto-1_0.pdf
No hay comentarios:
Publicar un comentario