Pomoc online ESET

Wyszukaj Polski
Wybierz temat

Zakleszczenie

Zakleszczenie to sytuacja, w której każdy proces komputera czeka na zasób przypisany do innego procesu. W tej sytuacji żaden z procesów nie jest wykonywany, ponieważ wymagany zasób jest przechowywany przez inny proces, który również czeka na zwolnienie innego zasobu. Ważne jest, aby zapobiec zakleszczeniu, zanim do niego dojdzie. Wystąpienie zakleszczenia może zostać wykryte przez harmonogram zasobów, który pomaga systemowi operacyjnemu śledzić wszystkie zasoby przydzielone do różnych procesów. Zakleszczenie może wystąpić, jeśli jednocześnie spełnione są następujące cztery warunki:

Brak działania zapobiegawczego – zasób może zostać zwolniony tylko dobrowolnie przez proces, który go przechowuje, po zakończeniu zadania przez ten proces.

Wzajemne wykluczanie – specjalny typ semafora binarnego używany do kontroli dostępu do zasobu współdzielonego. Umożliwia blokowanie bieżących zadań o wyższym priorytecie przez możliwie najkrótszy czas.

Wstrzymaj i poczekaj – w tym stanie procesy muszą zostać zatrzymane przed przechowywaniem jednego lub wielu zasobów, jednocześnie czekając na jeden lub więcej innych.

Oczekiwanie cykliczne – wymusza całkowite uporządkowanie wszystkich typów zasobów. Oczekiwanie cykliczne wymaga również, aby każdy proces żądał zasobów w rosnącej kolejności wyliczenia.

 

Istnieją trzy sposoby radzenia sobie z zakleszczeniem:

Nie pozwól, aby system znalazł się w stanie zakleszczenia.

Wywołaj zakleszczenie, a następnie podejmij działania zapobiegawcze, aby sobie z nim poradzić, gdy się pojawi.

Jeśli dojdzie do zakleszczenia, uruchom ponownie system.