WEBSTRÁNKA ROČNÍKOVÉHO PROJEKTU

Téma: Meranie času v user-space

Študent:

Matúš Matok

Vedúci projektu:

doc. Mgr. Tomáš Plachetka, Dr.

Popis zadania:

Navrhnúť a implementovať v ANSI C pod OS Linux program, ktorý beží ako jeden proces a robí paralelne nasledujúce veci:

1. Do štandardného výstupu (stdout) píše v pravidelných časových intervaloch (napr. po každej uplynutej desatine sekundy) reálny čas. Reálny čas je reprezentovaný ako desatinné číslo, ktoré zodpovedá sekundám uplynutým od spustenia programu (napr. 0.1, 0.2, 0.3, ...).

2. Číta zo štandardného vstupu (stdin) vopred neohraničenú (nie nutne rastúcu) postupnosť desatinných čísiel, ktoré definujú časy alarmov, napr. 2.0, 4.1, 0.001, 3.7, 0.05.

3. Obsluhuje alarmy prečítané zo štandardného vstupu, t.j. po uplynutí času niektorého alarmu vypíše na štandardný výstup (stdout) reťazec (N, T, D), kde N je poradové číslo alarmu vo vstupnej postupnosti (celé číslo), T je čas definície alarmu vo vstupnej postupnosti (desatinné číslo), D je rozdiel medzi časom obsluhy alarmu a časom T (nezáporné desatinné číslo).

Ďalšie požiadavky:

Každý alarm zo stdin bude niekedy prečítaný a bude niekedy obslúžený.
Žiaden alarm nesmie byť obslúžený skôr než bol prečítaný a než uplynul čas v jeho definícii (napr. alarm s definovaným časom 2.0 smie byť obslúžený najskôr po uplynutí 2 sekúnd od spustenia programu).
Po prečítaní posledného znaku zo stdin (EOF) a zároveň po obslúžení všetkých alarmov program vypíše na stream stderr reťazec [N, A, D] s výslednou štatistikou, kde N je počet prečítaných/obslúžených alarmov, A je priemer rozdielov medzi časmi definície alarmov a časmi ich obsluhy, D je štandardná odchýlka týchto rozdielov.
Hlavným cieľom (okrem implementácie všetkých funkčných požiadaviek) je minimalizovať sumu (resp. priemer) rozdielov medzi časmi definície alarmov a časmi ich obsluhy, t.j. minimalizovať hodnotu A vo výslednej štatistike.
Program má byť parametrizovaný, aby umožňoval jednoduchú zmenu formátov vstupov a výstupov, granularity reálneho času atď. Implementácia má používať len štandardné systémové knižnice (POSIX). Kompilácia programu s gcc -c -ansi -Wall ... má produkovať 0 errors, 0 warnings.

Očakávaný stav projektu koncom zimného semestra:

Odladený funkčný program. Dokumentácia, ktorá vysvetľuje architektúru riešenia (na vhodnej úrovni abstrakcie), použité systémové funkcie a benchmarky, ktoré demonštrujú funkčnosť programu aj v okrajových situáciách.

Prvý návrh architekury:

Prvy navrh

Stav ku koncu zimného semestra:

Report
Program

Stav ku koncu letného semestra:

Report
Program
Porovnanie riešení
Analýza výkonnosti