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.
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 huvudproblemen i multiprocesseringssystem och parallell databehandling. Som en lösning kallas ett låsningssystem bearbeta synkronisering är implementerad för både programvara och hårdvara.
Från 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 datavetenskap är hungersnöd ett problem som uppstår när flera trådar eller processer väntar på samma resurs, vilket 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 en svält som kallas 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 därför ibland svält 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älta 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.
"Dining Philosophers"
• 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åter 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.
• I ett dödläge väntar båda trådar / processer med hög prioritet, liksom trådar / processer 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.
• Ett dödläge är en cirkulär väntan.
• En svält är en slags livlock och hjälper ibland till att komma ut ur ett dödläge.
• Ett dödläge orsakar svält, men svält ger inte ett dödläge.
• 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:
Deadlock och svält är några av de problem som uppstår på grund av data raser och racerförhållanden som uppstår under programmering samt 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 Hälsovård: