1. (4p.) Napisz program wykonujący jakąś trywialną operację (np. ++i;) w nieskończonej pętli. Skompiluj i uruchom program, a następnie programem top sprawdź, czy Twój program pokazuje się w czołówce programów wykorzystujących cykle obliczeniowe komputera. Przed przejściem do dalszych prac zabij program klawiszem Ctrl-C. Dodaj w pętli opóźnienie (sleep(1);, a najlepiej nanosleep(); z opóźnieniem np. 100 milisekund) i upewnij się, że po uruchomieniu tego programu nie pojawia się on już na szczycie listy top.

    Następnie sprawdź wysyłanie programowi różnych sygnałów poleceniem kill. Dodaj w programie przechwytywanie sygnału/ów, i wykorzystując sygnały: SIGALRM, SIGTERM, SIGUSR1, SIGUSR2 wypróbuj następujące reakcje na sygnał: (a) wyświetlenie komunikatu i zakończenie pracy programu, (b) wyświetlenie komunikatu i powrót do wykonywania programu, (c) wstrzymywanie odebrania sygnału (np. na 1000 iteracji w pętli), i następnie wznowienie odebrania sygnału, i (d) całkowite ignorowanie sygnału. W raporcie wklej instrukcje programu deklarujące poszczególne reakcje na sygnał, i podsumuj uzyskane wyniki.

  2. (4p.) Zapoznaj się z narzędziami umożliwiającymi odczyt pseudosystemu plików proc (man proc). W systemie Solaris pliki w tym systemie mają specyficzny format, i do ich odczytu i dekodowania treści służy odpowiedni zestaw programów. W systemie Linux pliki w /proc maja formaty tekstowe i można je odczytywać (a w konkretnych przypadkach również zapisywać) zwykłymi narzędziami do operacji na plikach tekstowych, jak: cat, grep, itp.