Wiemy już, że od strony systemu operacyjnego kontrolującego urządzenie tworzące węzeł na zdarzenia reagują tak na prawdę zadania. Zadania w większości systemów dzielą się na procesy i wątki. Wątki są wykonywane w tej samej przestrzeni adresowej co proces, który je stworzył. Procesy są wykonywane w różnych przestrzeniach adresowych, jednak istnieją techniki współdzielenia pamięci - wspomniane zmienne dzielone.
Sygnał to zdarzenie mające numer z pewnego przedziału, zwykle niewielkich liczb całkowitych większych od zera. Proces wysyłający wybiera odbiorcę (możliwe też wysłanie jeden-do-wielu) oraz numer sygnału. Do procesu odbierającego nie jest przekazywana żadna informacja poza numerem sygnału. Numerowi sygnału można przyporządkować jakąś charakterystyczną sytuację, na którą proces powinien zareagować w ściśle określony sposób. Przyporządkowania dokonuje się na etapie projektowania systemu i aplikacji. Wiele sygnałów jest unormowane Posiksem. Reasumując: sygnały same w sobie nie są zdarzeniami, ale niosą informację o zdarzeniach. Dlatego też nie są traktowane jako metoda komunikacji międzyprocesowej, chociaż mogą służyć synchronizacji procesów.
Semafor to zmienna na której operacja testu i modyfikacji jest dokonywana niepodzielnie. Dzięki tej własności zadania w środowisku wielozadaniowym mogą zostać wiarygodnie zsynchronizowane. Semafory są uznawane za metodę IPC. Są to jednak zmienne współdzielone, dlatego w systemach rozproszonych mogą być używane w ograniczonym zakresie. Zadania muszą mieć wstępnie uzgodnione wykorzystanie semaforów, a przez to nie są dla siebie przeźroczyste. Wykorzystanie semaforów pomiędzy węzłami odległymi w przestrzeni jest możliwe, ale na tyle skomplikowane, że wówczas zwykle wykorzystuje się bardziej zaawansowane mechanizmy.
Komunikaty to zwykle nieduże struktury danych przekazywane pomiedzy zadaniami. W niektórych systemach dostępne jest przeźroczyste przekazywanie komunikatów pomiędzy rozproszonymi terytorialnie węzłami. W ćwiczeniu komunikacja odbywa się pomiędzy dwoma procesami na tym samym komputerze - węźle.
Gniazda to punkty końcowe lokalnej komunikacji międzyprocesowej (gniazda domeny Unix) lub Internetu. W ćwiczeniu testowana jest wydajność jądra Linux w operowaniu na gniazdach Internetowych. Szybkość transmisji przez fizyczne łącza jest oczywiście dużo mniejsza.
|