W systemach wielozadaniowych niektóre nienormalne warunki uniemożliwiają postęp w wykonywaniu procesów lub wątków. Będę odnosić się do obu procesów i wątków po prostu jako "procesy". Dwa z tych warunków nazywa się dead-lock i live-lock.Co to jest głód?
Pierwsza odnosi się do procesów, które blokują się wzajemnie, uniemożliwiając w ten sposób wykonanie. Ta druga odnosi się do procesów, które uniemożliwiają sobie nawzajem postęp, ale w rzeczywistości nie blokują wykonania. Na przykład, mogą nieustannie powodować nawzajem do wycofywania transakcji, nigdy nie będąc w stanie ich ukończyć.
Kolejny warunek jest znany jako głód zasobów, w którym co najmniej jeden skończony zasób, wymagany do postępu procesów, został przez nie wyczerpany i nie może zostać przywrócony, dopóki procesy się nie zakończą. Jest to również szczególny przypadek blokady na żywo.
Chciałbym wiedzieć, czy istnieje jakakolwiek inna definicja, szczególnie akademicka, dotycząca "głodu", który nie ogranicza się do "głodu zasobów". Referencje są szczególnie mile widziane.
I nie, to nie jest praca domowa. :-)
Podczas gdy jesteś na temat, powinieneś również sprawdzić Lock Convoys, są one bardzo interesujące. I nieprzyjemny. http://en.wikipedia.org/wiki/Lock_convoy –
Nawet jeśli była to praca domowa, byłoby najlepiej napisane zadanie domowe, jakie kiedykolwiek widziałem na SO. –