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.

]w Adzie można zapisać następująco:selectwhen wl and then w2 =>accept WEZl(x: in Integer) do xl := x; end WEŹl;11;orwhen w3 =>accept WEZ2(x: in Integer) do x2 := x; end WEŹ2;12;oraccept WEZ3(x: in Integer) do x3 := x; end WEŹ3;13;end select;Odpowiednia gałąź instrukcji select jest wybierana w zależności od spełnienia dozorówwl and w2 oraz w3 (w gałęzi trzeciej dozorem jest domyślnie true) i możliwości spotkania winstrukcjach accept WEŹ.Jeśli w żadnej gałęzi ze spełnionym dozorem nie może dojść do spotkania, to instrukcjaselect zawiesza się w oczekiwaniu na takie spotkanie. Jeśli żaden dozór nie jest spełniony, towykonanie tej instrukcji kończy się błędem.Jeśli w instrukcji select umieścimy na końcu jeszcze klauzulę else I, to ciąg instrukcji Iwykonuje się wówczas, gdy wszystkie dozory są fałszywe lub gdy nie może dojść do spotkaniaw gałęziach ze spełnionymi dozorami.Jeśli zamiast instrukcji I umieści się słowo kluczowe terminate, proces kończy się, gdywcześniej zakończyły się wszystkie procesy spotykające się z nim w obrębie instrukcji select.Jeżeli naszą przykładową instrukcję select umieścimy wewnątrz instrukcji loop, touzyskamy ten sam rezultat co dopisanie gwiazdki w CSP. Jednak gdyby nasza instrukcjaselect składała się tylko z dwóch pierwszych gałęzi, to umieszczając ją w pętli trzeba bydopisać jeszcze klauzulę else postacielse exit when not (wl and w2) and then not w3;Zauważmy, że sama klauzula else exit tu nie wystarczy, gdyż wówczas pętlakończyłaby się także wtedy, gdy aktualnie nie jest możliwe żadne spotkanie.Instrukcję pxista oznacza się słowem kluczowym null.Instrukcja select może być również użyta w procesie obsługiwanym. Umożliwia onawówczas sprawdzenie, czy procesy obsługujące mogą w danej chwili zrealizować spotkanie, aw razie odpowiedzi negatywnej pozwala na wykonanie ciągu instrukcji umieszczonego po else(por. przykład 6.3.1).6.1.8 AtrybutyByty nazwane (typy, zmienne, procesy, itd.) w języku Ada mają pierwotnie zdefiniowanewłasności zwane atrybutami. Do atrybutów można odwoływać się pisząc nazwę bytu, apostrofi nazwę atrybutu. Spośród wielu atrybutów dostępnych w Adzie będziemy w tym rozdzialeużywać tylko jednego:• count — atrybut wejścia wskazujący, ile aktualnie procesów czeka na spotkanie wtym wejściu.161

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

Saved successfully!

Ooh no, something went wrong!