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 4: Linia 4:




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'' .  
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.
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.

Wersja z 19:50, 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 >>