Powrót na stronę UNIX

Napisz program, który tworzy ponumerowane 1,2,...,n procesy potomne. Proces rodzic będzie pełnił rolę arbitra dostępu do ekranu dla procesów dzieci. Procesy potomne działają według jednego wspólnego schematu. Próbują uzyskać dostęp do ekranu wysyłając co losowy czas t <1-1000> milisekund sygnał SIGRTMAX-i gdzie i to numer procesu. Jeśli proces otrzyma od rodzica SIGRTMIN+3 to oznacza to, że ma on co t ms wypisywać na ekran swój numer (i) aż do otrzymania SIGRTMIN+4.

Proces rodzica w momencie otrzymania SIGRTMAX-i natychmiast wysyła do procesu (i) SIGRTMIN+3 o ile dostęp do ekranu jest wolny, w p.p. wysyła wpierw SIGRTMIN+4 do procesu aktualnie piszącego na ekran. Proces rodzic pozwala na k takich dostępów po czym kończy całą aplikacje. Proces rodzic ma poczekać na zakończenie procesów potomnych.

Czy widzisz dlaczego SIGRTMIN+3 i SIGRTMIN+4 nie mogą być zastąpione przez SIGUSR1 i 2 ?

Liczby 1<n<6 i 1<k<10 są parametrami wywołania programu.

Zadanie będzie sprawdzane przez Marcina Borkowskiego, należy je wgrać do katalogu /home2/samba/borkowskim/unix/ .

Szczególna uwagę zwracamy na:

Powrót na stronę UNIX