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.

accept PROD(pl: in porcja) doaccept KONS(p2: out porcja) dop2 := pl;end KONS;end PROD;end loop;end;Przykład ten zaczerpnięto z książki [LeVe85].Komunikacja przez bufor N-elementowyOto przykład systemu złożonego z jednego producenta i jednego konsumentakomunikujących się za pomocą N-elementowego bufora. Poniższy tekst jest tłumaczeniem naAdę przykładu 5.2.3.task PRODUCENT isend;task body PRODUCENT isp: porcja;beginloopprodukuj(p);BUFOR.WEŹ(p);end loop;end;task KONSUMENT isend;task body KONSUMENT is;p:porcja;beginloopBUFOR.DAJ(p);konsumuj(p)end loop;end;task BUFOR isentry DAJ(x: out porcja);entry WEZ(x: in porcja);end;task body BUFOR isN: constant Integer = ?;buf: array(O..N-l) of porcja; — bufor N-elementowyd: Integer := 0; -- miejsce do wstawianiaz: Integer := 0; -- miejsce do pobieraniabeginloopselectwhen d < z+N =>accept WEZ(x: in porcja) dobuf(d mod N) := x;end WEŹ;d := d + 1;orwhen z < d =>accept DAJ(x: out porcja) dox := buf(z mod N);end DAJ;164

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

Saved successfully!

Ooh no, something went wrong!