Różnica między impasem a głodem w systemie operacyjnym

Autor: Laura McKinney
Data Utworzenia: 3 Kwiecień 2021
Data Aktualizacji: 23 Kwiecień 2024
Anonim
Różnica między impasem a głodem w systemie operacyjnym - Technologia
Różnica między impasem a głodem w systemie operacyjnym - Technologia

Zawartość


Zarówno impas, jak i głód to warunki, w których procesy żądające zasobów były opóźnione przez długi czas. Chociaż zarówno impas, jak i głód różnią się między sobą pod wieloma względami. Impas jest warunkiem, w którym żaden proces nie przechodzi do wykonania i każdy czeka na zasoby, które zostały pozyskane przez inne procesy. Z drugiej strony, w Głód, proces o wysokich priorytetach stale wykorzystuje zasoby, aby zapobiec procesowi o niskim priorytecie do pozyskania zasobów. Omówmy jeszcze kilka różnic między impasem a głodem za pomocą tabeli porównawczej pokazanej poniżej.

  1. Wykres porównania
  2. Definicja
  3. Kluczowe różnice
  4. Wniosek

Wykres porównania

Podstawa do porównaniaImpasGłód
PodstawowyZakleszczenie polega na tym, że żaden proces nie przebiega i zostaje zablokowany.Głodowanie polega na blokowaniu procesów o niskim priorytecie i kontynuowaniu procesu o wysokim priorytecie.
Powstający warunekWystąpienie wzajemnego wykluczenia, Wstrzymaj i poczekaj, Bez uprzedzenia i Okólnik poczekaj jednocześnie.Egzekwowanie priorytetów, niekontrolowane zarządzanie zasobami.
Inna nazwaOkólnik czekać.Lifelock.
ZasobyW impasie żądane zasoby są blokowane przez inne procesy.W przypadku głodu żądane zasoby są stale wykorzystywane przez procesy o wysokim priorytecie.
ZapobieganieUnikanie wzajemnego wykluczenia, wstrzymywanie i czekanie oraz cykliczne oczekiwanie i pozwalanie na zapobieganie. Starzenie się.


Definicja impasu

Zakleszczenie to sytuacja, w której kilka procesów procesora konkuruje o skończoną liczbę zasobów dostępnych w procesorze. Tutaj każdy proces zawiera zasób i czeka na zdobycie zasobu przechowywanego przez inny proces. Wszystkie procesy czekają na zasoby w sposób cykliczny. Na poniższym obrazku widać, że Proces P1 nabył zasób R2, który jest wymagany przez proces P2, a Proces P1 żąda zasobu R1, który jest ponownie przechowywany przez R2. Zatem procesy P1 i P2 tworzą impas.

Zakleszczenie jest częstym problemem w wieloprocesowych systemach operacyjnych, systemach rozproszonych, a także w równoległych systemach obliczeniowych. Istnieją cztery warunki, które muszą wystąpić jednocześnie, aby podnieść warunek impasu: wzajemne wykluczenie, wstrzymanie i oczekiwanie, brak uprzedzenia i cykliczne oczekiwanie.


  • Wzajemne wykluczenie: Tylko jeden proces może korzystać z zasobu, jeśli inny proces zażąda tego samego zasobu, musi poczekać, aż proces korzystający z zasobu go zwolni.
  • Trzymaj i czekaj: Proces musi przechowywać zasób i czeka na zdobycie innego zasobu, który jest przechowywany przez inny proces.
  • Bez uprzedzenia: Proces utrzymywania zasobów nie może być wyprzedzony. Proces utrzymujący zasób musi dobrowolnie zwolnić zasób po zakończeniu zadania.
  • Okólnik czekać: Proces musi czekać na zasoby w sposób cykliczny. Załóżmy, że mamy trzy procesy {P0, P1, P2}. P0 musi czekać na zasób przechowywany przez P1; P1 musi czekać na przejęcie zasobu przechowywanego przez proces P2, a P2 musi czekać na przejęcie procesu przechowywanego przez P0.

Chociaż istnieją aplikacje, które mogą wykryć programy, które mogą zostać zakleszczone. Ale system operacyjny nigdy nie jest odpowiedzialny za zapobieganie zakleszczeniom. Programiści są odpowiedzialni za projektowanie programów wolnych od impasu. Można tego dokonać unikając powyższych warunków, które są niezbędne do wystąpienia impasu

Definicja głodu

Głodowanie można zdefiniować, gdy żądanie procesu dla zasobu i ten zasób był stale wykorzystywany przez inne procesy, a proces żądający staje w obliczu głodu. W przypadku głodu proces gotowy do wykonania czeka, aż procesor przydzieli zasób. Ale proces musi czekać w nieskończoność, ponieważ inne procesy ciągle blokują żądane zasoby.

Problem głodu występuje na ogół w algorytm szeregowania priorytetów. W algorytmie szeregowania priorytetów procesowi o wyższym priorytecie zawsze przydzielany jest zasób, co uniemożliwia procesowi o niższym priorytecie uzyskanie żądanego zasobu.

Starzenie się może rozwiązać problem głodu. Starzenie się stopniowo zwiększa priorytet procesu, który długo czekał na zasoby. Starzenie uniemożliwia procesowi o niskim priorytecie oczekiwanie na zasób w nieskończoność.

  1. W impasie żaden z procesów nie przechodzi do wykonania, każdy proces jest blokowany w oczekiwaniu na zasoby pozyskane przez inny proces. Z drugiej strony głodowanie jest warunkiem, w którym procesy o wyższym priorytecie mogą pozyskiwać zasoby w sposób ciągły, uniemożliwiając procesom o niskim priorytecie pozyskiwanie zasobów, co powoduje nieokreślone blokowanie procesów o niskim priorytecie.
  2. Zakleszczenie powstaje, gdy cztery warunki Wzajemne wykluczanie, Wstrzymaj i czekaj, Bez uprzedzeń i Okólnik czekaj występuje jednocześnie. Jednak głód występuje podczas procesu priorytety zostały egzekwowane podczas alokacji zasobów lub w systemie istnieje niekontrolowane zarządzanie zasobami.
  3. Deadlock jest często nazywany nazwą okrągłe czekanie podczas gdy głód jest nazywany Blokada na żywo.
  4. W impasie zasoby są blokowane przez proces, podczas gdy z głodu procesy są stale wykorzystywane przez procesy o wysokich priorytetach.
  5. Zakleszczeniu można zapobiec, unikając takich warunków, jak wzajemne wykluczanie, Wstrzymaj i czekaj oraz cyklicznie czekaj i umożliwiając zapobieganie procesom utrzymującym zasoby przez długi czas. Z drugiej strony Głodowi można zapobiec starzenie się.

Wniosek:

Zarówno Deadlock, jak i Starvation opóźniają wykonanie procesu, blokując go. Z jednej strony impas może powodować głodzenie procesów, z drugiej zaś głód może wydostać się z impasu.