Skillnaden mellan dödläge och svält

Innehållsförteckning:

Skillnaden mellan dödläge och svält
Skillnaden mellan dödläge och svält

Video: Skillnaden mellan dödläge och svält

Video: Skillnaden mellan dödläge och svält
Video: What Is the Difference between Social Innovation, Social Entrepreneurship, and Social Enterprise? 2024, Juli
Anonim

Deadlock vs Starvation

Den största skillnaden mellan dödläge och svält är orsaks- och verkansförhållandet 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äge är ett problem medan svält ibland kan hjälpa till att ta sig ur ett dödläge. I datorvärlden, när du skriver ett datorprogram kommer det att finnas mer än en process/tråd som körs samtidigt efter varandra för att uppfylla den nödvändiga tjänsten till programmet. Därför, för att ha ett rättvist system, bör programmeraren måste se till att alla processer/trådar kommer att få eller få tillräckligt med tillgång till resurser som de behöver. Om inte, kommer det att bli 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ödlägen eller svält. Dödläge och svält kommer främst att uppstå när många trådar tävlar om begränsade resurser.

Vad är dödläge?

En dödläge är ett tillstånd som uppstår när två trådar eller processer väntar på att varandra ska slutföra uppgiften. De kommer bara att lägga på men aldrig sluta eller avsluta sin uppgift. Inom datavetenskap kan låsningar ses överallt. I en transaktionsdatabas, när två processer var och en inom sin egen transaktion uppdaterar samma två rader med information men i motsatt ordning, kommer det att orsaka ett dödläge. Vid samtidig programmering kan ett dödläge uppstå när två konkurrerande åtgärder väntar på att varandra ska fortsätta framåt. I telekommunikationssystem kan ett dödläge inträffa på grund av förlust eller korruption av signaler.

För närvarande är dödläge ett av huvudproblemen i multiprocessorsystem och parallell beräkning. Som en lösning implementeras ett låssystem som kallas processsynkronisering för såväl mjukvara som hårdvara.

Skillnaden mellan dödläge och svält
Skillnaden mellan dödläge och svält
Skillnaden mellan dödläge och svält
Skillnaden mellan dödläge och svält

Vad är svält?

Från medicinsk vetenskaps ordbok är svält 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, inom datavetenskap, är svält 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 ur ett dödläge bör en av processerna eller trådarna behöva ge upp eller rulla tillbaka så att den andra tråden eller processen kan använda resursen. Om detta händer kontinuerligt och samma process eller tråd måste ge upp eller rulla tillbaka varje gång samtidigt som andra processer eller trådar får använda resursen, då kommer den valda processen eller tråden som rullades tillbaka att genomgå en situation som kallas svält. Därför, för att ta sig ur ett dödläge, är svält en av lösningarna. Därför kallas svält ibland för ett slags boskap. När det finns många högprioriterade processer eller trådar kommer en process eller tråd med lägre prioritet alltid att svälta i ett dödläge.

Det kan finnas många svält som att svälta på resurser och svälta på CPU. Det finns många vanliga exempel på svält. De är Readers-writers problem och restaurangfilosofernas problem, vilket är mer känt. Det sitter fem tysta filosofer vid ett runt bord med skålar med spagetti. Gafflar placeras mellan varje par av intilliggande filosofer. Varje filosof måste omväxlande tänka och äta. Men en filosof kan bara äta spagetti när han har både vänster och höger gafflar.

Deadlock vs Svält
Deadlock vs Svält
Deadlock vs Svält
Deadlock vs Svält

The Dining Philosophers

Vad är skillnaden mellan Deadlock och Starvation?

Process:

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

• I svält, när två eller flera trådar eller processer väntar på samma resurs, kommer en att rulla tillbaka och låta 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 hur som helst att fortsätta framåt.

Rolling Back:

• I ett dödläge kommer både högprioriterade trådar/processer, såväl som lågprioriterade trådar/processer, att vänta på varandra i det oändliga. Det tar aldrig slut.

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

Väntar eller lås:

• Ett dödläge är en cirkulär väntan.

• En svält är ett slags livlås och hjälper ibland att ta sig ur ett dödläge.

Deadlock and Starvation:

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

Orsaker:

• Ett dödläge kommer att uppstå på grund av ömsesidig uteslutning, håll och vänta, ingen företräde eller cirkulär väntan.

• Svält uppstår på grund av knapphet på resurser, okontrollerad hantering av resurser och processprioriteringar.

Sammanfattning:

Deadlock vs. Svält

Dödläge och svält är några av de problem som uppstår på grund av datarace och tävlingsförhållanden som uppstår under programmering och implementering av hårdvara. I ett dödläge kommer två trådar oändligt att vänta på varandra utan att exekveras medan, i en svält, kommer en tråd att rulla tillbaka 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 ta sig ur ett dödläge.

Rekommenderad: