Soovitatav, 2020

Toimetaja Valik

Erinevus ummikseisu ja nälja vahel operatsioonisüsteemis

Deadlock ja nälg mõlemad on tingimused, kus ressursse taotlevad protsessid on pikka aega edasi lükatud. Kuigi ummikseis ja nälg mõlemad erinevad paljudes aspektides. Deadlock on tingimus, mille puhul ükski protsess ei käivitu, ja igaüks ootab teiste protsesside poolt omandatud ressursse. Teisest küljest kasutab näljahäda puhul kõrge prioriteediga protsess ressursse, mis takistavad madala prioriteediga protsessi ressursside omandamisel. Arutagem veel mõningaid erinevusi ummikseisu ja nälja vahel allpool toodud võrdluskaardi abil.

Võrdluskaart

Võrdluse alusDeadlockNälg
PõhilineDeadlock on koht, kus ükski protsess ei tule ja blokeerub.Nälg on see, kui madala prioriteediga protsessid blokeeritakse ja kõrge prioriteediga protsess jätkub.
Tekkiv seisundVastastikuse tõrjutuse esinemine, Ootele ja oota, No preemption ja Circular wait samaaegselt.Prioriteetide jõustamine, kontrollimatu ressursside haldamine.
Muu nimiRingikujuline ootamine.Lifelock.
RessursidUmmikseisus blokeerivad teised protsessid nõutud ressursse.Nälgimisel kasutavad nõutavad ressursid pidevalt kõrgete prioriteetide protsessides.
ÄrahoidmineVastastikuse tõrjutuse vältimine, hoidmine ja ootamine ning ringikujuline ootamine ja eelrahastamine.Vananemine.

Deadlocki mõiste

Deadlock on olukord, kus mitu protsessorit CPU-s konkureerivad CPU piires olemasolevate ressursside piiratud arvu eest. Siin on igal protsessil ressurss ja oodata, et omandada mõni muu protsess. Kõik protsessid ootavad ringluses ressursse. Allpool olevas pildis on näha, et protsess P1 on omandanud ressursi R2, mida protsess P2 nõuab ja protsess P1 nõuab ressurssi R1, mis on taas R2 poolt. Seega moodustavad protsessi P1 ja P2 ummikseisu.

Deadlock on levinud probleem mitme töötlusega operatsioonisüsteemides, hajutatud süsteemides ja paralleelsetes arvutisüsteemides. Seal on neli tingimust, mis peavad toimuma samaaegselt, et tõkestada ummikseisu, mis on vastastikune tõrjutus, hoidke ja ootab, ei ole eeltingimust ja ringikujulist ootust.

  • Vastastikune tõrjutus: ainult üks protsess korraga võib ressurssi kasutada, kui mõni teine ​​protsess nõuab sama ressurssi, ta peab ootama, kuni protsess ressurssi vabastab.
  • Hoia ja oota: Protsess peab hoidma ressurssi ja ootama, et omandada mõni muu protsess, mida omab mõni muu protsess.
  • No Preemption: Ressursside hoidmise protsessi ei saa eelistada. Ressurssi hoidev protsess peab selle ülesande täitmisel vabatahtlikult vabastama.
  • Ringikujuline ootamine: protsess peab ootama ressursse ümmargusel viisil. Oletame, et meil on kolm protsessi {P0, P1, P2}. P0 peab ootama P1 valduses olevat ressurssi; P1 peab ootama protsessi P2 hallatava ressursi omandamist ja P2 peab ootama P0 poolt hallatava protsessi omandamist.

Kuigi on olemas rakendusi, mis suudavad tuvastada programme, mis võivad ummikseisu saada. Kuid operatsioonisüsteem ei vastuta ummikute ärahoidmise eest. Programmeerijate ülesanne on luua ummikseisu tasuta programme. Seda saab teha vältides ülalnimetatud tingimusi, mis on vajalikud ummikseisu tekkeks

Nälja määratlus

Nälga võib määratleda kui siis, kui teised protsessid on pidevalt kasutanud ressursi ja ressursi taotlust, siis taotlev protsess seisab nälga. Näljas ootab protsess, mis on valmis täitmiseks, et protsessor eraldaks ressursse. Kuid protsess peab ootamatult ootama, kuna teised protsessid blokeerivad nõutavad ressursid pidevalt.

Nälgimise probleem esineb tavaliselt prioriteetide planeerimise algoritmis . Prioriteetide planeerimise algoritmis eraldatakse kõrgema prioriteediga protsess alati ressursi, takistades madalama prioriteediga protsessi taotletud ressursi saamist.

Vananemine võib lahendada nälga probleemi. Vananemine suurendab järk-järgult selle protsessi prioriteeti, mis on ressursside jaoks pikka aega oodanud. Vananemine takistab madala prioriteediga protsessi ootamatult ressursside jaoks.

Peamised erinevused ummiku ja nälja vahel operatsioonisüsteemis

  1. Ummikseisus ei käivitu ükski protsess protsessist, iga protsess blokeerub, oodates teise protsessi poolt omandatud ressursse. Teisest küljest on nälga seisund, mille puhul kõrgema prioriteediga protsessidel on lubatud ressursse pidevalt omandada, takistades madala prioriteediga protsesside omandamist ressurssidest, mille tulemuseks on madala prioriteediga protsesside piiramatu blokeerimine.
  2. Deadlock tekib siis, kui samaaegselt esineb neli tingimust Vastastikune väljaarvamine, Ootele ja oota, No preemption ja Circular wait . Kuid nälga tekib siis, kui ressursside eraldamisel on rakendatud protsessi prioriteete või kui süsteemis on kontrollimatu ressursside haldamine.
  3. Deadlocki nimetatakse sageli nimega ringikujuline ootamine, kusjuures nälga nimetatakse elavaks lukuks .
  4. Deadlockis blokeerivad protsessid ressursid, samas kui nälgides kasutavad protsessid pidevalt esmatähtsate protsessidega.
  5. Deadlocki saab takistada selliste tingimuste vältimine nagu vastastikune tõrjutus, ootele ja oota ning ringikujuline ootamine ja lubades eelistada protsesse, mis hoiavad ressursse pikka aega. Teisest küljest võib nälga vältida vananemisega .

Järeldus:

Nii Deadlock kui ka nälg viivad protsessi täitmist selle blokeerimisega. Ühelt poolt, kus ummikseis võib põhjustada protsesside nälga ja teisest küljest võib nälg saada protsessid ummikseisust välja.

Top