Zadanie dotyczy pakietu programów producentów i konsumentów:
http://www.kohala.com/start/unpv22e/unpv22e.tar.gz
Interesujące programy zawarte są w podkatalogu mutex. Należy wykonać
podane punkty, i porównać działanie programów co najmniej na systemach
Solaris i Linux. W szczególności porównanie powinno obejmować czasy
działania, zarówno czas procesora jak i czas rzeczywisty. Aby mierzyć
czas można wykorzystać polecenie time, lub, jeśli to nie jest
wystarczająco dokładne, dodać do programu pomiar czasu funkcją times.
- Skompiluj wszystkie programy prodcons*. Wymaga to
skonfigurowania pliku config.h w katalogu nadrzędnym.
Może również wymagać pewnych poprawek w Makefile i/lub programach.
Proszę podać w raporcie jakie poprawki były niezbędne aby cały
pakiet w katalogu mutex się skompilował.
- Zapoznaj się z programem źródłowym prodcons1.c aby zrozumieć
ideę programu. Uruchom program z różnymi kombinacjami parametrów,
aby uzyskać nietrywialne działanie programu. Przy takim
uruchomieniu powinny pojawić się błędy produkcji. Wskaż te
błędy w raporcie i wyjaśnij skąd się biorą.
- Zapoznaj się z rozwiązaniem zastosowanym w programie prodcons2.c
i wypróbuj je praktycznie. W raporcie podaj czy rozwiązanie działa.
Ponadto porównaj czasy działania analogicznych uruchomień pogramu z
wersją 1.
- Czym różni się prodcons3.c od poprzedniej, i jaki skutek ma ta
różnica w pracy programu i jego czasach działania.
- Analogicznie dla prodcons4.c.
- Analogicznie dla prodcons5.c jednak porównuj z prodcons3.c
- Przeanalizuj modyfikację wprowadzoną w prodcons6.c i oceń jej
wady i zalety.
- Przetestuj wersję prodcons7.c i ustal, czy z dodatkowej
informacji, którą ten program generuje, można wyciągnąć jakieś
ciekawe wnioski.
W raporcie z zadania proszę podać ile procesorów/rdzeni miał komputer
na którym programy były uruchamiane.