SO-1st-2.3-w12.tresc-1.0-Slajd26: Różnice pomiędzy wersjami
Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
Nie podano opisu zmian |
Nie podano opisu zmian |
||
Linia 4: | Linia 4: | ||
Konsument działa symetrycznie w stosunku do producenta. Podobnie jak producent, utrzymuje on lokalną zmienną ''i'' , która wskazuje mu pozycję z kolejnym elementem do pobrania. Zmienna ta musiałaby być współdzielona w przypadku wielu konsumentów. | Konsument działa symetrycznie w stosunku do producenta. Podobnie jak producent, utrzymuje on lokalną zmienną ''i'', która wskazuje mu pozycję z kolejnym elementem do pobrania. Zmienna ta musiałaby być współdzielona w przypadku wielu konsumentów. | ||
Przed uzyskaniem dostępu do bufora konsument wykonuje operację opuszczenia semafora ''zajęte'' , który zwiększa producent po umieszczeniu w buforze kolejnego elementu. Jeśli semafor ''zajęte'' jest równy 0, bufor jest pusty i konsument nie ma tam czego szukać. Utknie on zatem w operacji opuszczania. | Przed uzyskaniem dostępu do bufora konsument wykonuje operację opuszczenia semafora ''zajęte'', który zwiększa producent po umieszczeniu w buforze kolejnego elementu. Jeśli semafor ''zajęte'' jest równy 0, bufor jest pusty i konsument nie ma tam czego szukać. Utknie on zatem w operacji opuszczania. | ||
Jeśli konsument uzyska dostęp do bufora, pobierze element i tym samym zwolni miejsce. Fakt ten zasygnalizuje poprzez podniesieni semafora ''wolne'' , co z kolei umożliwi wykonanie kolejnego kroku producentowi. | Jeśli konsument uzyska dostęp do bufora, pobierze element i tym samym zwolni miejsce. Fakt ten zasygnalizuje poprzez podniesieni semafora ''wolne'', co z kolei umożliwi wykonanie kolejnego kroku producentowi. | ||
[[SO-1st-2.3-w12.tresc-1.0-Slajd25 | << Poprzedni slajd]] | [[SO-1st-2.3-w12.tresc-1.0-toc|Spis treści ]] | [[SO-1st-2.3-w12.tresc-1.0-Slajd27 | Następny slajd >>]] | [[SO-1st-2.3-w12.tresc-1.0-Slajd25 | << Poprzedni slajd]] | [[SO-1st-2.3-w12.tresc-1.0-toc|Spis treści ]] | [[SO-1st-2.3-w12.tresc-1.0-Slajd27 | Następny slajd >>]] |
Aktualna wersja na dzień 19:51, 24 wrz 2006
Synchronizacja producenta i konsumenta za pomocą semaforów ogólnych (3)
Konsument działa symetrycznie w stosunku do producenta. Podobnie jak producent, utrzymuje on lokalną zmienną i, która wskazuje mu pozycję z kolejnym elementem do pobrania. Zmienna ta musiałaby być współdzielona w przypadku wielu konsumentów.
Przed uzyskaniem dostępu do bufora konsument wykonuje operację opuszczenia semafora zajęte, który zwiększa producent po umieszczeniu w buforze kolejnego elementu. Jeśli semafor zajęte jest równy 0, bufor jest pusty i konsument nie ma tam czego szukać. Utknie on zatem w operacji opuszczania.
Jeśli konsument uzyska dostęp do bufora, pobierze element i tym samym zwolni miejsce. Fakt ten zasygnalizuje poprzez podniesieni semafora wolne, co z kolei umożliwi wykonanie kolejnego kroku producentowi.