Synchronizacja

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 #

  1. Slajdy wykładowe
  2. Programy przykładowe
  3. Podręcznik: rozdz. 7 (Synchronizacja procesów)
  4. Stare slajdy: Synchro_3.pdf