Deadlock ja Starvation käyttöjärjestelmän käyttöjärjestelmässä
Käyttöjärjestelmä on kaikkein perustavanlaatuinen ohjelmisto, joka toimii tietokoneella. Se vastaa tietokoneen muistin ja prosessien hallinnasta sekä suojaa laitteiston yksityiskohtia sovellusohjelmilta sen avulla. Tietokoneen käyttöjärjestelmä takaa myös oikeudenmukaisen resurssien kohdentamisen käyttäjille ja ohjelmille vastakohtana prosessien tasapuoliselle jakautumiselle. Oikea aikataulutusjärjestelmä sallii yhden prosessin käyttää CPU, kun taas toinen odottaa jonossa. Tämän seurauksena jokainen lanka saa riittävän pääsyn rajoitettuihin resursseihin, jotka estävät kaksi yleisintä ehtoa, jotka olisivat viivästyttäneet prosessia muutoin: Deadlock ja Starvation. Molemmat ovat niihin liittyviä käsitteitä, joissa prosesseilla ei ole pääsyä resursseihin. Tässä artikkelissa korostetaan joitain keskeisiä kohtia, jotka vertaavat näitä kahta eri rintamia.
Mikä on Deadlock?
Lukitus on ehto, jossa ketjujen lukitus on estetty, koska jokainen prosessi, jolla on resurssi, yrittää käyttää joitakin muita resursseja, joita toinen prosessi pitää hallussaan lopulta estääkseen oikeudenmukaisen järjestelmän ajoituksen. Jatkuva tilanne syntyy, kun seuraavat neljä ehtoa ovat totta: Keskinäinen syrjäytyminen tarkoittaa, että vain yksi prosessi voi käyttää resurssia kerrallaan; Ei esiasennusedellytystä, voimavaroja voidaan vapauttaa vapaaehtoisesti vain resurssiprosessilla. Pidä ja odota tarkoittaa prosessi, jolla resurssit voivat pyytää muiden prosessien hallussa olevia lisäresursseja; Ympyrän odotus tarkoittaa, että kaksi tai useampia prosesseja on juuttunut pyöreään ketjuun odottamalla jokaista prosessia vapauttamaan omat resurssit.
Mikä on surua?
Nälkä on ehto, joka syntyy, kun prosessi menee odottamattomaksi ajaksi, koska matalan prioriteetin prosessi ei koskaan saa mahdollisuutta käyttää resurssia, koska samaa resurssia käyttävät korkean prioriteetin prosessit jatkuvat. Se on resurssienhallintaa koskeva ongelma, koska prosessista kielletään pääsy resursseihin, joita se tarvitsee, jolloin prosessia siirretään määrittelemättömäksi odotusaikaksi. Sitä tapahtuu, koska sen tarvitsemaa resurssia ei koskaan kohdenneta prosessiin, joka aiheuttaa prosessin nälänhädän resursseista, joten nimeä. Paras keino välttää nälänhätä on käyttää ikääntymistekniikkaa, joka vähitellen lisää pitkän aikavälin odotusjaksojen prosessien etuoikeutta oikeudenmukaisen aikataulujärjestelmän varmistamiseksi.
Ero kuolleen ja tylsän OS: n välillä
Sekä umpikujainen että nälkä ovat niihin liittyviä käsitteitä, jotka estävät oikeudenmukaisen järjestelmän ajoituksen, jossa prosessit estetään pääsemästä resursseihin. Pysäytysluku, kuten nimestä käy ilmi, viittaa tilaan, jossa joukko kierteitä tai prosesseja on estetty, koska jokainen prosessi odottaa hankkivan resurssia, jota toinen prosessi pitää hallussa, mikä johtaa lukkiutumistilanteeseen, jossa ohjelmat lakkaavat toimimasta. Nälänhädän toisaalta laukaisee umpikuja, joka aiheuttaa prosessin jäädyttämisen, koska alhaisen prioriteetin prosessista kielletään pääsy resurssille, joka on kohdistettu korkean prioriteetin prosessiin.
Umpikujaan viitataan tiettyyn ehtoon, joka tapahtuu, kun lanka tai prosessi menee odotusaikaan, koska sen pyytämä järjestelmäresurssi on toisen prosessin ylläpitämässä, mikä puolestaan odottaa toista prosessia vapauttamaan resurssinsä ja luoden näin umpikujaan. Tämä johtuu huonosta resurssien käytöstä. Nälkä on epämääräinen lykkäys, jossa pienen etupainotteisen prosessin estetään pääsy resursseihin, koska resurssit kohdennetaan toiseen korkean prioriteetin prosessiin. Se on resurssien hallintaongelma, joka pakottaa järjestelmän jakamaan resursseja vain korkean prioriteetin prosesseihin.
Deadlock on ääliöiden lopullinen muoto, joka syntyy, kun seuraavat neljä ehtoa esiintyvät samanaikaisesti: Keskinäinen syrjäytyminen, ei ennaltaehkäisyä, pidä ja odottaa ja ympyrä odottaa. Pysähtymistila esiintyy vain järjestelmissä, joissa kaikki neljä ehtoa pidetään totta.Nälkää esiintyy erilaisissa olosuhteissa, kuten silloin, kun resursseja ei ole tarpeeksi, ja prosessien etusijalla alkaa laskea tai kun prosessit alkavat resurssien luovuttamisen muihin prosesseihin ilman valvontaa. Jos alhaisen prioriteetin prosessi vaatii resurssia, joka on varattu korkeimpien prioriteettien prosesseihin, prosessi nälkää ikuisesti. Samanaikainen kuoleminen tapahtuu myös silloin, kun resurssit kohdennetaan mielivaltaisesti, jolloin prosessit odottavat pitempää aikaa.
Vanhenemista voidaan estää käyttämällä oikeaa aikataulutusalgoritmia, jossa on prioriteettiluokka, joka tosiasiassa käyttää myös vanhenemistekniikkaa - aikataulutekniikkaa, joka lisää ikääntymiskertoimen kunkin pyynnön prioriteettia kohti, mikä merkitsee sitä, että se nostaa ensisijaisten prioriteettien prosessit, jotka ovat odottaneet pitkään aikaan. Lisäksi resurssien lisääminen ohjelmiin olisi vältettävä resurssien jatkuvaa ruuhkautumista. Jotta järjestelmä ei pääse umpikujaan, prosesseille on evättävä pääsy yhteen tai useampaan resurssiin samanaikaisesti odotettaessa toisia, ja vain yhden prosessin pitäisi saada käyttää resurssia kerrallaan.
Deadlock vs. Starvation: vertailukuvio
Yhteenveto Deadlock VS. nälkiintyminen
Sekä umpikujainen että nälkä ovat samankaltaisia käsitteitä moniprosessointijärjestelmissä tai hajautetuissa järjestelmissä, jotka aiheuttavat yhden tai useamman kierteen tai prosessin jumissa odottamassa tarvitsemiaan resursseja. Pysähdyslukko on tilanne, joka syntyy, kun yksi tai useampi prosessi pyytää pääsyä samaan resurssiin, mikä aiheuttaa prosessin jäädyttämisen, kun taas nälkään johtuu umpikuja, joka työntää prosessin pois määrittelemättömäksi lykättäväksi tilaksi, koska prosessit eivät pääse käyttämään tietyn resurssin korkean prioriteetin prosessi ja tarve odottaa ikuisesti.