PROBLEM PRODUCENTA I KONSUMENTA
Należy zsynchronizowac dwa procesy: producenta, który cyklicznie produkuje jedna porcje informacji a nastepnie przekazuje je do skonsumowania i konsumenta, który cyklicznie pobiera porcje i konsumuje ją.
Miedzy producentem a konsumentem znajduje się n-elementowy bufor
Producent
PROBLEM CZYTELNIKOW I PISARZY
Należy zsynchronizowac dwie grupy cyklicznych procesow konkurujących o dostep do wspolnej czytelni
Proces czytelnik co jakis czas odczytuje informacje zgromadzona w czytelni
Proces pisarz co jakis czas zapisuje nowa imformacje\czytelnik może czytac razem z innymi czytelnikami
Pisarz musi przebywac sam w czytelni
Operacje czytania i pisania nie trwaja nieskonczenie dlugo.
MECHANIZMY NISKOPOZIOMOWE DO WZAJEMNEGO WYKLUCZENIA
Slajd nr 4 plik w9.pdf
SEMAFORY
Semafor całkowity – ogolny S jest zmienną całkowita z dwoma wyróżnionymi operacjami [1] – podniesienie semafora v(S):S:=S+1 [2] – opuszczenie semafora P(S): Czekaj, az S>0; S:=S-1
Semafor binarny – jest zmienna przyjmujaca wartości 0 lub 1 z dwoma wyróżnionymi operacjami [1] –podniesienie VB(S): S:=1 [2] – opuszczenie semafora PB(S) czekaj, az S=1: S:=0
Zakłada się ze podniesie i opuszczenie semafora SA operacjami niepodzielnymi.
SEMAFORY – PRODUCET I KONSUMENT
Slajd 7 plik w9.pdf „synchronizacja pocesow (producent i konsument)”. Fragment kodu j:=j mod N+1 – przygotowuje do nastepnego. P:=bufor[k]; - konsument pobiera porcje z bufora. P(pełne); konsument będzie czekał. V(pełne) – wznowienie konsumenta by mogl pobrac swoja porcje.
SEMAFORY – CZYTELNICY I PISARZE
IMPLEMENTACJA SEMAFORÓW