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.

Po jej zakończenhi proces ma zapewniony wyłączny dostęp do K kolejnych kopii, poczynającod tej o numerze i. Proces zwalnia dostęp do kopii wykomijąc procedurękoniec_pisania(i, K: integer).Treść procedur poczatek_pisania i koniec_pisania pomijamy. Do ich napisania można użyćjednej z metod opisanych w p. 10.2.1.const N = ?;K = N div 2 + 1; {większość}procedure pisz(n: integer; r: rekord);var i, k: integer;beginlosuj(i);{procedura losująca o wartościach całkowitych}t := biezacy_czas;k := 0;poczatek_pisania(i, K);repeati := i mod N + 1;KOPIA(i).PISZ(n, r, t);k := k + 1until k = K;koniec_pisania(i, K)end;procedure czytaj(n: integer; var r: rekord);var rl: rekord;k, t, maxt: integer;beginmaxt : = 0;k := 0;after KOPIA(*).CZYTAJ(n, rl, t) doif t > maxt then beginmaxt := t; {wybór najbardziej}r := rl{aktualnej informacji}end;k := k + 1until k = Kend;W tym zadaniu założyliśmy, że zegary logiczne poszczególnych procesów sązsynchronizowane. Do ich synchronizacji można zastosować algorytm podany w rozwiązaniuzadania 10.3.2.10.4.7 Wyszukiwanie adresówMetoda iteracyjnaNastępujące rozwiązanie odnosi się do wersji z rozgłaszaniem.const 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)273

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

Saved successfully!

Ooh no, something went wrong!