Anbefalet, 2024

Redaktørens Valg

Forskel mellem dødgang og sult i OS

Deadlock og Sultning begge er de betingelser, hvor de processer, der anmoder om en ressource, er blevet forsinket i lang tid. Selvom dræbte og sult begge er forskellige fra hinanden i mange aspekter. Deadlock er en betingelse, hvor ingen proces fortsætter til udførelse, og hver venter på ressourcer, der er erhvervet af de andre processer. På de andre hænder, i sult, proces med højt prioriterede mål bruger de ressourcer, der forhindrer lav prioriteret proces, til at erhverve ressourcerne. Lad os diskutere nogle flere forskelle mellem dødgang og sult ved hjælp af sammenligningsdiagrammet vist nedenfor.

Sammenligningstabel

Grundlag for sammenligningdeadlockSult
GrundlæggendeDeadlock er, hvor ingen proces fortsætter, og bliver blokeret.Sultning er hvor processer med lav prioritet bliver blokeret, og processen med høj prioritet går videre.
Opstår tilstandForekomsten af ​​gensidig udelukkelse, hold og vent, ingen præfusion og cirkulær venter samtidig.Håndhævelse af prioriteter, ukontrolleret ressourceforvaltning.
Andet navnCirkulære ventetid.LifeLock.
RessourcerI døgnblokke blokeres de ønskede ressourcer af de øvrige processer.I sult er de ønskede ressourcer løbende brugt af højprioriterede processer.
ForebyggelseUndgå gensidig udelukkelse, hold og vent, og cirkulær vente og tillade forløsning.Aging.

Definition af Deadlock

Deadlock er en situation, hvor de mange processer i CPU konkurrerer om det endelige antal ressourcer, der er til rådighed inden for CPU'en. Her har hver proces en ressource og venter på at erhverve en ressource, der afholdes af en anden proces. Alle processer venter på ressourcer på en cirkulær måde. I billedet nedenfor kan du se, at Process P1 har erhvervet ressource R2, der bliver anmodet om af proces P2 og Process P1, anmoder om ressource R1, som igen holdes af R2. Så processen P1 og P2 danner en deadlock.

Deadlock er et fælles problem i multiprocessing operativsystemer, distribuerede systemer, og også i parallelle computersystemer. Der er fire betingelser, der skal opstå samtidig for at øge tilstanden af ​​dødlås, som er gensidig udelukkelse, hold og venter, ingen præfusion, og cirkulær vente.

  • Gensidig udelukkelse: Kun én proces ad gangen kan bruge en ressource, hvis anden proces anmoder om den samme ressource, den skal vente til processen ved hjælp af ressource frigiver den.
  • Hold og vent: En proces skal indeholde en ressource og venter på at erhverve en anden ressource, der afholdes af en anden proces.
  • Ingen indrømmelse: Processen med ressourcerne kan ikke foregå. Processen, der holder ressourcen, skal frigive ressourcen frivilligt, når den har afsluttet sin opgave.
  • Cirkulær ventetid: Processen skal vente på ressourcer på en cirkulær måde. Antag at vi har tre processer {P0, P1, P2}. P0'en skal vente på den ressource, der holdes af P1; P1 skal vente med at erhverve den ressource, der er indeholdt i proces P2, og P2 skal vente på at erhverve processen i P0.

Selvom der er nogle programmer, der kan opdage de programmer, der kan blive låst. Men operativsystemet er aldrig ansvarligt for at forhindre deadlocks. Det er programmers ansvar at designe gratis programmer. Det kan gøres ved at undgå de ovennævnte betingelser, der er nødvendige for dødbringende forekomst

Definition af sult

Sultning kan defineres som, når en procesanmodning om en ressource og den ressource er blevet brugt kontinuerligt af de andre processer, så den anmodende proces står over for sult. I sult, venter en proces klar til at udføre, at CPU tildeler ressourcen. Men processen skal vente på ubestemt tid, da de andre processer kontinuerligt blokerer de ønskede ressourcer.

Problemet med hungersnød forekommer generelt i prioriteret planlægningsalgoritme . I prioriteret planlægningsalgoritme tildeles processen med højere prioritet altid ressourcen, hvilket forhindrer den lavere prioriterede proces fra at få den ønskede ressource.

Aldring kan løse problemet med sult. Aldring øges gradvist prioriteten af ​​den proces, der har ventet længe efter ressourcerne. Aldring forhindrer en proces med lav prioritet til at vente på ubestemt tid for en ressource.

Nøgleforskelle mellem dødgang og sult i OS

  1. I en deadlock, ingen af ​​processerne fortsætter til udførelse, hver proces bliver blokeret venter på de ressourcer, der erhverves af den anden proces. På den anden side er sult en betingelse, hvor processerne, der har højere prioritet, får lov til at erhverve ressourcerne løbende ved at forhindre, at de lavprioriterede processer erhverver ressourcer, der resulterer i ubestemt blokering af lavprioriterede processer.
  2. Deadlock opstår, når fire betingelser Gensidig udelukkelse, Hold og vent, Ingen forløsning, og cirkulær ventetid opstår samtidigt. Men sult opstår, når procesprioriteterne er blevet håndhævet under tildeling af ressourcer, eller der er ukontrolleret ressourceforvaltning i systemet.
  3. Deadlock kaldes ofte ved navnets cirkulære vente, mens sulten hedder Lived lock .
  4. I Deadlock er ressourcerne blokeret af processen, mens processerne i sult er vedvarende brugt af processerne med høje prioriteter.
  5. Deadlock kan forhindres ved at undgå betingelserne som gensidig udelukkelse, Hold og vent, og cirkulær vente og ved at tillade indfrielsen af ​​de processer, der holder ressourcer i lang tid. På den anden side kan sulten forhindres ved aldring .

Konklusion:

Både Deadlock og Sulten forsinker procesudførelsen ved at blokere den. På den ene side hvor dræbte kan forårsage processer at sulte, og på den anden hånd kan sulten få processerne ud af dødvandet.

Top