Nakładające się wejścia/wyjścia

Nakładające się operacje we/wy to nazwa używana dla asynchronicznych operacji we/wy w interfejsie API systemu Windows . Został wprowadzony jako rozszerzenie API w systemie Windows NT .

Wykorzystanie nakładających się operacji we/wy wymaga przekazania struktury OVERLAPPED do funkcji API, które normalnie blokują, w tym ReadFile() , WriteFile() oraz Winsock WSASend () i WSARecv() . Żądana operacja jest inicjowana przez wywołanie funkcji, które zwraca się natychmiast i jest zakończona przez system operacyjny w tle. Obiekt wywołujący może opcjonalnie określić uchwyt zdarzenia Win32 , który ma zostać zgłoszony po zakończeniu operacji. Alternatywnie, program może otrzymać powiadomienie o zdarzeniu za pośrednictwem adresu Port zakończenia we/wy , który jest preferowaną metodą otrzymywania powiadomień, gdy jest używany w symetrycznych środowiskach wieloprocesorowych lub podczas obsługi operacji we/wy na dużej liczbie plików lub gniazd . Trzecią i ostatnią metodą uzyskania powiadomienia o zakończeniu I/O z nakładającymi się IO jest użycie ReadFileEx() i WriteFileEx() , które pozwalają na zapewnienie procedury User APC, która zostanie uruchomiona w tym samym wątku po zakończeniu (User APC jest rzeczą bardzo podobną do sygnału UNIX, z tą główną różnicą, że sygnały używają numerów sygnałów z historycznie predefiniowanego wyliczenia , podczas gdy User APC może być dowolną funkcją zadeklarowaną jako " void f(void* context) "). Tak zwany nakładający się interfejs API przedstawia pewne różnice w zależności od używanej wersji systemu Windows.

Asynchroniczne operacje we/wy są szczególnie przydatne w przypadku gniazd i potoków .

Unix i Linux implementują asynchroniczny interfejs API we/wy POSIX (AIO).

Linki zewnętrzne