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.

5. Symetryczne spotkania5.1 Wprowadzenie5.1.1 Trochę historiiW roku 1978 C. A. R. Hoare opublikował artykul pt. „Communicating SeąuentialProcesses" [HoarTS], w którym zaproponował nowy język do zapisywania procesówwspółbieżnych. Został on nazwany CSP od pierwszych liter tytułu tego artykułu. Dzięki swejprostocie i przejrzystości, a zarazem sile wyrazu język CSP zrobił olbrzymią karierę. Powstałyliczne prace rozważające jego teoretyczne aspekty oraz wiele jego realizacji.W swej pierwotnej formie CSP zrealizowane jako CSP-80. Zbliżoną realizacją jestoccam przeznaczony przede wszystkim do programowania trausputerów. Twórcy języka Adazapożyczyli z CSP ideę spotkań, trochę ją jednak modyfikując.W roku 1985 C. A. R. Hoare wydał książkę [Hoar85], w której szczegółowo imetodycznie przedstawił ideę komunikujących się procesów sekwencyjnych, a także podałpodstawy matematyczne opisywanych mechanizmów. W stosunku do pierwotnego artykułuistotnie zmieniła się notacja. Książkowe CSP jest bardziej formalizmem służącym dospecyfikacji niż językiem programowania. Od roku 1978 zmieniły się także niektóre koncepcje.Hoare zrezygnował m.in. z jawnego wskazywania procesów przy komunikacji i wprowadziłkomunikację przez kanały, zmienił również zasady kończenia się procesów.Z dwóch powodów w niniejszym rozdziale oprzemy się na notacji zaproponowanej wewcześniejszej pracy Hoare'a. Po pierwsze, jest to notacja języka imperatywnego, a takimijęzykami są wszystkie inne języki, do których odwołujemy się w tej książce. Po drugie, brakkanałów ma pewną zaletę. Oprócz tego, że nie trzeba tworzyć nowych bytów, odpada problemsprawdzania, czy z kanału korzystają dokładnie dwa procesy i czy jeden z nich jest nadawcą adrugi odbiorcą. Upraszcza to zapis procesów, a tym samym zrozumienie, jak one działają.Wadą jest to, że procesy muszą znać nawzajem swoje nazwy, co utrudnia tworzenie bibliotek.Dlatego języki programowania oparte na CSP, takie jak occam, Parallel C czy Edip,wymagają komunikacji przez kanały. Języki te omówimy dokładniej na końcu rozdziału.Nie będziemy przedstawiać całego języka CSP. Pominiemy szczegóły, które nie sąkonieczne do zrozumienia przykładów i rozwiązania podanych zadań, a zwłaszcza niebędziemy omawiać sposobu komunikacji programu ze światem zewnętrznym.5.1.2 Struktura programuProgram w CSP składa się z ujętego w nawiasy kwadratowe ciągu treści procesówoddzielonych od siebie znakiem „||", oznaczającym, że procesy będą wykonywane równolegle.Treść każdego procesu jest poprzedzona etykietą, będącą jednocześnie nazwą procesu, poktórej następują dwa dwukropki.Ogólny schemat programu wygląda więc następująco:Pl:: || P2:: || ... || Pn::Procesy możemy parametryzować tworząc tablicę procesów. Tak więc108

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

Saved successfully!

Ooh no, something went wrong!