En informática , la entrada/salida ( E/S , o informalmente E / S ) es la comunicación entre un sistema de procesamiento de información, como una computadora , y el mundo exterior, como otro sistema informático, periféricos o un operador humano. Las entradas son las señales o datos que recibe el sistema y las salidas son las señales o datos que envía. El término también puede usarse como parte de una acción; "realizar E/S" significa llevar a cabo una operación de entrada o salida .
Los dispositivos de entrada/salida (E/S) son los componentes dehardwareque utiliza un usuario (u otro sistema) para comunicarse con un ordenador. Por ejemplo, untecladooun ratónsondispositivos de entrada, mientras quelos monitoresylas impresorassondispositivos de salida. Los dispositivos de comunicación entre ordenadores, comolos módemsylas tarjetas de red, suelen realizar operaciones tanto de entrada como de salida. Cualquier interacción con el sistema por parte de un usuario constituye unaentrada, y la respuesta del sistema se denomina salida.
La designación de un dispositivo como de entrada o salida depende de la perspectiva. Los ratones y teclados captan los movimientos físicos del usuario y los convierten en señales de entrada que un ordenador puede comprender; la salida de estos dispositivos es la entrada del ordenador. Del mismo modo, las impresoras y los monitores captan las señales que emiten los ordenadores como entrada y las convierten en una representación comprensible para el usuario. Desde la perspectiva del usuario , leer o visualizar estas representaciones constituye la recepción de la salida; este tipo de interacción entre ordenadores y humanos se estudia en el campo de la interacción persona-ordenador . Una complicación adicional reside en que un dispositivo tradicionalmente considerado de entrada, como un lector de tarjetas o un teclado, puede aceptar comandos de control para, por ejemplo, seleccionar el apilador o mostrar las luces del teclado, mientras que un dispositivo tradicionalmente considerado de salida puede proporcionar datos de estado (por ejemplo, tóner bajo, falta de papel o atasco de papel).
En arquitectura de computadoras, la combinación de la CPU y la memoria principal , a la que la CPU puede leer o escribir directamente mediante instrucciones individuales , se considera el cerebro de una computadora. Cualquier transferencia de información hacia o desde la combinación CPU/memoria, por ejemplo, al leer datos de una unidad de disco , se considera E/S. [ 1 ] La CPU y sus circuitos de soporte pueden proporcionar E/S mapeada en memoria que se utiliza en la programación de computadoras de bajo nivel , como en la implementación de controladores de dispositivos , o pueden proporcionar acceso a canales de E/S . Un algoritmo de E/S es aquel diseñado para aprovechar la localidad y funcionar de manera eficiente al intercambiar datos con un dispositivo de almacenamiento secundario, como una unidad de disco.
Interfaz
Se requiere una interfaz de E/S siempre que el dispositivo de E/S sea controlado por un procesador. Normalmente, una CPU se comunica con los dispositivos a través de un bus . La interfaz debe contar con la lógica necesaria para interpretar la dirección del dispositivo generada por el procesador. La interfaz debe implementar el protocolo de enlace mediante comandos apropiados (como BUSY, READY y WAIT), y el procesador puede comunicarse con un dispositivo de E/S a través de la interfaz. Si se intercambian diferentes formatos de datos, la interfaz debe poder convertir datos en serie a formato paralelo y viceversa. Dado que sería un desperdicio que un procesador permaneciera inactivo mientras espera datos de un dispositivo de entrada, debe existir la posibilidad de generar interrupciones [ 2 ] y los números de tipo correspondientes para su posterior procesamiento por parte del procesador, si fuera necesario.
Un ordenador que utiliza E/S mapeada en memoria accede al hardware leyendo y escribiendo en ubicaciones de memoria específicas, utilizando las mismas instrucciones de lenguaje ensamblador que el ordenador usaría normalmente para acceder a la memoria. Un método alternativo es mediante E/S basada en instrucciones, que requiere que una CPU tenga instrucciones especializadas para E/S. [ 1 ] Tanto los dispositivos de entrada como los de salida tienen una velocidad de procesamiento de datos que puede variar considerablemente. [ 2 ] Con algunos dispositivos capaces de intercambiar datos a velocidades muy altas, se requiere acceso directo a la memoria (DMA) sin la ayuda continua de una CPU. [ 2 ]
Implementación de nivel superior
Los sistemas operativos y las herramientas de programación de nivel superior emplean conceptos y primitivas de E/S más abstractos y separados . Por ejemplo, la mayoría de los sistemas operativos proporcionan a los programas de aplicación el concepto de archivos . La mayoría de los lenguajes de programación proporcionan funcionalidades de E/S, ya sea como instrucciones en el propio lenguaje o como funciones en una biblioteca estándar.
Una alternativa a las funciones primitivas especiales es la mónada de E/S , que permite a los programas describir únicamente las operaciones de entrada/salida, y las acciones se ejecutan fuera del programa. Esto es importante porque las funciones de E/S introducirían efectos secundarios en cualquier lenguaje de programación, pero esto hace que la programación puramente funcional sea práctica.
Las funciones de entrada/salida que proporcionan los sistemas operativos pueden estar orientadas a registros , en cuyo caso los archivos contienen registros , o estar orientadas a flujos, en cuyo caso el archivo contiene un flujo de bytes.
Entrada/salida de canal
La E/S de canal requiere el uso de instrucciones diseñadas específicamente para realizar operaciones de E/S. Las instrucciones de E/S se dirigen al canal o al canal y al dispositivo; el canal accede de forma asíncrona a toda la demás información de direccionamiento y control necesaria. Esto es similar a DMA, pero más flexible.
E/S mapeada por puertos
La E/S mapeada por puertos también requiere el uso de instrucciones de E/S especiales. Normalmente, se asigna uno o más puertos al dispositivo, cada uno con una función específica. Los números de puerto se encuentran en un espacio de direcciones distinto al utilizado por las instrucciones normales.
Acceso directo a la memoria
El acceso directo a memoria (DMA) es un método que permite a los dispositivos transferir grandes cantidades de datos hacia y desde la memoria de forma independiente de la CPU.
Véase también
Referencias
- 1 2 Null, Linda; Julia Lobur (2006). Fundamentos de organización y arquitectura de computadoras . Jones & Bartlett Learning. pág. 185. ISBN 0763737690Archivado del original el 20 de diciembre de 2016. Consultado el 11 de diciembre de 2016 .
- 1 2 3 Abd-El-Barr, Mostafa; Hesham El-Rewini (2005). Fundamentos de organización y arquitectura de computadoras . John Wiley & Sons. págs. 161–162 . ISBN 9780471478331Archivado del original el 21 de diciembre de 2016. Consultado el 11 de diciembre de 2016 .
Enlaces externos
Contenido multimedia relacionado con la entrada/salida en Wikimedia Commons
- Entrada/salida