12.07.2015 Views

Spis treœci - Patrz

Spis treœci - Patrz

Spis treœci - Patrz

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

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

[Ma0087, WeisOOb, Gosc91]). Wśród strukturalnych mechanizmów warto wspomnieć owyrażeniach .ścieżkowych (por. [CaHa74, IsMa82, MaOO87, BiSh88]). W niniejszej książcenie będziemy się jednak nimi zajmować.2.8.2 Mechanizmy komunikacji i synchronizacjiZarówno monitory jak i semafory są mechanizmami służącymi głównie dosynchronizacji procesów. W tym punkcie omawiamy mechanizmy umożliwiające przesyłaniekomunikatów między procesami i zapewniające właściwą ich synchronizację.Mechanizmy komunikacji używane w językach programowania przypominają bardzosposoby, jakimi my sami komunikujemy się ze sobą. Każdy z nas jest przecież czymś wrodzaju procesora mającego dostęp do własnej pamięci (tej operacyjnej w mózgu i tejpomocniczej w książkach i notatnikach) i każdy z nas musi komunikować się z innymi ludźmi.SpotkaniaNajbardziej bezpośredni sposób komunikacji między dwojgiem ludzi to osobistespotkanie. Spotkania jako mechanizm komunikacji między procesami zaproponował w roku1978 C. A. R. Hoare w języku o nazwie CSP (Communicating Sequential Processes} [Hoar78].Spotkanie w CSP przypomina spotkanie dwóch dobrze znających się osób w z góryumówionym miejscu, podczas którego jedna osoba coś daje, a druga to odbiera. Możnapowiedzieć, że jest to spotkanie symetryczne (rozdz. 5) ze względu na relację znajomości(choć jednocześnie asymetryczne ze względu na kierunek przepływu informacji).Ideę spotkań zaproponowanych w CSP rozwinięto podczas projektowania języka Ada[Pyle86]. Spotkanie w Adzie przypomina wizytę klienta w zakładzie naprawczym. Jest tospotkanie asymetryczne (rozdz. 6) zarówno ze względu na relację znajomości, jak i zewzględu na aktywność podczas spotkania. Klient wie do kogo przyszedł, ale jego rola w tymspotkaniu ogranicza się do czekania na wykonanie usługi. Pracownik zakładu nie zna klienta,za to on podczas spotkania działa. Tego typu spotkanie umożliwia wymianę albo w obie strony(klient przynosi zepsutą rzecz, pracownik dokonuje naprawy i zwraca klientowi naprawionąrzecz), albo tylko w jedną stronę (naprawy nie można wykonać na miejscu i trzeba umówić sięna nowe spotkanie).Przestrzeń krotekSpotkanie się z procesem lub wysianie do niego komunikatu wymaga znajomościnazwy procesu. Jednak są przypadki, w których, aby działać, nie trzeba w ogóle znaćdostawców informacji ani odbiorców przygotowanych przez nas danych. Cala wiedzadotycząca n p. matematyki została zapisana w tysiącach tomów książek i czasopism i jestdostępna każdemu, kto chce się zajmować tą dziedziną nauki. Uczony matematyk dowodzącnowe twierdzenie korzysta z dorobku wielu innych matematyków. Nie musi przy tym ani znaćich nazwisk, ani wiedzieć, czy jeszcze żyją. Podobnie uczony ten nie wie, kto i kiedy skorzystaz jego nowego twierdzenia.Ten specyficzny sposób komunikacji nie zakładający żadnych powiązań międzyprocesami, ani w czasie, ani w przestrzeni, został zaproponowany w języku Linda [Gele85,AhCGSG, BenAOO]. Podstawą komunikacji między procesami jest w nim przestrzeń krotek(rozdz. 7), która zawiera wszystkie wyniki działania procesów. Wyniki te są umieszczane przezprocesy w postaci ciągów obiektów różnych typów. Procesy mogą z nich korzystać dzięki26

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

Saved successfully!

Ooh no, something went wrong!