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.

else jest := falseend; {GDZIE}beginend; {RECEPCJONISTA}process P;var n: nazwa;a: adres;i: integer;jest: boolean;beginn := ...; {przypisanie szukanej nazwy}i := 0;after RECEPCJONISTA(*).GDZIE(n, jest, a) doi := i + 1until jest or (i = N);wlasne_sprawy(jest, a)end; {P}Po rozgłoszeniu proces P czeka tak długo, aż otrzyma odpowiedź z informacją oznalezieniu adresu lub otrzyma wszystkie odpowiedzi. W drugim przypadku albo adresu nieznaleziono, albo informacja o adresie nadeszła w ostatniej odpowiedzi.Metoda rekurencyjnaconst N = ?;processRECEPCJONISTA(i: l..N);export procedure GDZIE(n: nazwa; var jest: boolean; var a: adres);beginif dotyczy(n) = i then jest := znaleziony(n, a)else RECEPCJONISTA(dotyczy(n)).GDZIE(n, jest, a)end; {GDZIE>beginend; {RECEPCJONISTA}process P;var n: nazwa;a: adres;jest: boolean;beginn := ...; {przypisanie szukanej nazwy}RECEPCJONISTA(l).GDZIE(n, jest, a);wlasne_sprawy(jest, a)end; {P}Proces P wywołuje procedurę GDZIE tylko w procesie RECEPCJONISTA o indeksie 1.Jeżeli przedstawiony program zapisalibyśmy w języku C, to zamiast indeksu użylibyśmynazwy komputera wykonującego ten proces. Proces wołający nie musiałby nic wiedzieć oistnieniu wielu procesów RECEPCJONISTA.Metoda tranzytywnaMetoda tranzytywna polega na przekazywaniu komunikatów między kolejnymi procesamiwyszukującymi. Prezentowane rozwiązanie jest implementacją przekazywania komunikatówza pomocą zdalnego wywołania procedur, podobną do przekazywania uprawnienia.const N = ?;274

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

Saved successfully!

Ooh no, something went wrong!