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: #Carnica och #Buckfast: finns det några skillnader? Del 1 2024, December
Anonim

Dödläge mot svält

Huvudskillnaden mellan dödläge och svält är orsak och verkan fö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 komma ut från 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 uppfylla den nödvändiga tjänsten till programmet när du skriver ett datorprogram. Därför bör programmeraren behöva se till att alla processer / trådar får eller får tillräckligt med tillgång till resurser som de behöver för att ha ett rättvist system. Om inte, kommer det att vara ett dödläge, och det kommer att leda till svält senare. I allmänhet innehåller ett rättvist system inga blockeringar eller svält. Blockeringar och svält kommer att uppstå främst när många trådar tävlar om begränsade resurser.

Vad är Deadlock?

Ett dödläge är ett tillstånd som uppstår när två trådar eller processer väntar på varandra för att slutföra uppgiften. De kommer bara att lägga på men aldrig sluta eller slutföra sin uppgift. Inom datavetenskap kan blockeringar 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 inträffa när två konkurrerande åtgärder väntar på varandra för att gå vidare. 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 multiprocessing-system och parallell beräkning. Som en lösning implementeras ett låssystem som kallas processynkronisering för både mjukvara och hårdvara.

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

Vad är svält?

Från ordboken för medicinsk vetenskap ä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, som kallas en dödläge.

För att komma ut 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 kontinuerligt 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änder resursen, kommer den valda processen eller tråden, som rullas tillbaka, att genomgå en situation som kallas svält. Därför är svält en av lösningarna för att komma ur ett dödläge. Därför kallas svält ibland för en slags livmassa. När det finns många högprioriterade processer eller trådar, kommer en process med lägre prioritet eller tråd alltid att svälta i en 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 läsare-författarproblem och matfilosofers problem, vilket är mer känt. Det finns fem tysta filosofer som sitter vid ett runt bord med skålar med spagetti. Gafflar placeras mellan varje par intilliggande filosofer. Varje filosof måste växelvis tänka och äta. En filosof kan dock bara äta spagetti när han har både vänster och höger gaffel.

Dödläge mot svält
Dödläge mot svält

“Dining Philosophers”

Vad är skillnaden mellan dödläge och svält?

• Bearbeta:

• 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, kommer en att rulla tillbaka och låta de andra använda resursen först och nästa kommer den svältande tråden eller processen att försöka igen. Därför kommer alla trådar eller processer på något sätt att gå vidare.

• Rolling Back:

• I ett dödläge väntar både trådar / processer med hög prioritet, liksom trådar / processer med låg prioritet, oändligt på varandra. Det slutar aldrig.

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

• Väntar eller låser:

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

• Svält är en slags livmassa och hjälper ibland att komma ut från ett dödläge.

• Dödläge och svält:

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

• Orsaker:

• Ett dödläge inträffar på grund av ömsesidig uteslutning, väntan, ingen förskott eller cirkulär väntan.

• Svält inträffar på grund av brist på resurser, okontrollerad hantering av resurser och processprioriteringar.

Sammanfattning:

Dödläge mot svält

Dödläge och svält är några av de problem som uppstår på grund av datalopp och rasförhållanden som uppstår under programmering samt implementering av hårdvara. I en dödläge väntar två trådar oändligt på varandra utan att utföra medan en tråd i en svält rullar tillbaka och låter den andra använda resurserna. Ett dödläge kommer att orsaka svält medan svält hjälper en tråd att komma ut från ett dödläge.

Bilder med tillstånd:

  1. Dator av Steve Jurvetson från Menlo Park, USA (CC BY 2.0)
  2. “Dining Philosophers” av Bdesham (CC BY-SA 3.0)

Rekommenderas: