SOP wyk nr 13-Slajd39
Z Studia Informatyczne
Ograniczony bufor cykliczny — definicja oparta na monitorze (1)
Podstawą rozwiązania problemu czytelników i pisarzy za pomocą monitora jest odpowiednio zdefiniowany bufor cykliczny. Bufor ten w prezentowanym rozwiązaniu chroniony jest przez monitor, tzn. właściwy bufor — określony jako pula miejsc — stanowi część monitora, w związku z czym dostępny jest bezpośrednio tylko w ramach wejść. Poza tym w monitorze zadeklarowane są zmienne na potrzeby obsługi dostępu do puli:
- wej — indeks pozycji w puli, na której umieszczony zostanie kolejny wstawiany element,
- wyj — indeks pozycji w puli, z której pobierany będzie kolejny element,
- licz — liczba elementów w buforze.
Synchronizacja dostępu wymaga jeszcze zmiennych warunkowych, na których byłyby usypiane procesy w przypadku zapełniania lub całkowitego opróżnienia bufora. W rozwiązaniu wykorzystano dwie zmienne warunkowe:
- pusty — do usypiania konsumentów, gdy bufor jest pusty,
- pełny — do usypiania producentów, gdy bufor jest w całości wypełniony.