Zadanie 4. Wyscigi ------------------ Termin odbioru: 20 czerwca 1999, godz. 15.00. Napisac zbior programow, ktore testuja szybkosc dzialania mechanizmow komunikacji miedzy procesami. W Wyscigach wystepuja: sedzia kapitanowie zespolow zawodnicy nalezacy do jednego z zespolow Zespol sklada sie z kapitana i dowolnej liczby zawodnikow. Zawodnicy w zespole sa polaczeni w pierscien. Komunikacja w zespole przebiega w jedna strone. Wyscig polega na przesylaniu komunikatow w zespolach wzdluz pierscienia okreslona liczbe razy. Zespol ktory zrobi to najszybciej wygrywa. SEDZIA: ------- Proces glowny uruchamiany z linii komend z dowolna liczba parametrow. Kazdy parametr identyfikuje jeden zespol. Mozliwe sa nastepujace typy zespolow oparte na: watkach (TH) kolejkach FIFO (FIFO) kolejkach komunikatow (MSG) pamieci dzielonej i semaforach (SHM) Na przyklad wywolanie: SEDZIA TH FIFO MSG SHM MSG oznacza ze w wyscigach bedzie bralo 5 zespolow w tym 2 oparte na kolejkach komunikatow. Sedzia tworzy na poczatku kapitanow zespolow i w dalszej czesci kontaktuje sie (w dowolny sposob) jedynie z nimi. Sedzia jest procesem interaktywnym dzialajacym w nieskonczonej petli. Sedzia wczytuje nastepujace dane od uzytkownika: liczba zawodnikow w zespole, liczba komunikatow do przeslania po okregu, dlugosc komunikatu, liczba okrazen jaka ma krazyc kazdy komunikat. Wczytane dane przekazuje procesom kapitanom. Kazdy kapitan tworzy swoj zespol. Po stworzeniu zespolu kapitan przekazuje informacje o gotowosci do sedziego. Sedzia po odebraniu wiadomosci o gotowosci od wszystkich kapitanow wysyla do nich sygnal. Wyscig sie zaczyna. Kapitanowie w momencie otrzymania sygnalu zaczynaja mierzyc czas i wysylac komunikaty.Kapitan po otrzymaniu wszystkich komunikatow odczytuje czas i wysyla czas dzialania do sedziego. Sedzia oglasza wyniki i wczytuje nowe dane do nowego wyscigu. ZAWODNIK: --------- Proces odczytujacy komunikaty od zawodnika lub kapitana i wysylajacy komunikat dalej. Proces zawodnika jest tworzony przez kapitana. Zawodnik moze komunikowac sie jedynie z innym zawodnikiem lub swoim kapitanem. KAPITAN: -------- Proces kontaktujacy sie z sedzia w imieniu zespolu. Proces kapitana jest tworzony przez sedziego. Oprocz napisania programu nalezy: - zaprojektowac zestaw testow, - przeprowadzic je i zebrac wyniki, - dokonac analizy wynikow, - sporzadzic raport, czyli przeprowadzic z programem eksperymenty "naukowe". Raport powinien zawierac opis testow, sposobu ich przeprowadzenia, wyniki i ich analize. Nie beda przyjmowane do oceny programy BEZ raportu. Termin oddania programu jest podany w Internecie. Powodzenia! Dionizy Borun (Dionizy.Borun@students.mimuw.edu.pl) Marek Dembowski (debowski@mimuw.edu.pl)