Skillnad mellan dödsfall och svält | Deadlock vs Starvation

Anonim

Dödläge mot svält

Huvudskillnaden mellan dödläge och svält är orsakssambandet mellan dem. Det är dödläge som orsakar svält. En annan intressant skillnad mellan dödläge och svält är att dödläget är ett problem medan svältet ibland kan hjälpa till att komma ut ur ett dödläge. I datorvärlden kommer det att finnas mer än en process / tråd som samtidigt körs efter varandra för att kunna uppfylla den nödvändiga tjänsten till programmet när man skriver ett datorprogram. För att ha ett rättvist system, bör programmeraren därför se till att alla processer / trådar får eller får tillräckligt med tillgång till resurser som de behöver. Om inte, kommer det att finnas ett dödläge, och det kommer att leda till en svält senare. I allmänhet innehåller inte ett rättvist system några dödsfall eller svält. Deadlocks och svält kommer att uppstå huvudsakligen när många tråder konkurrerar om begränsade resurser.

Vad är Deadlock?

Ett dödläge är ett villkor som uppstår när två trådar eller processer väntar på varandra för att slutföra uppgiften . De kommer bara att hänga men sluta aldrig eller slutföra sin uppgift. I datavetenskap kan deadlocks ses överallt. I en transaktionsdatabas, när två processer varje i sin egen transaktionsuppdatering samma två rader av information men i motsatt ordning, kommer det att leda till ett dödläge. Vid samtidig programmering kan ett dödläge inträffa när två konkurrerande åtgärder väntar på varandra för att fortsätta framåt. I telekommunikationssystem kan ett dödläge hända på grund av förlust eller korruption av signaler.

För närvarande är dödläget ett av de största problemen i multiprocessorsystem och parallell databehandling. Som en lösning implementeras ett låsningssystem som kallas processsynkronisering för både programvara och hårdvara.

Vad är svält?

I medicinsk ordbok är hungersyra ett resultat av allvarlig eller total brist på näringsämnen som behövs för att upprätthålla livet. På samma sätt, i datorvetenskap är svält ett problem som uppstår när flera trådar eller processer väntar på samma resurs, som kallas ett dödläge .

För att komma ut ur ett dödläge, måste en av processerna eller tråden ge upp eller rulla tillbaka så att den andra tråden eller processen kan använda resursen. Om det hela tiden händer och samma process eller tråd måste ge upp eller rulla tillbaka varje gång medan andra processer eller trådar används för att använda resursen, kommer den valda processen eller tråden, som rullas tillbaka, att utsättas för svält.Därför för att komma ut ur ett dödläge är svält en av lösningarna . Därför kallas ibland svältet en slags livlock . När det finns många processer eller trådar med hög prioritet, kommer en lägre prioritetsprocess eller tråd alltid att svälta i en dödläge.

Det kan finnas många svält som svälter på resurser och svältande på CPU . Det finns många vanliga exempel på svält. De är problem för läsare och författare och matsalfilosofer, vilket är mer känt. Det finns fem tysta filosofer sitter vid ett runt bord med skålar spaghetti. Gafflar är placerade mellan varje par av angränsande filosofer. Varje filosof måste tänka och äta växelvis. Men en filosof kan bara äta spagetti när han har både vänster och höger gafflar.

The "Dining Philosophers"

Vad är skillnaden mellan Deadlock och svält?

• Process:

• I dödläge väntar de två trådarna eller processerna på varandra och båda går inte framåt.

• I svält, när två eller flera trådar eller processer väntar på samma resurs, rullar man tillbaka och låt de andra använda resursen först och därefter kommer den svältande tråden eller processen att försöka igen. Därför kommer alla trådar eller processer ändå att gå vidare.

• Rulla tillbaka:

• I ett dödläge väntar båda trådlösa trådar / processer, såväl som trådlösa trådar med låg prioritet, oändligt till varandra. Det slutar aldrig.

• Men i en svält kommer lågprioriterade att vänta eller rulla tillbaka, men högprioriterade kommer att fortsätta.

• Vänta eller Lås:

• Ett dödläge är ett cirkulärt väntar.

• En svält är en slags livlock och hjälper ibland till att komma ut ur ett dödläge.

• Dödläge och svält:

• Ett dödläge orsakar svält, men svält ger inte ett dödläge.

• Orsaker:

• Ett dödläge kommer att uppstå på grund av ömsesidigt uteslutande, hålla och vänta, ingen förskott eller cirkulär väntan.

• Svält uppstår på grund av brist på resurser, okontrollerad resursförvaltning och processprioriteringar.

Sammanfattning:

Dödläge mot svält

Dödslock och svält är några av de problem som uppstår på grund av dataöverföringar och rastförhållanden som uppstår under programmering och implementering av hårdvara. I ett dödläge kommer två trådar oändligt vänta på varandra utan att exekvera, medan en tråd kommer att rulla tillbaka i en svält och låta den andra tråden använda resurserna. Ett dödläge kommer att orsaka svält medan svält hjälper en tråd att komma ut ur ett dödläge.

Bilder Courtesy:

  1. Dator av Steve Jurvetson från Menlo Park, USA (CC BY 2. 0)
  2. The "Dining Philosophers" av Bdesham (CC BY-SA 3. 0)