Zadanie 2. Wybory ----------------- Zadanie polega na przeprowadzeniu wyborow. W wyborach bierze udzial sekretarz oraz N wyborcow. Po rozpoczeciu dzialania i zalatwieniu wlasnych spraw (ktore dla uproszczenia polegaja na wstrzymaniu procesu przez losowa chwile) wyborcy zglaszaja sie do sekretarza przekazujac mu swoj identyfikator. Kazde glosowanie rozpoczyna sie, gdy zbiora sie wszyscy wyborcy lub uplynie czas STARTTIME i jest quorum 2/3 wszystkich wyborcow. Wtedy kazdy wyborca bioracy udzial w glosowaniu otrzymuje liste wszystkich, ktorzy staneli do wyborow i zaczynaja sie wybory zlozone z glosowan zlozonych z tur. W przypadku braku kworum glosowanie jest odlozone i wszyscy, ktorzy sie zglosili musza sie o tym dowiedziec, a nastepnie moga zajac sie swoimi sprawami, a potem powtornie zglosic sie do glosowania. Wyborca, ktory sie zglosil, nie moze sie wycofac w trakcie glosowania i zbierania kworum. W kazdej turze glosowania wyborcy oddaja swoj glos na jednego z kandydatow (np. za pomoca generatora liczb losowych). W kazdej turze odpada ten (lub odpadaja ci), ktory uzyskal najmniej glosow - decyduje o tym sekretarz odsylajac pomniejszona o przegranych liste kandydatow. Ci ktorzy odpadli, traca bierny udzial w glosowaniu, natomiast dalej uczestnicza w nich czynnie. Glosowanie konczy sie pomyslnie, gdy zostanie wyloniony dokladnie jeden kandydat w co najwyzej tylu turach, ile wyborcow zglosilo sie do wyborow. Jezeli tak sie nie stanie (np. gdy w jednej z tur odpadna wszyscy, poniewaz kazdy dostal po jednym glosie), glosowanie jest uniewaznione i nalezy przeprowadzic kolejne. Jezeli w dwoch kolejnych glosowaniach wygra ten sam kandydat to wybory konczy sie. Uwagi: 0) Wszelka komunikacja miedzy procesami musi odbywac sie za pomoca kolejek komunikatow. 1) Proces sekretarza jest uruchamiany z parametrem okreslajacym liczbe procesow-wyborcow. Jego zadaniem jest utworzenie tych procesow. 2) Wyborcy, ktorzy "nie zdazyli" zglosic sie do glosowania moga brac udzial w kolejnych glosowaniach (beda co najmniej dwa glosowania). 3) Nalezy minimalizowac wykorzystanie zasobow i uniknac problemow takich jak blokada czy zaglodzenie. Termin odbioru zadania - zajecia nr 10. Wszelkie pytania prosze kierowac na adres: janowski@mimuw.edu.pl Powodzenia.