Es importante notar que la designación un dispositivo, sea de entrada o de salida, cambia al cambiar la perspectiva desde el que se lo ve. Los teclados y ratones toman como entrada el movimiento físico que el usuario produce como salida y lo convierten a una señal eléctrica que la computadora pueda entender. La salida de estos dispositivos son una entrada para la computadora. De manera análoga, los monitores e impresoras toman como entrada las señales que la computadora produce como salida. Luego, convierten esas señales en representaciones inteligibles que puedan ser interpretadas por el usuario. La interpretación será, por ejemplo, por medio de la vista, que funciona como entrada.
En arquitectura de computadoras, a la combinación de una unidad central de procesamiento (CPU) y memoria principal (aquélla que la CPU puede escribir o leer directamente mediante instrucciones individuales) se la considera el corazón de la computadora y cualquier movimiento de información desde o hacia ese conjunto se lo considera entrada/salida. La CPU y su circuitería complementaria proveen métodos de entrada/salida que se usan en programación de bajo nivel para la implementación de controladores de dispositivos.
Los sistemas operativos y lenguajes de programación de más alto nivel brindan conceptos y primitivas de entrada/salida distintos y más abstractos. Por ejemplo, un sistema operativo brinda aplicativos que manejan el concepto de archivos. El lenguaje de programación C define funciones que les permiten a sus programas realizar E/S a través de streams, es decir, les permiten leer datos desde y escribir datos hacia sus programas.
Una alternativa para las funciones primitivas especiales es la mónada de E/S, que permite que los programas describan su E/S y que las acciones se lleven a cabo fuera del programa. Esto resulta interesante, pues las funciones de E/S introducirían un efecto colateral para cualquier lenguaje de programación, pero ahora una programación puramente funcional resultaría práctica.
Principales funciones de un sistema operativo al manejar dispositivos de entrada/salida (E/S):
• comunicarse con los dispositivos
• manejar interrupciones
• manejar errores
• proporcionar interfaz sencilla y fácil de usar
• tratar de generalizar interfaz independiente del dispositivo
(ej. diskettes, disco duro, CD-ROM).
Clasificación de los dispositivos E/S [Stallings]:
1. Dispositivos legibles por los humanos: apropiados para la comunicación con el usuario (mouse, teclado, monitor, impresora)
2. Dispositivos legibles por máquina: adecuados para comunicarse con equipos electrónicos (discos, cintas)
3. Dispositivos de comunicaciones: apropiados para comunicarse con dispositivos lejanos (modem, tarjeta Ethernet).
Diferencias de los dispositivos E/S:
1.Aplicaciones (ej: disco que almacena archivos, disco que almacena páginas de memoria virtual)
2.Complejidad del control (ej: impresora vs. disco)
3.Unidad de transferencia (bytes o bloques)
4.Representación de los errores (check sum, codificación)
5.Condiciones de error (cómo y qué se informa)
6.Velocidad de los datos (diferencia en varios órdenes de magnitud)
Clasificación de los dispositivos E/S [Tanenbaum]:
1.Dispositivos de bloques: dispositivos que almacenan la información en bloques de tamaño fijo (discos)
2.Dispositivos de caracteres: maneja la información mediante un flujo de caracteres sin estructurarlos en bloques (mouse, teclado, impresora)
Existen tres técnicas para realizar la E/S:
1.E/S programada
2.E/S dirigida por interrupciones
3.E/S por acceso directo a la memoria
E/S programada:
El dispositivo E/S realiza la acción (no la CPU) colocando los bits necesarios en sus registros de status.
No hay interrupciones.
La CPU chequea los bits de status continuamente.
E/S dirigida por interrupciones:
La CPU es interrumpida cuando el dispositivo E/S está listo para intercambiar datos
La CPU esta libre entre la solicitud de datos e interrupción
No hay necesidad de esperar
Consume mucha CPU ya que cada byte leído/escrito pasa por la CPU desde/hacia la memoria
Interrupción precisa:
•El contador de programa (PC) se guarda en un lugar conocido.
•Todas las instrucciones previas a aquella a la que apunta PC ya se ejecutaron por completo.
•No se ha ejecutado ninguna instrucción posterior a aquella a la que apunta PC.
•Se conoce (y se guarda en un lugar conocido) el estado de ejecución de la instrucción a la que apunta PC.
E/S con acceso directo a memoria:
Transfiere un bloque de datos directamente hacia/desde la memoria
Se envía una interrupción cuando los datos fueron transferidos
La CPU sólo participa al inicio y al final de la acción.
Objetivos del diseño:
Eficiencia:
-La mayoría de los dispositivos son muy lentos en comparación con la memoria y la CPU.
-Se usa multiprogramación para aprovechar los tiempos de espera.
-Intercambio se usa para introducir más procesos listos para la ejecución.
-El principal esfuerzo en el diseño de E/S ha sido crear esquemas que mejoren su eficiencia.
-El área que ha recibido más atención ha sido el disco duro, su rapidez no ha evolucionado de la misma manera que la velocidad de las CPUs y memorias.
Evolución de las funciones E/S:
1.El procesador controla directamente los dispositivos periféricos.
2.Se añade una controladora del dispositivo de E/S. La CPU utiliza E/S programada.
3.Se incorporan interrupciones.
4.La controladora recibe el control directo del DMA, se transfieren datos hacia/desde la memoria sin usar CPU.
5.La controladora posee un procesador separado con un conjunto de instrucciones especializadas para E/S. La CPU central le ordena al procesador de E/S la ejecución de un programa de E/S en la memoria principal.
6.La controladora E/S posee adicionalmente su propia memoria local. La controladora es un computador independiente.
Controladoras de dispositivos:
Los dispositivos de E/S tienen componentes
- mecánicos
- electrónicos
El componente electrónico se denomina:
- controladora de dispositivo o
- adaptador de dispositivo
( device controller)
Muchas veces la controladora es capaz de manejar
múltiples dispositivos idénticos.
Muchas veces la controladora adopta un estándar
(discos IDE o SCSI)
Funciones típicas de las controladoras de dispositivos:
•Convertir un flujo de bits en serie en un bloque de bytes
•Corregir errores si es posible
•Copiar datos a la memoria principal.
Controladora de dispositivos:
La controladora tiene registros que le sirven para comunicarse con la CPU.
Al escribir:
- para suministrar datos
- para leer datos
- encender o apagar dispositivo
- etc.
Al leer:
- para averiguar el estado del dispositivo
Además la controladora por lo general tiene un búfer.
No hay comentarios:
Publicar un comentario