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.

||BUFOR(i:0..N-l):: p: porcja;*[true -> PRODUCENT! JESZCZE() ;[PRODUCENT?? -> KONSUMENT!p]]||KONSUMENT:: p: porcja;*[(i:0..N-l) BUFOR(i)?p -> konsumuj(p)]Rozwiązanie 2Oto rozwiązanie z uwzględnieniem kolejności. Porcje są „przepychane" przez kolejneelementy bufora. Proces PRODUCENT wstawia zawsze do pierwszego elementu Inifora.Proces KONSUMENT pobiera zawsze od ostatniego elementu bufora. Schemat komunikacjimiędzy procesami przedstawia rys. 5.23.comment N - rozmiar bufora;[PRODUCENT:: p: porcja;*[true -> produkuj(p); BUFOR(0)!p]||BUFOR(0):: p: porcja;* [PRODUCENT?? -> BUFOR(l)!p]||BUFOR(i:l..N-2):: p: porcja;*[BUFOR(i-l)?p -> BUFOR(i-H)!p]|| BUFOR(N-1):: p: porcja;*[BUFOR(N-2)?p -> KONSUMENT!?]|| KONSUMENT:: p: porcja;*[BUFOR(N-l)?p -> konsumuj(p)]]Procesy BUFOR(0..N-1) można zapisać także krócej następująco:BUFOR(i:O..N-l):: p: porcja;*[true -> [i = 0 -> PRODUCENT?p[]i 0 -> BUFOR(i-l)?p];[i = N-l -> KONSUMENT!?[]i N-l -> BUFOR(i+l)!p]]Rozwiązanie 3133

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

Saved successfully!

Ooh no, something went wrong!