Celem ćwiczenia jest zapoznanie się z działaniem mechanizmów szeregowania
systemu Xenomai i związkiem z synchronizacją zadań.
Zad.1.
Napisz program tworzący trzy wątki operujące na wspólnej zmiennej globalnej licz
- wątki numer 1 i 2 --- w pętli dwudziestokrotnie zwiększa wartość zmiennej globalnej licz w następujący sposób: przepisuje zawartość licz do zmiennej lokalnej, zwiększa wartość tej zmiennej o jeden, przepisuje wartość zmiennej lokalnej do zmiennej globalnej licz,
- wątek numer 3 --- w pętli dwudziestokrotnie zwiększa wartość zmiennej globalnej licz w następujący sposób: bezpośrednio zwiększa wartość zmiennej globalnej licz o jeden
Proszę zaobserwować czy zawartość zmiennej globalnej licz ma odpowiednią wartość. Każdy wątek powinien mieć unikatową nazwę.
Co oznacza otrzymany wynik?
Zad.2.
W funkcji rt_task_create ustaw priorytety kolejno uruchamianych
zadań na stopniowo coraz wyższe. Jaką zmianę to powoduje?
Zad.3.
Dodaj w pętli zadaniowej wszystkich wątków minimalne
opóźnienia rt_task_sleep między wszystkimi krokami, aby umożliwić
interakcje między zadaniami. Ustal eksperymentalnie minimalną wielkość
opóźnienia pozwalającą na przełączanie wątków. Upewnij się w jakich
jednostkach jest ono wyznaczone (nanosekundy lub jiffies).
Sprawdź otrzymany wynik na zmiennej globalnej licz.
Zad.4.
Zmodyfikuj program w taki sposób, żeby ochronić muteksem operacje na zmiennej globalnej licz.
Opisz uzyskany wynik