Blokowanie (przetwarzanie)

W informatyce proces jest instancją wykonywanego programu komputerowego . Proces zawsze istnieje w dokładnie jednym stanie procesu . Zablokowany proces to taki, który oczekuje na jakieś zdarzenie , takie jak udostępnienie zasobu lub zakończenie operacji we/wy .

W wielozadaniowym systemie komputerowym poszczególne zadania lub wątki wykonania muszą dzielić zasoby systemu. Zasoby współdzielone obejmują: procesor, sieć i interfejsy sieciowe, pamięć i dysk.

Gdy jedno zadanie korzysta z zasobu, generalnie nie jest możliwe lub pożądane, aby inne zadanie miało do niego dostęp. Aby temu zapobiec, stosowane są techniki wzajemnego wykluczania się . Gdy inne zadanie jest zablokowane, nie można go wykonać, dopóki pierwsze zadanie nie zakończy korzystania z udostępnionego zasobu.

Języki programowania i algorytmy planowania zostały zaprojektowane tak, aby zminimalizować ogólne blokowanie efektów. Proces, który blokuje, może uniemożliwić postęp lokalnych zadań roboczych. W tym przypadku „blokowanie” jest często postrzegane jako niepożądane. Jednak takie zadania robocze mogły zamiast tego zostać przydzielone niezależnym procesom, w których zatrzymanie jednego nie ma wpływu lub ma niewielki wpływ na inne, ponieważ planowanie będzie kontynuowane. Przykładem jest „blokowanie na kanale ”, gdzie pasywne oczekiwanie na drugą część (bez odpytywania lub wirowania pętli) jest częścią semantyki kanałów. Właściwie zaprojektowany każdy z nich może być użyty do wdrożenia systemów reaktywnych.

Impas oznacza, że ​​procesy patologicznie czekają na siebie w kole. Jako taka nie jest bezpośrednio związana z blokowaniem.

Po wystąpieniu zdarzenia, na które proces oczekuje („jest zablokowany”), proces przechodzi ze stanu zablokowanego do stanu zbliżającego się, takiego jak runnable .

Zobacz też