Verschil tussen deadlock en honger in OS

Schrijver: Laura McKinney
Datum Van Creatie: 3 April 2021
Updatedatum: 23 April 2024
Anonim
The Third Industrial Revolution: A Radical New Sharing Economy
Video: The Third Industrial Revolution: A Radical New Sharing Economy

Inhoud


Deadlock en Starvation zijn beide de omstandigheden waarin de processen die om een ​​resource vragen al lang zijn uitgesteld. Hoewel impasse en honger beide in veel opzichten van elkaar verschillen. Impasse is een voorwaarde waarbij geen proces plaatsvindt voor uitvoering en elk wacht op middelen die zijn verkregen door de andere processen. Aan de andere kant, in uithongering, proces met hoge prioriteiten gebruikt continu de middelen die een proces met lage prioriteit voorkomen om de middelen te verwerven. Laten we wat meer verschillen bespreken tussen impasse en honger met behulp van de onderstaande vergelijkingstabel.

  1. Vergelijkingstabel
  2. Definitie
  3. Belangrijkste verschillen
  4. Gevolgtrekking

Vergelijkingstabel

Basis voor vergelijkingImpasseuithongering
basis-Deadlock is waar geen proces plaatsvindt en geblokkeerd wordt.Verhongering is waar processen met lage prioriteit worden geblokkeerd en processen met hoge prioriteit worden voortgezet.
Opkomende staatHet optreden van Wederzijdse uitsluiting, Wacht en wacht, Geen voorrang en Circulair wachten tegelijkertijd.Handhaving van prioriteiten, ongecontroleerd resourcebeheer.
Andere naamCirculair wachten.Lifelock.
MiddelenIn een impasse worden gevraagde bronnen geblokkeerd door de andere processen.Bij uithongering worden de gevraagde middelen continu gebruikt door processen met hoge prioriteit.
het voorkomenVermijden van wederzijdse uitsluiting, vasthouden en wachten en circulair wachten en voorrang verlenen. Veroudering.


Definitie van impasse

Deadlock is een situatie waarin de verschillende processen in CPU concurreren om het eindige aantal beschikbare bronnen binnen de CPU. Hier bevat elk proces een bron en wacht om een ​​bron te verwerven die in het bezit is van een ander proces. Alle processen wachten op middelen op een circulaire manier. In de onderstaande afbeelding kunt u zien dat proces P1 bron R2 heeft verkregen die wordt aangevraagd door proces P2 en proces P1 vraagt ​​om bron R1 die opnieuw in het bezit is van R2. Dus proces P1 en P2 vormen een impasse.

Deadlock is een veel voorkomend probleem in besturingssystemen met meerdere processen, gedistribueerde systemen en ook in parallelle computersystemen. Er zijn vier voorwaarden die gelijktijdig moeten optreden om de toestand van de impasse te verhogen, namelijk wederzijdse uitsluiting, wachtstand en wachttijd, geen voorrecht en circulair wachten.


  • Wederzijdse uitsluiting: Er kan slechts één proces tegelijk een resource gebruiken als een ander proces om dezelfde resource vraagt, het moet wachten totdat het proces waarbij de resource wordt gebruikt deze vrijgeeft.
  • Wacht en wacht: Een proces moet een resource bevatten en wachten om een ​​andere resource te verwerven die in het bezit is van een ander proces.
  • Geen voorrecht: Het proces dat de middelen bevat kan niet worden uitgesloten. Het proces dat de bron vasthoudt, moet de bron vrijwillig vrijgeven wanneer het zijn taak heeft voltooid.
  • Circulair wachten: Het proces moet circulair wachten op middelen. Stel dat we drie processen hebben {P0, P1, P2}. De PO moet wachten op de bron die in het bezit is van P1; P1 moet wachten om de bron van proces P2 te verwerven, en P2 moet wachten om het proces van P0 te verwerven.

Hoewel er enkele toepassingen zijn die programma's kunnen detecteren die vastlopen. Maar het besturingssysteem is nooit verantwoordelijk voor het voorkomen van deadlocks. Het is de verantwoordelijkheid van programmeurs om deadlock-vrije programma's te ontwerpen. Dit kan worden gedaan door de bovenstaande omstandigheden te vermijden die nodig zijn voor het optreden van een impasse

Definitie van honger

Verhongering kan worden gedefinieerd als wanneer een procesverzoek voor een hulpbron en die hulpbron continu door de andere processen is gebruikt, het verzoekende proces wordt geconfronteerd met verhongering. Bij uithongering wacht een proces dat klaar is om te worden uitgevoerd tot CPU de bron heeft toegewezen. Maar het proces moet oneindig wachten omdat de andere processen continu de gevraagde middelen blokkeren.

Het probleem van de honger komt meestal voor in prioriteitsplanningalgoritme. In het algoritme voor prioriteitsplanning wordt aan het proces met hogere prioriteit altijd de resource toegewezen, waardoor wordt voorkomen dat het proces met lagere prioriteit de gevraagde resource krijgt.

Veroudering kan het probleem van de honger oplossen. Veroudering verhoogt geleidelijk de prioriteit van het proces dat lang op de middelen heeft gewacht. Veroudering voorkomt dat een proces met lage prioriteit voor onbepaalde tijd op een hulpmiddel wacht.

  1. In een impasse gaat geen van de processen door voor uitvoering, elk proces wordt geblokkeerd in afwachting van de bronnen die zijn verkregen door het andere proces. Aan de andere kant is uithongering een voorwaarde waarbij de processen die een hogere prioriteit hebben, de middelen continu mogen verwerven door te voorkomen dat de processen met lage prioriteit middelen verwerven, wat resulteert in onbeperkte blokkering van processen met lage prioriteit.
  2. Deadlock ontstaat wanneer vier voorwaarden Wederzijdse uitsluiting, vasthouden en wachten, geen voorrang en circulair wachten komt gelijktijdig voor. Verhongering treedt echter op tijdens het proces prioriteiten zijn gehandhaafd terwijl resources worden toegewezen, of er is ongecontroleerd resourcebeheer in het systeem.
  3. Deadlock wordt vaak bij de naam genoemd circulair wachten terwijl de honger wordt genoemd Woonde slot.
  4. In Deadlock worden de bronnen geblokkeerd door het proces, terwijl in honger de processen continu worden gebruikt door de processen met hoge prioriteiten.
  5. Een impasse kan worden voorkomen door het vermijden van de voorwaarden zoals wederzijdse uitsluiting, Vasthouden en wachten en circulair wachten en door de voorkeur te geven aan de processen die middelen lang vasthouden. Aan de andere kant kan verhongering worden voorkomen door veroudering.

Gevolgtrekking:

Zowel Deadlock als Starvation vertraagt ​​de procesuitvoering door deze te blokkeren. Enerzijds waar impasse kan leiden tot uithongering van processen, en anderzijds kan uithongering de processen uit de impasse halen.