12.07.2015 Views

Spis treœci - Patrz

Spis treœci - Patrz

Spis treœci - Patrz

SHOW MORE
SHOW LESS
  • No tags were found...

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

przekazywane między każdą parą takich procesów. Istnieje kilka sposobów zorganizowaniakomunikacji między identycznie działającymi procesami. Najważniejsze to:• rozgłaszanie (broadcasting),• bicie serca (heartbcating),• przekazywanie żetonu (token passing),• wspólny worek (common bag).Rozgłaszanie to rozsyłanie takiego samego komunikatu do wszystkich procesów (por.algorytm Ricarta i Agrawali w 5.2.1 oraz zadania 5.3.5, 5.3.6).Bicie serca jest techniką stosowaną wtedy, gdy procesy mogą komunikować siębezpośrednio tylko z niewielkim podzbiorem wszystkich procesów. Polega ona nawielokrotnym wykonaniu następujących czynności: wysłanie informacji do procesówsąsiednich (tzn. bezpośrednio połączonych łączami komunikacyjnymi), odebranie od nichodpowiedzi, przetworzenie tych odpowiedzi i ponowne rozesłanie informacji. Czynności tepowtórzone odpowiednią liczbę razy powodują, że cały układ procesów osiąga pewienzamierzony stan (por. 5.3.15).Przekazywanie żetonu jest częstą techniką stosowaną głównie do synchronizacjiprocesów w systemach rozproszonych. Żeton jest pewnym wyróżnionym komunikatem kolejnoprzekazywanym między procesami tworzącymi zamknięty pierścień. Każdy z procesów możeodczytywać informację zawartą w żetonie i odpowiednio ją zmieniać, dzięki czemu jestinformowany i sam informuje innych o stanie systemu. Czasami wystarczy fakt otrzymaniażetonu (por. przekazywanie uprawnień w 5.2.1).Wspólny worek zawiera zbiór komunikatów z opisem i parametrami działań dowykonania. Każdy proces pobiera taki komunikat, wykonuje działanie i wynik wkłada zpowrotem do worka. Wynik ten może być wynikiem ostatecznym lub wymagać dalszegoprzetwarzania. Wyróżniony proces wkłada do worka komunikaty inicjujące i pobiera z niegowyniki (por. 7.3.7, 7.3.8, 7.3.9).Innym, bardzo często spotykanym sposobem komunikacji między procesami jest układklient-proces obsługujący (sender). Klient to proces wysyłający żądania, które wyzwalająreakcję procesu obsługującego. Klient ma w tym układzie inicjatywę, żądania są bowiemwysyłane w dowolnej wybranej przez niego chwili. Po wysłaniu żądania klient zazwyczaj czekana reakcję procesu obsługującego. Proces obsługujący jest zwykle procesem nieskończonym,który cyklicznie czeka na żądanie od klienta, a, następnie obsługuje je. Istnieje kilka wariantówtakiego modelu komunikacji między procesami:• jeden klient —jeden proces obsługujący (por. 3.3.10, 5.3.3),• wielu klientów — jeden proces obsługujący (por. 5.3.7, 5.3.8),• wielu klientów — wiele procesów obsługujących (por. 10.3.6, 10.3.7),• hierarchia — proces obsługujący niższego poziomu jest klientem procesu wyższegopoziomu (por. 4.3.17, 5.3.16, 10.3.7),• interakcja — proces obsługujący i klient zamieniają się rolami w zależności odetapu obliczeń (por. 6.3.2).W bardziej złożonych programach współbieżnych procesem obsługującym może byćcały potok procesów (por. 5.3.4, 5.3.10) lub układ identycznych procesów komunikujących sięprzez rozgłaszanie, przekazywanie żetonu (por. 5.3.2) czy na zasadzie bicia serca.Należy zauważyć, że podana tu klasyfikacja programów współbieżnych nie ma nic.wspólnego z klasyfikacją mechanizmów programowania. Ten sam schemat komunikacjimożna zrealizować za pomocą różnych mechanizmów. Należy jednak podkreślić, że pewne30

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!