SO-1st-2.3-w12.tresc-1.0-Slajd25: Różnice pomiędzy wersjami
Nie podano opisu zmian |
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)
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.