Sammenligningstabel
Grundlag for sammenligning | deadlock | Sult |
---|---|---|
Grundlæggende | Deadlock 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 tilstand | Forekomsten af gensidig udelukkelse, hold og vent, ingen præfusion og cirkulær venter samtidig. | Håndhævelse af prioriteter, ukontrolleret ressourceforvaltning. |
Andet navn | Cirkulære ventetid. | LifeLock. |
Ressourcer | I døgnblokke blokeres de ønskede ressourcer af de øvrige processer. | I sult er de ønskede ressourcer løbende brugt af højprioriterede processer. |
Forebyggelse | Undgå 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.
- 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
- 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.
- 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.
- Deadlock kaldes ofte ved navnets cirkulære vente, mens sulten hedder Lived lock .
- I Deadlock er ressourcerne blokeret af processen, mens processerne i sult er vedvarende brugt af processerne med høje prioriteter.
- 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.