E / S superpuestas es un nombre que se utiliza para E / S asíncronas en la API de Windows . Se introdujo como una extensión de la API en Windows NT .
Utilizando la I solapado / O requiere pasar una OVERLAPPED
estructura a funciones API que normalmente bloquean, entre ellos ReadFile()
, WriteFile()
y Winsock 's WSASend()
y WSARecv()
. La operación solicitada es iniciada por una llamada de función que regresa inmediatamente y es completada por el SO en segundo plano. La persona que llama puede especificar opcionalmente un identificador de evento Win32 que se generará cuando se complete la operación. Alternativamente, un programa puede recibir una notificación de un evento a través de un puerto de finalización de E / S , que es el método preferido para recibir notificaciones cuando se usa en entornos de multiprocesamiento simétrico o cuando se manejan E / S en una gran cantidad de archivos o sockets. . El tercer y último método para obtener la notificación de finalización de E / S con E / S superpuestas es usar ReadFileEx()
y WriteFileEx()
, que permiten que se proporcione la rutina User APC, que se activará en el mismo hilo al finalizar (User APC es algo muy similar a la señal UNIX, con la principal diferencia de que las señales utilizan números de señal de la enumeración históricamente predefinida, mientras que el APC de usuario puede ser cualquier función declarada como " void f(void* context)
"). La llamada API superpuesta presenta algunas diferencias según la versión de Windows utilizada. [1]
La E / S asíncrona es particularmente útil para enchufes y tuberías .
Unix y Linux implementan la API de E / S asíncrona POSIX (AIO).
Referencias
enlaces externos
- Referencia de MSDN: ReadFile ()
- Referencia de MSDN: WriteFile ()
- Referencia de MSDN: estructura de datos SUPERPUESTA
- Puerto de finalización de E / S