Käyttöjärjestelmä on tärkein tietokoneella toimiva ohjelmisto. Se vastaa tietokoneen muistin ja prosessien hallinnasta sekä laitteiston yksityiskohtien suojaamisesta sitä käyttävistä sovellusohjelmista. Tietokoneen käyttöjärjestelmä varmistaa myös resurssien oikeudenmukaisen kohdentamisen käyttäjille ja ohjelmille sen sijaan, että prosessit jakautuvat tasaisesti. Oikeudenmukainen ajoitusjärjestelmä antaa yhden prosessin käyttää prosessoria, kun taas toinen odottaa jonossa. Seurauksena on, että jokaisella säieellä on riittävä pääsy rajoitettuihin resursseihin, mikä estää kahta yleisintä tilaa, jotka olisivat viivästyttäneet prosessia muuten: umpikuja ja nälkä. Molemmat ovat toisiinsa liittyviä käsitteitä, joissa prosesseilla ei ole pääsyä resursseihin. Tässä artikkelissa tuodaan esiin eräitä keskeisiä kohtia vertaamalla näitä kahta eri rintamilla.
Umpikuja on tila, jossa joukko ketjuja estetään, koska jokainen resurssia hallittava prosessi yrittää käyttää joitain muita resursseja, joita toinen prosessi pitää hallussaan, estäen lopulta järjestelmän oikeudenmukaisen ajoituksen. Umpikujatilanne syntyy, kun seuraavat neljä ehtoa toteutuvat: Keskinäinen poissulkeminen tarkoittaa, että vain yksi prosessi voi käyttää resurssia kerrallaan; Ei ennakkoedellytystä tarkoittaa, että resurssi voidaan vapauttaa vain vapaaehtoisesti resurssia hallussa olevalla prosessilla; Pidä ja odota tarkoittaa prosessia, jolla resursseja pidetään, voi pyytää muiden resurssien hallussa olevia lisäresursseja; Pyöreä odotus tarkoittaa, että kaksi tai useampi prosessi on juuttunut pyöreään ketjuun, joka odottaa kunkin prosessin vapauttavan vastaavat resurssinsa.
Nälkähäiriö on tila, joka syntyy, kun prosessi menee odotusjaksoon määräämättömäksi ajaksi, koska matalan prioriteetin prosessi ei koskaan saa mahdollisuutta päästä resurssiin johtuen jatkuvasta prioriteettiprosessien virrasta, joka käyttää samaa resurssia. Se on resurssienhallintaongelma, koska prosessille evätään pääsy tarvittavaan resurssiin, mikä työntää prosessin määrittelemättömään odotusjaksoon. Se tapahtuu, koska sen tarvitsemaa resurssia ei koskaan allokoida prosessiin, mikä aiheuttaa prosessin nälkää resursseja, tästä myös nimi. Paras tapa välttää nälkää on käyttää ikääntymistekniikkaa, joka kasvattaa vähitellen pitkään odotusaikana olevien prosessien prioriteettia oikeudenmukaisen aikataulutusjärjestelmän varmistamiseksi..
Sekä umpikuja että nälkä ovat toisiinsa liittyviä käsitteitä, jotka estävät oikeudenmukaista järjestelmäaikataulua, jossa prosessit ovat estetty pääsemästä resursseihin. Lukitus, kuten nimestä voi päätellä, viittaa tilaan, jossa joukko ketjuja tai prosesseja on estetty, koska jokainen prosessi odottaa hankkimaan toisen prosessin ylläpitämää resurssia, mikä johtaa umpikujatilanteeseen, jossa ohjelmat lakkaavat toimimasta. Nälänhäiriöitä puolestaan laukaisee umpikuja, joka aiheuttaa prosessin jäädyttämisen, koska matalan prioriteetin prosessille evätään pääsy resurssille, joka on osoitettu korkean prioriteetin prosessille.
Umpikuja tarkoittaa tiettyä tilaa, joka tapahtuu, kun säie tai prosessi menee odotusjaksoon, koska sen pyytämä järjestelmäresurssi on toisen prosessin hallussa, joka puolestaan odottaa toisen prosessin vapauttavan resurssiaan luoden siten umpikujan. Tämän aiheuttaa huono resurssien käyttö. Nälkiintyminen on määrittelemätön lykkäämisedellytys, jossa matalan prioriteetin prosessille evätään pääsy tarvittaviin resursseihin, koska resurssit osoitetaan toiselle korkean prioriteetin prosessille. Se on resurssienhallintaongelma, joka pakottaa järjestelmän varaamaan resursseja vain korkean prioriteetin prosesseihin.
Umpikuja on lopullinen nälkään jäämisen muoto, joka seuraa, kun seuraavat neljä tilaa ilmenevät samanaikaisesti: keskinäinen poissulkeminen, estämättä jättäminen, pidä ja odota ja pyöreä odotus. Umpikujatila esiintyy vain järjestelmissä, joissa kaikki neljä ehtoa ovat totta. Nälkä tapahtuu erilaisten olosuhteiden perusteella, kuten silloin, kun resursseja ei ole tarpeeksi liikkua ja prosessien prioriteetti alkaa vähentyä tai kun prosessit alkavat siirtää resursseja muille prosesseille ilman hallintaa. Jos matalan prioriteetin prosessi vaatii resurssia, joka on varattu korkeimman prioriteetin prosesseille, prosessi nälkää ikuisesti. Nälkiintyminen tapahtuu myös silloin, kun resurssit allokoidaan mielivaltaisesti aiheuttaen prosesseja odottamaan pidemmän ajan.
Nälänhäiriöt voidaan estää käyttämällä asianmukaista aikataulutusalgoritmia prioriteettijonoon, joka tosiasiassa käyttää myös ikääntymistekniikkaa - aikataulutekniikka, joka lisää ikääntymiskerroin kunkin pyynnön prioriteettiin, mikä tarkoittaa, että se lisää odottamattoman alhaisen prioriteetin prosessien prioriteettitasoa. pitkään aikaan. Jos ohjelmille annetaan enemmän resursseja, niiden tulisi välttää jatkuvaa ruuhkia. Jotta järjestelmä ei pääse umpikujaan, prosesseille on evättävä pääsy yhteen tai useampaan resurssiin samalla kun odotetaan toisia ja vain yhdelle prosessille tulisi antaa pääsy resurssiin kerrallaan..
Sekä umpikuja että nälkä ovat samankaltaisia käsitteitä moniprosessoivissa käyttöjärjestelmissä tai hajautetuissa järjestelmissä, jotka aiheuttavat yhden tai useamman ketjun tai prosessin jumittumisen odottaessaan tarvitsemiaan resursseja. Umpikuja on tilanne, joka syntyy, kun yksi tai useampi prosessi pyytää pääsyä samaan resurssiin aiheuttaen prosessin jäädyttämisen, kun taas nälkä johtuu umpikujasta, joka ajaa prosessin loputtomaan lykkääntitilaan, koska prosessit evätvät pääsyn resurssille, joka on erittäin tärkeä prosessi ja täytyy odottaa ikuisesti.