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.

]*[(i:l..M) odbiór(i) -> odbiór(i) := false];wolne := K;*[(j:l..N) NADAWCA(j)?m ->[wolne = O -> NADAWCA(j)!0[] odbiór(m) -> NADAWCA(j)!0[] not odbiór(m); wolne O O ->(i, wolne) := (l, wolne-1);*[kanał(i) O -> i := i + 1];(odbiór(m), kanał(i)) := (true, m);[(k:l..M) k = m -> ODBIORCA(k)!i];NADAWCA(j)!i;][] (j:l..N) NADAWCA(j)?ZWALNIAM(i) ->(odbiór(kanał(i)), kanał(i), wolne) :=(false, O, wolne+1);]W tym rozwiązaniu wybór wolnego kanału zaczyna się zawsze od numeru 1. W tensposób wykorzystanie kanałów będzie nierównomierne — te o niższych numerach będąużywane częściej niż te o wyższych numerach.Można tego uniknąć wybierając kanał niedeterministycznie w następujący sposób:[(k:l..K) kanał(k) O -> i := k].5.4.9 Obliczanie iloczynu skalarnegoProces ZWIĘKSZ wykonuje N-krotnie zwiększanie i wysyłanie do procesu MNÓŻwartości i, po czym kończy się. W procesach MNÓŻ i DODAJ pętle są nieograniczone, comoże sugerować, że procesy te będą wykonywać się w nieskończoność. Jednak zgodnie zsemantyką CSP, jeśli proces, na który czeka operacja wejścia w dozorze, nie istnieje (np. jużsię zakończył), to dozór jest fałszywy. Tak więc po otrzymaniu ostatniego i z procesuZWIĘKSZ zakończy się proces MNÓŻ, co spowoduje, że zakończy się także proces DODAJ.Schemat komunikacji między procesami przedstawia rys. 5.24.[ZWIĘKSZ:: i: integer;i := 0;*[ i < N -> i := i + 1; MNÓŻ!i]|| MNÓŻ:: i: integer; a,b: (1..N) real;*[ ZWIĘKSZ?! -> DODAJ!a(i)*b(i)]|| DODAJ:: s.iloczyn: real;iloczyn := 0;*[ MNÓŻ?s -> iloczyn := iloczyn + s]WYJŚCIE!iloczyn]142

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

Saved successfully!

Ooh no, something went wrong!