Verschil tussen deadlock en starvation | Deadlock vs Starvation

Anonim

Deadlock vs Starvation

Het belangrijkste verschil tussen dood en hongersnood is de oorzaak en effect relatie tussen hen; het is de doodslag die de hongersnood veroorzaakt. Een ander interessant verschil tussen dodelijke en hongersnood is dat de noodlot een probleem is, terwijl de hongersnood soms kan helpen om uit een impasse te komen. In de computerwereld zal er bij het schrijven van een computerprogramma meer dan één proces / draad zijn die tegelijkertijd zal lopen om de vereiste service aan het programma te vervullen. Daarom, om een ​​eerlijk systeem te hebben, moet de programmeur ervoor zorgen dat alle processen / draden voldoende toegang krijgen tot de bronnen die ze nodig hebben. Zo niet, dan zal er een deadlock zijn, en het zal later tot een hongersnood leiden. Over het algemeen bevat een eerlijk systeem geen deadlocks of honger. Deadlocks en honger zullen voornamelijk optreden als veel treden concurreren voor beperkte middelen.

Wat is Deadlock?

Een deadlock is een voorwaarde die optreedt wanneer twee draden of processen wachten op elkaar om de taak te voltooien. Ze zullen alleen ophangen maar nooit stoppen of hun taak afronden. In de informatica kunnen deadlocks overal worden gezien. In een transactiedatabase, wanneer twee elk in zijn eigen transactie bijwerken, dezelfde twee rijen van informatie, maar in tegenovergestelde volgorde, wordt een impasse veroorzaakt. Bij gelijktijdige programmering kan een deadlock optreden wanneer twee concurrerende acties wachten op elkaar om vooruit te gaan. In telecommunicatiesystemen kan een deadlock gebeuren door verlies of corruptie van signalen.

Op dit moment is deadlock een van de belangrijkste problemen in multiprocessing systemen en parallelle computing. Als oplossing is een vergrendelingssysteem genaamd processynchronisatie geïmplementeerd voor zowel software als hardware.

Wat is honger?

Uit het woordenboek van de medische wetenschap is honger het gevolg van ernstig of totaal gebrek aan voedingsstoffen die nodig zijn voor het behoud van het leven. Ook in de computerwetenschap is honger een probleem dat wordt geconstateerd wanneer meerdere threads of processen wachten op dezelfde bron, die een deadlock wordt genoemd .

Om uit een deadlock te komen, moet een van de processen of draden zich opgeven of terugdraaien, zodat de andere draad of het proces de bron kan gebruiken. Als dit voortdurend gebeurt en hetzelfde proces of draad elke keer moet opgeven of terugrollen terwijl andere processen of draden worden gebruikt om de bron te gebruiken, dan zal het geselecteerde proces of de draad, die teruggerold wordt, een situatie met de naam hongersnood ondergaan.Daarom, om uit een impasse te komen, is hongersnood een van de oplossingen . Daarom wordt soms een hongersnood genoemd. Wanneer er veel hoge prioriteitsprocessen of draden zijn, zal een lager prioriteitsproces of draad altijd in een impasse hangen. Er kunnen veel hongersnoten zijn, zoals

honger op de bronnen en op CPU honger. Er zijn veel voorkomende voorbeelden van hongersnood. Ze zijn het probleem van de lezerschrijvers en de filosofen van het dineren, die beroemdder is. Er zijn vijf stille filosofen die bij een ronde tafel zitten met spaghetti-schalen. Vorken worden geplaatst tussen elk paar aangrenzende filosofen. Elke filosoof moet afwisselend denken en eten. Echter, een filosoof kan alleen spaghetti eten als hij zowel links als rechts vorken heeft. De 'Eetfilosofen'

Wat is het verschil tussen Deadlock en Honger?

• Proces:

• In de deadlock wachten de twee draden of processen op elkaar en beide gaan niet vooruit.

• Bij hongersnood, wanneer twee of meer draden of processen wachten op dezelfde bron, zal men terug rollen en de anderen de bron eerst gebruiken en daarna zal de hongerende draad of het proces opnieuw proberen. Daarom zullen alle draden of processen in ieder geval doorgaan.

• Rolling Back:

• In een deadlock zullen beide hoge prioriteitsdraden / -processen, evenals lage prioriteitsdraden / -processen, oneindig wachten op elkaar. Het stopt nooit.

• Maar in een hongersnood zullen de voorrangen wachten of terugrollen, maar hoge prioriteiten zullen doorgaan.

• Wachten of vergrendelen:

• Een deadlock is een circulaire wacht.

• Een hongersnood is een soort levenslot en helpt soms om uit een impasse te komen.

• Dodepunt en honger:

• Een dodelijke oorzaak leidt tot hongersnood, maar hongersnood veroorzaakt geen impasse.

• Oorzaken:

• Er zal een deadlock optreden als gevolg van wederzijdse uitsluiting, vasthouden en wachten, geen preemptie of circulaire wachten.

• Hongersnood komt voor als gevolg van schaarste aan middelen, onbeheerd beheer van de middelen en procesprioriteiten.

Samenvatting:

Deadlock vs Starvation

Deadlock en hongersnood zijn enkele van de problemen die optreden als gevolg van data races en raceomstandigheden die zich voordoen tijdens de programmering en de implementatie van hardware. In een deadlock zullen twee draden oneindig wachten op elkaar zonder te worden uitgevoerd, terwijl in een hongersnood een draad zal terugrollen en de andere draad laten gebruiken om de bronnen te gebruiken. Een deadlock zal hongersnood veroorzaken, terwijl de hongersnood een draad zal helpen om uit een deadlock te komen.

Images Courtesy:

Computer van Steve Jurvetson uit Menlo Park, Verenigde Staten (CC BY 2. 0)

  1. De "Dining Philosophers" door Bdesham (CC BY-SA 3. 0)