stary pub
Transkrypt
stary pub
Programowanie równoległe Laboratorium 4 Informatyka Stosowana Cel: • opanowanie umiejętności pisania programów z synchronizacją wątków. Kroki: 1. 2. 3. Utworzenie katalogu roboczego (np. lab_4) Stworzenie programu tworzącego dwa wątki – jeden zwiększa o 1 zmienną licznik w globalnej strukturze danych do 100000, a drugi ją zmniejsza o 1 tyle samo razy. Jaką wartość ma na końcu ta zmienna? – rozwiąż problem by dawała wartość 0. Implementacja symulacji pubu: • • • • • • • • • Pub jest strukturą lokalną w procedurze main W pubie jest n kufli 1 L oraz k klientów. Klienci są reprezentowani przez wątki. Każdy klient pragnie wypić 2 litry piwa. Napełnienie jednego kufla trwa 5 sekund. Klient opróżnia kufel w 25 sekund. Po wypiciu 1 litra klient oddaje stary kufel i pobiera nowy Po wypiciu 2 litrów klient opuszcza pub. Pub otwarty jest do ostatniego klienta (ale nie wpuszcza nowych). Zaimplementować symulację pubu przy powyższych założeniach używając wyłącznie muteksów i procedury pthread_mutex_lock. Parametrami symulacji są: ilość klientów oraz ilość kufli. Rozważyć wydajność pracy pubu w zależności od tych parametrów. Rozszerzenia dla podwyższenia oceny: 1. Zaimplementować pub wykorzystując procedurę trylock do sprawdzania wolnych kufli 2. W związku z rosnącą popularnością pubu (rosnąca liczba klientów) wprowadzić większą liczbę kranów 3. Zilustrować graficznie działanie pubu Warunki zaliczenia: 1. Obecność na zajęciach i wykonanie kroków 1-3. 2. Oddanie napisanego odręcznie sprawozdania z opisem zadania, kodem źródłowym programów oraz analizą wydajności dla różnych parametrów symulacji.