5. cvičení
Úkoly
-
Upravte úkol 1 ze 2. cvičení tak, aby přístup ke sdílené proměnné byl synchronizován.
-
Upravte úkol ze 3. cvičení tak, aby synchronizace byla provedena pomocí semaforů.
-
Naprogramujte thread-safe zásobník. Přístup k zásobníku synchronizujte pomocí semaforů. Se zásobníkem můžeme provádět následující operace:
push
- Vloží prvek na zásobníkpop
- Odebere prvek z vrcholu zásobníkuisEmpty
- Vracítrue
pokud je zásobník prázdný
Pokud vlákno zavolá
pop
na prázdný zásobník tak nemusí čekat až tam jíné vlákno vloží prvek ale hned vratinil
. -
Naprogramujte atomický broadcast. Máme jednoho producenta a n konzumentů a sdílený buffer. Producent vkládá do bufferu hodnoty a konzumenti je čtou. Každá hodnota ale musí být přečtena všemi konzumenty před tím než může producent vložit další hodnotu do bufferu.