Synchronizacja

Synchronizacja POSIX #

Zakres wykładu #

  • Semafory POSIX
    • Trwałość, nazywanie, lokalizacja w pamięci semaforów nazwanych oraz nienazwanych.
    • Tworzenie i inicjacja, otwieranie/zamykanie dostępu i usuwanie nazwanych semaforów. sem_open(), sem_close(), sem_unlink().
    • Tworzenie i inicjacja oraz usuwanie nienazwanych semaforów. Uwaga: przy synchronizacji wątków różnych procesów konieczne jest użycie współdzielonej struktury semaforowej.
    • Blokujące i nieblokujące operacje wait: sem_wait(), sem_trywait().
    • Operacja post: sem_post(). Pobieranie wartości semafora: sem_ getvalue()
  • Inne obiekty synchronizacji POSIX
    • Zmienna warunku. Wykorzystanie pary: zmienna warunku - muteks do synchronizacji.
    • Bariera. Zasada działania.
    • Zamek czytelników-pisarzy (rygle odczytu-zapisu).

Materiały #

  1. Slajdy wykładowe
  2. Programy wykładowe
  3. Rozdz. 27.1 w dokumentacji the GNU C library: Semaphores
  4. Literatura uzupełniająca: W.R. Stevens, Unix programowanie usług sieciowych, t. 2, wyd. 2: Komunikacja międzyprocesowa Rozdziały: 7 (Muteksy i zmienne warunku), 8 (Rygle odczytu zapisu), 10 (Semafory posiksowe), 11 (Semafory Systemu V).
  5. Stare Slajdy: IPC_2.pdf