Zadanie 1. Napisz rozwiązanie problemu pięciu filozofów z możliwością blokady. Zaimplementuj pięć widelców przy pomocy pięcioelementowej tablicy muteksów (funkcje pthread_mutex_lock i pthread_mutex_unlock). W rozwiązaniu tym filozof o numerze i=0…4 podnosie najpierw widelec lewy (o numerze i) a następnie widelec prawy (o numerze (i+1)%5). Zademonstruj prowadzącemu wystąpienie zjawiska blokady.
Zadanie 2. Zmodyfiukuj rozwiązanie zadania 1 przez wprowadzenie asymetrii. Niech jeden z filozofów (np. o numerze zero) próbuje podnieść najpierw prawy, a następnie lewy widelec. Czy przy takim rozwiązaniu może wystąpić blokada? Czy może wystąpić zagłodzenie ?
Zadanie 3. (za tydzień) Zaimplementuj problem pięciu filozofów przy pomocy semaforów zliczających (patrz plik sem.tgz). W tym celu wykorzystaj semafor zliczający do ograniczenia liczby filozofów jednocześnie rywalizujących o pałeczki do 4. Czy przy takim rozwiązaniu może wystąpić blokada? Czy może wystąpić zagłodzenie ?
Opracował: Wojciech Kwedlo
×
W ramach naszego serwisu www stosujemy pliki cookies zapisywane na urządzeniu użytkownika w celu dostosowania zachowania serwisu do indywidualnych preferencji użytkownika oraz w celach statystycznych. Użytkownik ma możliwość samodzielnej zmiany ustawień dotyczących cookies w swojej przeglądarce internetowej. Więcej informacji można znaleźć w Polityce Prywatności Korzystając ze strony wyrażają Państwo zgodę na używanie plików cookies, zgodnie z ustawieniami przeglądarki. Akceptuję Politykę prywatności i wykorzystania plików cookies w serwisie.