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.

Idea tego sposobu synchronizacji jest bardzo prosta. Aby uzyskać dostęp do sekcjikrytycznej, proces musi otrzymać uprawnienie. Uprawnienie będzie przekazywane kolejno odprocesu do procesu. Po wyjściu z sekcji krytycznej, proces powinien przekazać uprawnienienastępnemu procesowi. Jednak w chwili przekazywania proces odbierający może być zajętywykonywaniem własnych spraw, wówczas proces oddający uprawnienie byłby niepotrzebniewstrzymywany. Dlatego z każdym procesem P zwiążemy dodatkowy proces SEKRETARZprzyjmujący uprawnienie w imieniu P. Jemu powierzymy również przekazywanie uprawnieniadalej. Gdy proces P chce wejść do swojej sekcji krytycznej, zwraca się do swojegoSEKRETARZa o zezwolenie. SEKRETARZ może pozwolić na wejście do sekcji krytycznejtylko wtedy, gdy ma uprawnienie (wskazuje to zmienna mam, początkowo uprawnienie maSEKRETARZ(l)).Fakt wyjścia z sekcji krytycznej proces sygnalizuje swojemu SEKRETARZowi, a tenprzekazuje uprawnienie następnemu SEKRETARZowi. Schemat komunikacji międzyprocesami P i ich SEKRETARZami przedstawia rys. 5.3.comment N - liczba procesów;[P(i: 1..N)::*[true -> SEKRETARZ(i)!POZWÓL();sekcja_krytyczna(i);SEKRETARZ(i)!SKOŃCZYŁEM();własne_sprawy(i)]|| SEKRETARZ(i: 1..N):: mam: boolean;mam := i = l;*[mam; P(i)?POZWÓL() ->P(i)?SKOŃCZYŁEM();SEKRETARZ(i mod N + 1)!UPRAWNIENIE();mam := false[]not mam; SEKRETARZ((i-2+N) mod N + 1)?UPRAWNIENIE()-> mam := true]]Rozwiązanie to ma istotną wadę. SEKRETARZ ma uprawnienie tak długo, aż jegoproces P wykona sekcję krytyczną. Oznacza to, że między dwoma kolejnymi wejściami dosekcji krytycznej każdy proces będzie musiał poczekać, aż wszystkie pozostałe procesy wejdądo swoich sekcji krytycznych.Wymusza się w ten sposób jednakową częstość wchodzenia do sekcji krytycznej. Cogorsza, zapętlenie się jednego procesu powoduje zablokowanie pozostałych. Aby tegouniknąć, SEKRETARZ, który otrzymał uprawnienie, a którego proces P jest zajęty własnymisprawami, będzie przekazywał uprawnienie następnemu SEKRETARZowi. Jeśli żaden procesP nie żąda dostępu do sekcji krytycznej, uprawnienie będzie ustawicznie przekazywanemiędzy SEKRETARZami. W tym rozwiązaniu SEKRETARZ musi wiedzieć, czy proces chce114

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

Saved successfully!

Ooh no, something went wrong!