Table of Contents

HW 8 - Interaktivní aplikace s meziprocesovou komunikací

Časný termín 24.04.2021 23:59 PDT
Termín odevzdání 01.05.2021 23:59 PDT
Povinné zadání 5b kontrola Coding stylu
Volitelné zadání není
Bonusové zadání není
Počet uploadů bez omezení
Podpora bab36prga-hw08.zip

Cílem úlohy je získat zkušenost s využitím pojmenované roury pro komunikaci aplikace v počítači s poskytnutým Modulem a práci s více vlákny pro zpracování více zdrojů událostí.

Program vychází ze cvičeních 7, 8, 9 s pojmenovanou rourou a více-vláknové aplikace. Výsledné programy představují dílčí kroky pro snažší implementaci následně HW9.

Povinné zadání

Realizujte program, kterým bude řízeno blikání LED v Modulu.
Program musí obsahovat následující funcionality:

Pro výpis využijte přepisování řádku znakem '\r'. Po odeslaní znaku 's' a 'e' je stav LED (on nebo off) nastaven až po přijeti potvrzovacího znaku 'a'.

Důležitou částí je organizace kódu a dedikování jednotlivých vláken pro 1) čtení z klávesnice; 2) překreslování řádku, 3) čtení z roury; 4) měření periody blikání LED jednou za 5 sekund; případně další hlavní vlákno v boss/worker modelu.
Implementačně (na počet řádků) náročnější variantou je realizovat v program frontu zpráv a řešit logiku programu v rámci hlavního vlákna, které přijímá zprávy od ostatních vláken a realizuje příslušné výstupy (tj. pojmenovaná roura a textový výstup na stdout. Benefitem takto organizovaného programu je snadné rozšíření. Jednodušší variantou je dedikovat zápis do roury vláknu pro čtení vstupu z klávesnice a notifikace překreslování z jednolivých vláken na základě přijaté události (tak jako v programu na cvičení 9).
Komunikace mezi aplikací a Modulem

Dále Modul v případě, že periodicky bliká LED, vysílá znak 'x' při rozsvícení LED a znak 'o' při zhasnutí LED.

Odevzdání a hodnocení

Veřejné příklady + Makefile: bab36prga-hw08.zip

Jan Faigl 2020/05/02 22:42 Update: Přídání binárek pro OS X a arch64

Program pokud možno realizujte na cvičení, nahrajte do odevzdávacího systému. Funkčnost programu ověří učitel na cvičení nebo na dalším cvičení.

Povinné zadání
Název v BRUTE HW08
Odevzdávané soubory prga-hw08-main.c
Argumenty při spuštění žádné
Procvičované oblasti vlákna, pojmenovaná roura