Verschil tussen impasse en verhongering

Deadlock vs Starvation
 

Het belangrijkste verschil tussen impasse en uithongering is de oorzaak en gevolg-relatie tussen hen; het is een impasse die de hongerdood veroorzaakt. Een ander interessant verschil tussen een impasse en uithongering is dat een impasse een probleem is, terwijl uithongering soms kan helpen om uit een impasse te geraken. In de computerwereld zal er bij het schrijven van een computerprogramma meer dan één proces / thread zijn die tegelijkertijd achtereenvolgens wordt uitgevoerd om de vereiste service aan het programma te vervullen. Om een ​​eerlijk systeem te hebben, zou de programmeur er daarom voor moeten zorgen dat alle processen / threads voldoende toegang krijgen tot bronnen die ze nodig hebben. Zo niet, dan is er een impasse en dit zal later tot uithongering leiden. Over het algemeen bevat een eerlijk systeem geen impasses of verhongering. Safelocken en uithongering zullen vooral optreden wanneer veel threads strijden om beperkte middelen.

Wat is impasse?

Een impasse is een voorwaarde die optreedt wanneer twee threads of processen op elkaar wachten om de taak te voltooien. Ze zullen alleen ophangen, maar nooit stoppen of hun taak beëindigen. In de informatica zijn deadlocks overal te zien. In een transactiedatabase, wanneer twee processen binnen de eigen transactie dezelfde twee rijen met informatie bijwerken, maar in de omgekeerde volgorde, zal dit een impasse veroorzaken. Bij gelijktijdige programmering kan een impasse optreden wanneer twee concurrerende acties op elkaar wachten om verder te gaan. In telecommunicatiesystemen kan een impasse optreden als gevolg van verlies of beschadiging van signalen.

Op dit moment is deadlock een van de grootste problemen bij multiprocessing-systemen en parallel computing. Als een oplossing, een vergrendelingssysteem genoemd proces synchronisatie is geïmplementeerd voor zowel software als hardware.

Wat is honger?

Uit het woordenboek van de medische wetenschap is uithongering het resultaat van ernstig of totaal gebrek aan voedingsstoffen die nodig zijn voor het onderhoud van het leven. Op dezelfde manier is de honger in de informatica een probleem dat wordt aangetroffen wanneer meerdere threads of processen op dezelfde resource wachten, wat een deadlock wordt genoemd.

Om uit een impasse te geraken, moet een van de processen of threads opgeven of terugdraaien zodat de andere thread of het andere proces de resource kan gebruiken. Als dit continu gebeurt en hetzelfde proces of dezelfde thread elke keer moet opgeven of terugdraaien, terwijl andere processen of threads de resource kunnen gebruiken, dan zal het geselecteerde proces of de thread, die is teruggerold, een situatie ondergaan die uithongering wordt genoemd. daarom, om uit een impasse te komen, is uithongering een van de oplossingen. Daarom wordt soms verhongering genoemd een soort van een livelock. Wanneer er veel processen of threads met hoge prioriteit zijn, zal een proces of thread met lagere prioriteit altijd uithongeren in een impasse.

Er kunnen veel hongersnoden zijn zoals uitgehongerd op middelen en honger op CPU. Er zijn veelvoorkomende voorbeelden van uithongering. Het zijn het probleem van de lezersschrijvers en het probleem van de eetfilosofen, dat meer beroemd is. Er zijn vijf stille filosofen aan een ronde tafel met kommen spaghetti. Vorken worden geplaatst tussen elk paar aangrenzende filosofen. Elke filosoof moet afwisselend denken en eten. Een filosoof kan echter alleen spaghetti eten als hij zowel een linker- als een rechtervorken heeft.

De "Dining Philosophers"

Wat is het verschil tussen impasse en hongersnood?

• Werkwijze:

• In een deadlock wachten de twee threads of processen op elkaar en beide gaan niet verder.

• Bij uithongering, wanneer twee of meer threads of processen op dezelfde resource wachten, rolt iemand terug en laat de anderen de resource eerst gebruiken en vervolgens probeert de uitgehongerde thread of het nieuwe proces het opnieuw. Daarom zullen alle threads of processen hoe dan ook doorgaan.

• Terugrollen:

• In een deadlock zullen zowel threads / processen met hoge prioriteit als threads / processen met lage prioriteit oneindig op elkaar wachten. Het stopt nooit.

• Maar bij een hongerdood zullen degenen met lage prioriteit wachten of terugdraaien, maar de eerste prioriteit gaat door.

• Wachten of vergrendelen:

• Een impasse is een circulair wachten.

• Een uithongering is een soort van een levensverhaal en helpt soms om uit een impasse te geraken.

• impasse en honger:

• Een impasse veroorzaakt uithongering, maar uithongering veroorzaakt geen impasse.

• Oorzaken:

• Een impasse zal optreden als gevolg van wederzijdse uitsluiting, wachten en wachten, geen bevoorrechting of circulair wachten.

• Hongeren vindt plaats door schaarste aan middelen, ongecontroleerd beheer van hulpbronnen en procesprioriteiten.

Samenvatting:

Deadlock vs. Starvation

Deadlock en hongersnoden zijn enkele van de problemen die optreden als gevolg van gegevensraces en raceomstandigheden die zich voordoen tijdens het programmeren, evenals het implementeren van hardware. In een impasse wachten twee threads oneindig op elkaar zonder te worden uitgevoerd, terwijl bij een uithongering één thread terugrolt en de andere thread de resources laat gebruiken. Een impasse leidt tot uithongering, terwijl uithongering ertoe zal bijdragen dat een draad uit een impasse raakt.

Afbeeldingen beleefdheid:

  1. Computer door Steve Jurvetson uit Menlo Park, VS. (CC BY 2.0)
  2. De "Dining Philosophers" door Bdesham (CC BY-SA 3.0)