Synchronizacja
#
Zakres wykładu
#
- Problem sekcji krytycznej
- Trzy warunki poprawności: Wzajemne wykluczanie, Postęp, Ograniczone oczekiwanie
- Algorytm Petersona
- Brak spójności widoku pamięci (Cache, Store Buffers)
- Sprzętowa zmiana kolejności instrukcji
- Sprzętowe modele pamięci
- Wpływ procesu translacji
- Model pamięci C11+
- Bariery pamięciowe
- Sprzętowe wsparcie synchronizacji: operacje Read-Modify-Write
- Atomic Swap (XCHG)
- Test-and-Set (TAS)
- Compare-and-Swap (CAS / cmpxchg)
- Spinlocki i problem aktywnego czekania
- Semafory systemowe Dijkstry
- Linux Futex (Fast Userspace Mutex)
Materiały
#
- Slajdy wykładowe
- Programy przykładowe
- Podręcznik: rozdz. 7 (Synchronizacja procesów)
- Stare slajdy: Synchro_3.pdf