겹친 I/O

Overlapped I/O

오버랩된 I/O윈도 API에서 비동기 I/O에 사용되는 이름이다.윈도 NT에서 API의 확장으로 도입되었다.

중복된 I/O를 활용하려면 다음 절차를 거쳐야 함OVERLAPPED다음을 포함하여 일반적으로 차단되는 API 함수에 구조화ReadFile(),WriteFile(), 및 Winsock의WSASend()그리고WSARecv() 요청된 작업은 즉시 반환되는 함수 호출에 의해 시작되며, OS에 의해 백그라운드에서 완료된다.호출자는 작업이 완료될 때 올릴 Win32 이벤트 핸들을 선택적으로 지정할 수 있다.대칭 다중 처리 환경에서 사용하거나 다수의 파일 또는 소켓에서 I/O를 처리할 때 알림을 받는 선호 방식인 I/O 완료 포트를 통해 이벤트에 대한 알림을 프로그램이 수신할 수 있다.I/O 완료 알림을 중복된 IO와 함께 받는 세 번째 및 마지막 방법은ReadFileEx()그리고WriteFileEx()즉, 사용자 APC 루틴을 제공할 수 있으며, 이 루틴은 완료 시 동일한 스레드에서 발사된다(사용자 APC는 UNIX 신호와 매우 유사한 것으로, 주된 차이점은 신호가 역사적으로 사전 정의된 열거에서 나온 신호 번호를 사용하고 있다는 것과 동시에 사용자 APC는 "로 선언된 어떤 기능도 될 수 있다).void f(void* context)"). 소위 오버랩된 API는 사용하는 윈도 버전에 따라 약간의 차이를 나타낸다.[1]

비동기 I/O는 소켓과 파이프에 특히 유용하다.

유닉스리눅스는 AIO(POSIX 비동기 I/O API)를 구현한다.

참조

  1. ^ "Socket overlapped I/O versus blocking/nonblocking mode". Archived from the original on 2018-05-03.

외부 링크