SOP wyk nr 13-Slajd24

Z Studia Informatyczne
Wersja z dnia 10:56, 16 sie 2006 autorstwa Dwa (dyskusja | edycje)
(różn.) ← poprzednia wersja | przejdź do aktualnej wersji (różn.) | następna wersja → (różn.)
Przejdź do nawigacjiPrzejdź do wyszukiwania

Synchronizacja prod. i kons. za pomocą semaforów ogólnych (2)

Synchronizacja prod. i kons. za pomocą semaforów ogólnych (2)


Producent ma lokalną zmienną i , która wskazuje kolejną pozycję do zapełnienia w buforze. W przypadku wielu producentów zmienna ta musiałaby być przez nich współdzielona. Zmienna zwiększana jest cyklicznie (modulo n ) po każdym wstawieniu elementu do bufora. Tak funkcjonujący bufor określą się jako ograniczony bufor cykliczny .

Wstawienie elementu do bufora poprzedzone jest operacją opuszczenia semafora wolne . Brak wolnego miejsca oznacza wartość 0 zmiennej semaforowej wolne i tym samym uniemożliwia opuszczenie. W ten sposób producent blokowany jest w dostępie do bufora, co chroni bufor przed przepełnieniem. Semafor wolne zostanie podniesiony przez konsumenta, gdy zwolni on miejsce w buforze.

Jeśli producentowi uda się umieścić kolejny element w buforze, sygnalizuje to przez podniesienie semafora zajęte . Ile razy podniesie go producent, tyle razy będzie mógł go opuścić konsument.


<< Poprzedni slajd | Spis treści | Następny slajd >>