Różnica Między Impasem A Głodem

Spisu treści:

Różnica Między Impasem A Głodem
Różnica Między Impasem A Głodem

Wideo: Różnica Między Impasem A Głodem

Wideo: Różnica Między Impasem A Głodem
Wideo: Głód emocjonalny a fizyczny. Jaka jest różnica? 2024, Listopad
Anonim

Impas kontra głód

Główną różnicą między impasem a głodem jest związek przyczynowo-skutkowy między nimi; to impas, który powoduje głód. Inną interesującą różnicą między impasem a głodem jest to, że impas jest problemem, podczas gdy głód może czasami pomóc wyjść z impasu. W świecie komputerów podczas pisania programu komputerowego będzie więcej niż jeden proces / wątek, który będzie działał równolegle jeden po drugim w celu wykonania wymaganej usługi dla programu. Dlatego, aby mieć uczciwy system, programista powinien mieć pewność, że wszystkie procesy / wątki otrzymają lub uzyskają wystarczający dostęp do zasobów, których potrzebują. Jeśli nie, nastąpi impas, który później doprowadzi do głodu. Ogólnie rzecz biorąc, uczciwy system nie zawiera żadnych zakleszczeń ani głodówek. Zakleszczenia i głody będą występować głównie wtedy, gdy wiele wątków będzie walczyć o ograniczone zasoby.

Co to jest impas?

Zakleszczenie to stan, który występuje, gdy dwa wątki lub procesy czekają na siebie nawzajem na ukończenie zadania. Tylko się rozłączają, ale nigdy nie przerywają ani nie kończą swojego zadania. W informatyce impas można dostrzec wszędzie. W bazie danych transakcji, gdy dwa procesy, każdy w ramach własnej transakcji, aktualizują te same dwa wiersze informacji, ale w odwrotnej kolejności, spowoduje zakleszczenie. W programowaniu współbieżnym zakleszczenie może wystąpić, gdy dwie konkurujące ze sobą akcje będą czekać na siebie nawzajem, aby przejść dalej. W systemach telekomunikacyjnych może dojść do zakleszczenia spowodowanego utratą lub uszkodzeniem sygnałów.

Obecnie impas jest jednym z głównych problemów w systemach wieloprocesorowych i obliczeniach równoległych. Jako rozwiązanie zaimplementowano system blokowania zwany synchronizacją procesów zarówno dla oprogramowania, jak i sprzętu.

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

Co to jest głód?

Ze słownika nauk medycznych głód jest wynikiem poważnego lub całkowitego braku składników odżywczych potrzebnych do życia. Podobnie w informatyce głód jest problemem, który pojawia się, gdy wiele wątków lub procesów oczekuje na ten sam zasób, co nazywa się impasem.

Aby wyjść z impasu, jeden z procesów lub wątków powinien poddać się lub wycofać, aby inny wątek lub proces mógł korzystać z zasobu. Jeśli tak się dzieje w sposób ciągły i ten sam proces lub wątek musi za każdym razem zrezygnować lub wycofać się, pozwalając innym procesom lub wątkom na korzystanie z zasobu, wówczas wybrany proces lub wątek, który został wycofany, przejdzie przez sytuację zwaną głodem. Dlatego, aby wyjść z impasu, jednym z rozwiązań jest głód. Dlatego czasami głód nazywa się rodzajem żywego zwierzęcia. Kiedy istnieje wiele procesów lub wątków o wysokim priorytecie, proces lub wątek o niższym priorytecie zawsze będzie głodować w zakleszczeniu.

Może wystąpić wiele głodów, takich jak głód zasobów i głód procesora. Istnieje wiele typowych przykładów głodu. To problem czytelników-pisarzy i problem filozofów kulinarnych, który jest bardziej znany. Przy okrągłym stole z miskami spaghetti siedzi pięciu milczących filozofów. Widły są umieszczone między każdą parą sąsiednich filozofów. Każdy filozof musi na przemian myśleć i jeść. Jednak filozof może jeść spaghetti tylko wtedy, gdy ma zarówno lewy, jak i prawy widelec.

Impas kontra głód
Impas kontra głód

„Filozofowie jadalni”

Jaka jest różnica między Deadlock a Starvation?

• Proces:

• W przypadku zakleszczenia dwa wątki lub procesy będą na siebie czekać i oba nie będą kontynuować.

• W przypadku głodu, gdy dwa lub więcej wątków lub procesów czeka na ten sam zasób, jeden z nich wycofa się i pozwoli innym najpierw użyć tego zasobu, a następnie wygłodniały wątek lub proces spróbuje ponownie. Dlatego wszystkie wątki lub procesy będą i tak postępować naprzód.

• Wycofywanie:

• W przypadku zakleszczenia zarówno wątki / procesy o wysokim priorytecie, jak i wątki / procesy o niskim priorytecie, będą na siebie czekać w nieskończoność. To się nigdy nie kończy.

• Jednak w przypadku głodu, te o niskim priorytecie będą czekać lub wycofywać się, ale te o wysokim priorytecie będą kontynuowane.

• Oczekiwanie lub Blokada:

• Zakleszczenie to cykliczne oczekiwanie.

• Głód jest rodzajem żywego stada i czasami pomaga wyjść z impasu.

• Impas i głód:

• Impas powoduje głód, ale głód nie powoduje impasu.

• Przyczyny:

• Zakleszczenie nastąpi z powodu wzajemnego wykluczenia, wstrzymania i oczekiwania, braku wywłaszczania lub oczekiwania cyklicznego.

• Głód występuje z powodu niedoboru zasobów, niekontrolowanego zarządzania zasobami i priorytetów procesu.

Streszczenie:

Impas kontra głód

Zakleszczenie i głód to niektóre z problemów, które występują z powodu wyścigów danych i warunków wyścigu, które występują podczas programowania, a także wdrażania sprzętu. W przypadku zakleszczenia dwa wątki będą na siebie czekać w nieskończoność bez wykonywania, podczas gdy w przypadku głodu jeden wątek wycofa się i pozwoli drugiemu wątkowi wykorzystać zasoby. Zakleszczenie spowoduje głód, podczas gdy głód pomoże wątkowi wyjść z impasu.

Zdjęcia dzięki uprzejmości:

  1. Komputer autorstwa Steve'a Jurvetsona z Menlo Park, USA (CC BY 2.0)
  2. The „Dining Philosophers”, autor: Bdesham (CC BY-SA 3.0)

Zalecane: