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.

signal(DO.LĄDOWANIA)end;export procedure CHCE.STARTOWAĆ;beginif not wolny then wait(DO_STARTU);wolny := falseend; {CHCĘ.STARTOWAĆ}export procedure WYSTARTOWAŁ;beginna_lotniskowcu := na_lotniskowcu - 1;wolny := true;zwolnij_pasend; {WYSTARTOWAŁ}export procedure CHCE.LĄDOWAĆ;beginif not wolny or (na_lotniskowcu = N) thenwait(DO_LĄDOWANIA);wolny := falseend; {CHCĘ.LĄDOWAĆ}export procedure WYLĄDOWAŁ;beginna_lotniskowcu := na_lotniskowcu + 1;wolny := true;zwolnij_pasend; {WYLĄDOWAŁ}beginna_lotniskowcu := 0;wolny := trueend; {LOTNISKOWIEC}4.4.9 Stolik dwuosobowyPierwsza osoba przybywająca na spotkanie musi poczekać na partnera. Do jejwstrzymania służy odpowiedni element tablicy CZEKA_NA_PARĘ. Druga osoba musi zająćkolejkę do stolika CZEKA_NA_STÓL. Gdy doczeka się już na stolik, zwalnia swojego partnera.monitor KELNER;const N = ?;var CZEKA_NA_PARĘ: array [1..N] of condition;CZEKA_NA_STÓL: condition;przy_stole: integer;export procedure CHCĘ_STOLIK(j: integer);beginif empty(CZEKA_NA_PARĘ[j]) thenwait(CZEKA_NA_PARE[j])else beginif przy.stole > O then wait(CZEKA_NA_STÓL);przy_stole := 2;signal(CZEKA_NA_PARĘ[j])endend; {CHCĘ.STOLIK}export procedure ZWALNIAM;beginprzy.stole := przy_stole - 1;if przy.stole = O then signal(CZEKA_NA_STÓL)92

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

Saved successfully!

Ooh no, something went wrong!