SOP wyk nr 13-Slajd24
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.