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.

var i: integer;jaki: zasób;beginwhile true do beginwlasne_sprawy;if TRY_INPUT('A', i:integer) thenjaki := 'A'else INPUT(jaki:zasob, i:integer);korzystaj(jaki, i);OUTPUT(jaki, i)endend;process GRUPA3;type zasób = 'A'..'B';var i: integer;jaki: zasób;beginwhile true do beginwlasne_sprawy;if TRY_INPUT('B', i:integer)then beginkorzystaj('B',i);OUTPUT('B',i)end elseif TRY_INPUT(jaki:zasob, i:integer)then beginkorzystaj(jaki, i);OUTPUT(jaki, i)endendend;Proces GRUPA3 najpierw próbuje pobrać krotkę zasobu mniej wygodnego, a jeśli tosię nie nda, próbuje pobrać jakąkolwiek krotkę. To wyróżnienie zasobu typu B ma na celuzmniejszenie obciążenia zasobów typu A, które są używane tylko przez proces GRUPA1.Zauważmy, że gdy GRUPA3 stwierdzi, że nie ma krotki zasobu typu B, wykonuje operacjęTRY_INPUT bez wskazywania typu zasobu, może bowiem się tak zdarzyć, że między dwomakolejnymi operacjami TRY_INPUT pojawi się nowa krotka zasobu typu B. Wersja 2. Procesydrugiej grupy wysyłają w przestrzeń krotki z porcjami nie wskazując zasobu, który ma jeprzetworzyć.process A(i: 1..M);var p: porcja;j: integer;beginwhile true do beginINPUT('A', j:integer, p:porcja);przetwórz(p);OUTPUT(j, p)endend;process B(i:1..N);var p: porcja;j: integer;beginwhile true do beginINPUT('B', j:integer, p:porcja);przetwórz(p);194

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

Saved successfully!

Ooh no, something went wrong!