SO-1st-2.3-w12.tresc-1.0-Slajd25: Różnice pomiędzy wersjami

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
Dwa (dyskusja | edycje)
Nie podano opisu zmian
Dwa (dyskusja | edycje)
Nie podano opisu zmian
 
Linia 8: Linia 8:
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.
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.
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.




[[SO-1st-2.3-w12.tresc-1.0-Slajd24 | << Poprzedni slajd]] | [[SO-1st-2.3-w12.tresc-1.0-toc|Spis treści ]] | [[SO-1st-2.3-w12.tresc-1.0-Slajd26 | Następny slajd >>]]
[[SO-1st-2.3-w12.tresc-1.0-Slajd24 | << Poprzedni slajd]] | [[SO-1st-2.3-w12.tresc-1.0-toc|Spis treści ]] | [[SO-1st-2.3-w12.tresc-1.0-Slajd26 | Następny slajd >>]]

Aktualna wersja na dzień 19:51, 24 wrz 2006

Synchronizacja producenta i konsumenta za pomocą semaforów ogólnych (2)

Synchronizacja producenta i konsumenta 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 >>