Zadanie 3 --------- Termin: 20.02.2000 Program startuje z argumentem bedacym liczba n i tworzy n procesow potomnych. Kazdy z procesow potomnych posiada pare laczy z procesem macierzystym. Nastepnie kazdy z procesow losuje liczbe - zwana dalej adresem. Adres ten jest wysylany do procesu macierzystego, ktorego zadaniem jest zapewnienie jednoznacznosci wylosowanych przez procesy potomne adresow. Jezeli dla jakiejs pary procesow adresy sie powtorzyly, to proces macierzysty przesyla im stosowna informacje, po czym procesy te ponownie losuja swoje adresy i cala sytuacja sie powtarza. Kazdy proces potomny, ktory wie ze jego adres jest jednoznaczny, komunikujac sie z procesem macierzystym, sprawdza, jaki jest nastepny przyznany adres (w kolejnosci liczb naturalnych modulo zakres liczb reprezentowanych). Gdy zas sie juz dowie, jaki jest ten adres, przesyla do odpowiadajacego znalezionemu adresowi procesu swoj adres. Kazdy proces po otrzymaniu komunikatu z adresem wypisuje swoj PID oraz otrzymany adres. Proces macierzysty po przekazaniu zestawu wszystkich adresow procesow potomnych kierowanych do innych procesow potomnych przesyla do swoich dzieci specjalny komunikat, po ktorym one koncza prace. Po zakonczeniu pracy wszystkich procesow potomnych, konczy prace proces macierzysty. Komunikaty o konczeniu pracy powinny pojawiac sie na ekranie. Uwagi: 1. Nalezy pamietac o: -- obsludze bledow wszystkich wywolan funkcji systemowych i bibliotecznych, -- zamykaniu nieuzywanych deskryptorow plikow, -- sprawdzaniu istnienia argumentow wejsciowych, -- eleganckim formatowaniu i komentowaniu kodu, -- rzetelnym przetestowaniu programu PRZED oddaniem do zaliczenia, -- sensownym rozbiciu zadania na poszczegolne procedury.