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.

  1. 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ł.

  2. 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ą.

  3. 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.

  4. Czym różni się prodcons3.c od poprzedniej, i jaki skutek ma ta różnica w pracy programu i jego czasach działania.

  5. Analogicznie dla prodcons4.c.

  6. Analogicznie dla prodcons5.c jednak porównuj z prodcons3.c

  7. Przeanalizuj modyfikację wprowadzoną w prodcons6.c i oceń jej wady i zalety.

  8. 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.