1. Zapoznaj się z funkcjami obsługi timerów systemowych standardu POSIX
XSI: getitimer, setitimer.
(a) Napisz program, który działa w nieskończonej pętli i okresowo generuje
sygnały za pomocą timera ITIMER_REAL. Pobierz czas przed
uruchomieniem timera oraz po otrzymaniu sygnału, za pomocą
funkcji gettimeofday. Sformułuj wnioski na temat otrzymanych
wyników.
(b) Napisz program zawierający minimalną (pustą funkcję), który będzie
wielokrotnie wywoływał tę funkcję mierząc jej czas wykonania za pomocą
timera ITIMER_VIRTUAL (wskazówka: wykorzystaj program napisany w
poprzednim zadaniu). Porównaj uzyskane czasy wywołania funkcji i wyciągnij
ogólny wniosek dotyczący narzutu czasowego na wywołanie funkcji w
programie.
Następnie zmień wykorzystywany timer na ITIMER_REAL i powtórz serię
eksperymentów, starając się napotkać sytuację, kiedy wywołanie funkcji
zajmie jakiś wyjątkowo długi czas.
2. Zapoznaj się z funkcjami obsługi zegarów systemowych standardu POSIX
TMR: clock_gettime, clock_settime, clock_getres.
(a) Napisz program podobnie jak poprzednio zawierający pustą funkcję, i zmierz
czas jej wykonania za pomocą timera związanego z zegarem CLOCK_REALTIME.
(b) Napisz kolejny program do zbadania czasu wykonania pustej funkcji
bezpośrednio za pomocą zegara CLOCK_REALTIME