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.

export procedure CZEKAJ;beginif (k n) or (n = N) {ktoś wjeżdża przed nami}then wait(STOPI); {lub prom pełny}n := n + l{wjeżdżam}end; {CZEKAJ}export procedure WJECHAŁEM;begink := k + 1;if n = N then{prom pełny}signal(CUMA){może odpływać}elsesignal(STOPI); {ktoś może wjechać}wait(STOP2){czekam na zjazd}end; {WJECHAŁEM}export procedure ZJECHAŁEM;begink := k - 1;if k > O thensignal(STOP2) {następny zjeżdża}else signal(CUMA) {prom może wracać}end; {ZJECHAŁEM}export procedure WPUŚĆ;begint := 0;n := 0;signal(STOPI);while k = O dowait(CUMA);t := T;if k n thenbeginn := N;wait(CUMA)endelse n := Nend; {WPUŚĆ}{odliczamy czas}{na promie pusto}{niech wjeżdżają}{czekam na pełny prom}{lub upływ czasu}{wyłączam zegar}{upłynął czas, ale ktoś wjeżdża}{blokuję resztę}{czekam, aż wjedzie}export procedure WYPUŚĆ;beginsignal(STOP2);wait(CUMA)end; {WYPUŚĆ}begint := T;n := N;k := Oend; {PROM}{zegar wyłączony}{prom niedostępny}{nikt nie wjeżdża}Zauważmy, że ponieważ prom jest jednokierunkowy, więc powinien czekać wprocedurze WPUŚĆ na wjechanie co najmniej jednego samochodu.4.4.7 Trzy drukarkiZmienna ZAJĘTY służy do wstrzymywania procesów, gdy wszystkie drukarki są zajęte.90

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

Saved successfully!

Ooh no, something went wrong!