SOP wyk nr 13-Slajd39

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

Ograniczony bufor cykliczny — definicja oparta na monitorze (1)

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.


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