Powrót na stronę UNIX

Tematyka zadania: sygnały
Rodzaj sprawdzania: po zajęciach
Czas pisania: 90 minut
Sprawdzający: Marcin Borkowski
Oddanie zadania: do katalogu: /home2/samba/borkowskim/unix/

Napisz program tworzący drzewo procesów o głębokości n. Proces który jest korzeniem tego drzewa nazwijmy root. Proces potomny oczekuje na sygnały SIGINT, przy każdym takim sygnale z prawdopodobieństwem 25% kończy żywot. Jeśli przeżyje wysyła SIGRTMIN do procesu root'a.

Proces root w reakcji na SIGINT rozpoczyna zliczanie sygnałów SIGRTMIN, robi to tylko przez 1 sekundę. Wynik zliczania należy wypisać na ekran. Gdy licznik osiągnie zero, proces kończy się.

Sygnały SIGINT generowane są zewnętrznie np.: poprzez kombinacje C-c z bash'a. Szybkie wysłanie kilku SIGINT po sobie może generować błędne wyniki.

Kończenie się procesu nie-liścia w drzewie spowoduje osierocenie procesów poniżej. Jest to dopuszczalne w tym zadaniu.

Liczba 0<n<5 jest parametrem wywołania programu.

Szczególna uwagę zwracamy na:
Powrót na stronę UNIX