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.

wyrobić u czytelnika pewne intuicje co do wysokopoziomowych mechanizmów synchronizacjigwarantowanych na poziomie języka programowania. Okazuje się bowiem, że mechanizmy tebardzo przypominają sposoby, jakimi my sami ze sobą się synchronizujemy i komunikujemy.Wszystkie rozdziały począwszy od trzeciego mają jednakową strukturę. Zaczyna jeszczegółowy opis wybranego mechanizmu. Następnie pokazujemy sposób jego użycia naprzykładzie różnych wariantów rozwiązań klasycznych problemów omówionych w rozdz. 2.Trzecią częścią każdego rozdziału są treści zadań do samodzielnego rozwiązania. W czwartejzaś podajemy przykładowe ich rozwiązania wraz z niezbędnymi wyjaśnieniami.Rozdział 3 jest poświęcony synchronizacji procesów w systemach scentralizowanych zapomocą klasycznego semafora Dijkstry.W rozdziale 4 zajmujemy się synchronizacją procesów za pomocą monitorów. Prezentujemyw nim także sposoby zapisywania monitora w różnych językach programowania.W rozdziale 5 omawiamy język programowania współbieżnego CSP oparty na mechanizmiesymetrycznych spotkań zaproponowanym przez C. A. R. Hoare'a oraz informujemy o trzechjęzykach wyrosłych z CSP, w których także używa się mechanizmu symetrycznych spotkań.Są to: ~~occam (przeznaczony do programowania transputerów), Paralld C (rozszerzeniejęzyka C o mechanizm spotkań) oraz Edip (do programowania sieci mikrokomputerowych,zaprojektowany w Instytucie Informatyki UW i zaimplementowany na komputerach typu IBMPC pod systemem MS-DOS).Rozdział 6 dotyczy asymetrycznych spotkań w języku Ada. Ograniczyliśmy się do krótkiegoomówienia tylko tych konstrukcji języka, których użyto w przykładach i rozwiązaniach.W rozdziale 7 zajmujemy się przestrzenią krotek zaproponowaną w eksperymentalnym językuLinda. Mechanizm ten pozwala na asynchroniczną komunikację między procesami, ale jegogłówną zaletą i siłą jest możliwość selektywnego wyboru komunikatów.W rozdziałach 3-7 omawiamy mechanizmy synchronizacji i komunikacji stosowane w różnychjęzykach programowania współbieżnego niezależnie od systemu operacyjnego. W rozdziałach8-10 zajmujemy się mechanizmami dostępnymi na poziomie konkretnego systemuoperacyjnego, którym w tym przypadku jest Unix. Wybór tego systemu był podyktowany jegodużą popularnością, przenośnością, otwartością a także faktem, że zawiera on bardzo bogatyzestaw narzędzi wspomagających programowanie współbieżne.W rozdziale 8 prezentujemy mechanizm semaforów dostępny w systemie Unix. Semaforyunixowe różnią się istotnie od klasycznych semaforów Dijkstry. Są znacznie silniejsze,zawierają w sobie różne uogólnienia klasycznej definicji. Aby zyskać na zwięzłości iprzejrzystości, w prezentowanych przykładach i w rozwiązaniach zadań posługujemy sięspecjalnie wprowadzoną notacją. Kilka przykładów zapisujemy całkowicie w języku C, bypokazać, jak naprawdę powinien wyglądać program współbieżny w systemie Unix. (Wpodobny sposób postępujemy w rozdz. 9 i 10.)Rozdział 9 jest poświęcony mechanizmowi komunikatów i kanałów służącemu w systemieUnix do asynchronicznego komunikowania się procesów na jednej maszynie. Mechanizm tenjest uogólnieniem mechanizmu potoków, dlatego o samych potokach w systemie Unix tylkowspominamy.11

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

Saved successfully!

Ooh no, something went wrong!