SOP wyk nr 13-Slajd25: Różnice pomiędzy wersjami

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
Dwa (dyskusja | edycje)
Nie podano opisu zmian
 
Dwa (dyskusja | edycje)
zmiana tytułu i drobne zmiany w treści
 
Linia 1: Linia 1:
==Synchronizacja prod. i kons. za pomocą semaforów ogólnych (3)==
==Synchronizacja producenta i konsumenta za pomocą semaforów ogólnych (3)==


[[Image:SOP_wyk_nr_13-Slajd25.PNG|Synchronizacja prod. i kons. za pomocą semaforów ogólnych (3)]]
[[Image:SOP_wyk_nr_13-Slajd25.PNG|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.
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.




[[SOP_wyk_nr_13-Slajd24 | << Poprzedni slajd]] | [[SOP_wyk_nr_13-toc|Spis treści ]] | [[SOP_wyk_nr_13-Slajd26 | Następny slajd >>]]
[[SOP_wyk_nr_13-Slajd24 | << Poprzedni slajd]] | [[SOP_wyk_nr_13-toc|Spis treści ]] | [[SOP_wyk_nr_13-Slajd26 | Następny slajd >>]]

Aktualna wersja na dzień 00:08, 6 wrz 2006

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

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.


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