Programowanie współbieżne i rozproszone/PWR Ćwiczenia 1: Różnice pomiędzy wersjami
Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
mNie podano opisu zmian |
Nie podano opisu zmian |
||
Linia 1: | Linia 1: | ||
== Zadanie == | |||
=== Treść === | |||
Uruchamiamy współbieżnie dwa następujące procesy: | |||
{| | |||
| | | | ||
'''process''' P1; | '''process''' P1; | ||
Linia 7: | Linia 8: | ||
'''while''' true '''do''' | '''while''' true '''do''' | ||
'''begin''' | '''begin''' | ||
własne_sprawy; | <tt>własne_sprawy</tt>; | ||
sekcja_krytyczna; | <tt>protokół_wstępny</tt>; | ||
<tt>sekcja_krytyczna</tt>; | |||
<tt>protokół_końcowy</tt>; | |||
'''end''' | '''end''' | ||
'''end'''; | '''end'''; | ||
Linia 16: | Linia 19: | ||
'''while''' true '''do''' | '''while''' true '''do''' | ||
'''begin''' | '''begin''' | ||
własne_sprawy; | <tt>własne_sprawy</tt>; | ||
sekcja_krytyczna; | <tt>protokół_wstępny</tt>; | ||
<tt>sekcja_krytyczna</tt>; | |||
<tt>protokół_końcowy</tt>; | |||
'''end''' | '''end''' | ||
'''end'''; | '''end'''; | ||
|} | |||
Chcemy zapewnić, że w tym samym czasie co najwyżej jeden z nich | |||
wykonuje fragment programu oznaczony jako ''sekcja_krytyczna''. Jakie | |||
instrukcje należy umieścić w protokołach, aby zrealizować ten | |||
cel? Nie dysponujemy żadnymi mechanizmami synchronizacyjnymi, więc protokoły | |||
powinny umiejętnie wykorzystać zmienne globalne oraz instrukcje | |||
języka programowania. |
Wersja z 08:51, 9 cze 2006
Zadanie
Treść
Uruchamiamy współbieżnie dwa następujące procesy:
process P1; begin while true do begin własne_sprawy; protokół_wstępny; sekcja_krytyczna; protokół_końcowy; end end; |
process P2; begin while true do begin własne_sprawy; protokół_wstępny; sekcja_krytyczna; protokół_końcowy; end end; |
Chcemy zapewnić, że w tym samym czasie co najwyżej jeden z nich wykonuje fragment programu oznaczony jako sekcja_krytyczna. Jakie instrukcje należy umieścić w protokołach, aby zrealizować ten cel? Nie dysponujemy żadnymi mechanizmami synchronizacyjnymi, więc protokoły powinny umiejętnie wykorzystać zmienne globalne oraz instrukcje języka programowania.