Janina Mincer-Daszkiewicz, 15 lipca 1995 Program poprawkowy z Programowania Wspolbieznego ================================================= Jako zadanie poprawkowe nalezy napisac program realizujacy mechanizm komunikacji grupowej (por. sformulowanie zadania semestralnego) z nastepujacymi dodatkowymi wymaganiami: 1. Mozna uzywac jedynie pamieci dzielonej i semaforow. 2. Nalezy dazyc do maksymalnego zrownoleglenia dzialania wszystkich procesow uczestniczacych w komunikacji. 3. Nalezy zapobiegac, w miare mozliwosci, wszystkim mozliwym sytuacjom blokady (przypadki blokady, do ktorej dochodzi z winy klientow i ktorej nie mozna przeciwdzialac, powinny byc opisane w dokumentacji). 4.Mozna zalozyc, ze proces odbiera komunikat wyslany przez siebie samego. 5. Nalezy zrealizowac poprawna funkcje pomiaru czasu (liczaca calkowity czas zuzyty na realizacje operacji send i operacji receive). 6. Rozmiar puli buforow rowny k powinien oznaczac, ze w buforze mozna bedzie przechowac k jednobajtowych komunikatow. 7. Jako avemem nalezy rejestrowac tylko pamiec zajeta (!) przez komunikaty lub struktury danych sluzace do realizacji mechanizmu (nie liczyc zas pamieci wczesniej zarezerwowanej, ale nie uzywanej). 8. Nalezy przeprowadzic z wlasnym programem eksperymenty: (a) sprawdzajace czy mechanizm nie dopuszcza do blokady i zaglodzenia (b) badajace efektywnosc mechanizmu Testy powinny byc: (a) sensownie zaplanowane (b) dobrze udokumentowane (wykresy!!) (c) dobrze zanalizowane (trzeba wykazac sie umiejetnoscia wyciagniecia sensownych wnioskow z uzyskanych liczb). 9. Przedmiotem odbioru bedzie: (a) dokumentacja uzytkowa programu (b) raport z testow (c) kod zrodlowy programu (d) uzywane do wykonania testow programy testujace Wszelkie pytania dotyczace tresci zadania prosze zapisywac na plik "pytania". Tutaj nalezy wpisywac swoje pytania i watpliwosci. Prosze kazde pytanie opatrzyc data i identyfikatorem pytajacego. ================================================================================9 sierpnia Jaroslaw Slebocki 1. Czy mozna uzyc kolejek TYLKO do symulacji semaforow ? (azeby spelnic postulat max. rownoleglosci, to chce na kazda grupe dac min. 1 semafor, a na bull-u semaforow ci u nas niedostatek...) 2. Moze program nie musi sie martwic tego typu ograniczeniami? JMD>>>> 17 sierpnia ad 1) Proponuje, zeby uzywac TYLKO semaforow, ale: (a) ich nie naduzywac (b) nie przesadzac podczas testowania ad 2) Mysle, ze nie nalezy pisac programu pod katem ograniczen istniejacych na Bullu, ale z drugiej strony nalezy pamietac o tych ograniczeniach podczas planowania testow ###################################### 15 sierpnia Marcin Rychlik Czy mozliwe jest uzycie sygnalow ? Sluzylyby do obslugi sytuacji awaryjnych, w moim przypadku ulatwilyby tez komunikacje miedzy procesami. Pytam, gdyz mozliwe ze nie mozna uzywac wylacznie powazniejszych mechanizmow typu kolejki FIFO, RPC itp natomiast w przypadku prostych sygnalow nie ma przeciwskazan. ###################################### JMD>>>> 17 sierpnia Uzycie sygnalow jest mozliwe i jak najbardziej wskazane, o ile nie beda one sluzyly do zastepowania semaforow. Nalezy ich natomiast uzywac do obslugi sytuacji awaryjnych. Do komunikacji miedzy procesami nalezy uzywac semaforow. ###################################### 9 wrzesnia Erwin Dzienis Co dokladnie znaczy poprawna funkcja pomiaru czasu z punktu 5? Czy to klient ma mierzyc ten czas zaczynajac na poczatku funkcji grp_receive lub grp_send i zatrzymujac stoper przed wyjsciem? ###################################### JMD>>>> 11 wrzesnia Poprawna funkcja pomiaru czasu, to taka, ktora pozwoli mozliwie dokladnie okreslic czas zuzyty wewnatrz funkcji grp_send i grp_receive na obsluge zadania klienta. Czy w tym celu wystarczy raz uruchomic stoper i raz go zatrzymac - to moze zalezec od rozwiazania.