SO-1st-2.3-w11.tresc-1.0-Slajd34: Różnice pomiędzy wersjami

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
Dwa (dyskusja | edycje)
Nie podano opisu zmian
 
Dwa (dyskusja | edycje)
Nie podano opisu zmian
 
Linia 4: Linia 4:




Rozwiązanie z użyciem procedury '''exchange''' jest bardzo podobne. Wykorzystywana jest jednak dodatkowa zmienna lokalna ''klucz'' . Wartość zmiennej ''klucz'' zamieniana jest z wartością zmiennej ''zamek'' . Ponieważ na początku sekcji wejściowej pod ''klucz'' podstawiana jest wartość true, ta wartość trafia następnie do zmiennej ''zamek'' . Z zamka do klucza trafia z kolei dotychczasowa wartość zamka. Jeśli wartość ta jest false, można przerwać pętlę '''repeat-until''' i wejść do sekcji krytycznej. Jeśli wartością tą jest true, wykonanie operacji '''exchange''' niczego nie zmieni, a za pośrednictwem klucza proces dowie się, że sekcja krytyczna jest niedostępna.
Rozwiązanie z użyciem procedury '''exchange''' jest bardzo podobne. Wykorzystywana jest jednak dodatkowa zmienna lokalna ''klucz''. Wartość zmiennej ''klucz'' zamieniana jest z wartością zmiennej ''zamek''. Ponieważ na początku sekcji wejściowej pod ''klucz'' podstawiana jest wartość true, ta wartość trafia następnie do zmiennej ''zamek''. Z zamka do klucza trafia z kolei dotychczasowa wartość zamka. Jeśli wartość ta jest false, można przerwać pętlę '''repeat''' '''-''' '''until''' i wejść do sekcji krytycznej. Jeśli wartością tą jest true, wykonanie operacji '''exchange''' niczego nie zmieni, a za pośrednictwem klucza proces dowie się, że sekcja krytyczna jest niedostępna.


Z realizacją wzajemnego wykluczania w taki sposób wiążą się te same kwestie, które poruszono przy rozwiązaniu z użyciem '''test&set''' .  
Z realizacją wzajemnego wykluczania w taki sposób wiążą się te same kwestie, które poruszono przy rozwiązaniu z użyciem '''test''' '''&''' '''set'''.




[[SO-1st-2.3-w11.tresc-1.0-Slajd33 | << Poprzedni slajd]] | [[SO-1st-2.3-w11.tresc-1.0-toc|Spis treści ]] | Następny slajd >>
[[SO-1st-2.3-w11.tresc-1.0-Slajd33 | << Poprzedni slajd]] | [[SO-1st-2.3-w11.tresc-1.0-toc|Spis treści ]] | Następny slajd >>

Aktualna wersja na dzień 13:48, 22 wrz 2006

Wzajemne wykluczanie z użyciem instrukcji exchange

Wzajemne wykluczanie z użyciem instrukcji exchange


Rozwiązanie z użyciem procedury exchange jest bardzo podobne. Wykorzystywana jest jednak dodatkowa zmienna lokalna klucz. Wartość zmiennej klucz zamieniana jest z wartością zmiennej zamek. Ponieważ na początku sekcji wejściowej pod klucz podstawiana jest wartość true, ta wartość trafia następnie do zmiennej zamek. Z zamka do klucza trafia z kolei dotychczasowa wartość zamka. Jeśli wartość ta jest false, można przerwać pętlę repeat - until i wejść do sekcji krytycznej. Jeśli wartością tą jest true, wykonanie operacji exchange niczego nie zmieni, a za pośrednictwem klucza proces dowie się, że sekcja krytyczna jest niedostępna.

Z realizacją wzajemnego wykluczania w taki sposób wiążą się te same kwestie, które poruszono przy rozwiązaniu z użyciem test & set.


<< Poprzedni slajd | Spis treści | Następny slajd >>