E/S Asíncrona

De Wikipedia, la enciclopedia libre

En la informática, la E/S asíncrona (también llamada E/S no secuencial) es una forma de procesamiento de entrada/salida que permite que otros procesos continúen antes de que una transmisión finalice.

Las operaciones de entrada y salida (E/S) en una computadora pueden ser extremadamente lentas comparados con el procesamiento de datos. Un dispositivo de E/S puede incorporar dispositivos mecánicos que deben moverse de forma física, como por ejemplo un disco duro que debe buscar una pista sobre la cual leer o escribir; lo cual suele ser increíblemente lento si se compara con conmutar una señal eléctrica binaria. Por ejemplo, durante una operación de disco duro que pueda durar 10 milisegundos, un procesador que este funcionando a tan solo un gigahercio sería capaz de ejecutar 10 millones de ciclos.

Un enfoque simple para realizar E/S sería iniciar la operación y simplemente esperar a que finalice. Pero tal operación (llamada E/S síncrona o E/S bloqueante) bloquearía el progreso de un programa mientras la operación se completa, lo cual dejaría a los recursos del sistema inactivo. Cuando un programa realiza muchas operaciones de E/S (tales como un programa que depende fundamentalmente en la entrada de un usuario), esto significa que el procesador podría llegar a pasar mucho tiempo inactivo esperando a a que dichas operaciones se completen.

Alternativamente, es posible iniciar una operación de E/S y luego realizar procesamiento que no depende de dicha operación mientras esta se completa. Este enfoque es llamado entrada/salida asíncrona, y se basa en que solo las operaciónes que dependen de los resultados de la operación E/S requieren esperar a que se complete, mientras que cualquier otra operación que no depende de estos resultados puede continuar ejecutandose.

Muchas operaciones de sistemas operativos existen para facilitar la implementación de la E/S Asíncrona a varios niveles. De hecho, una de las funciones principales de los sistemas operativo (excepto los más rudimentarios) es la capacidad de realizar al menos una forma básica de E/S asíncrona, aunque esto podría no ser particularmente aparente para el usuario o el programador. En la solución más simple por software, se realiza un sondeo sobre el hardware cada ciertos intervalos para verificar si esta listo para la siguiente operación. El acceso directo a memoria (DMA) puede incrementar la eficiencia de un sistema basado en sondeos, y el uso de interrupciónes de hardware eliminan la necesidad de sondeos completamente.

La asíncronia de E/S es deseable para mejorar el rendimiento, la latencia y/o la capacidad de respuesta.