Umpikuja sisään Operating System: Mikä on, kiertokirje (esimerkkejä)
⚡ Älykäs yhteenveto
Käyttöjärjestelmässä lukkiutuminen tapahtuu, kun joukko prosesseja estetään, koska jokainen niistä pitää hallussaan resurssia ja odottaa toista, jota toinen prosessi pitää hallussaan. Tämä luo kehämäisen ketjun, jossa mikään prosessi ei voi edetä.
Mikä on umpikuja?
umpikuja on tilanne, joka syntyy käyttöjärjestelmän kun prosessi siirtyy odotustilaan, koska toinen odottava prosessi pitää hallussaan vaadittua resurssia. Lukkiutuminen on yleinen ongelma moniajoprosessoinnissa, jossa useat prosessit jakavat tietyn tyyppisen toisensa poissulkevan resurssin, joka tunnetaan nimellä pehmeä lukko tai ohjelmistolukko.
Kun lukkiutumistilanne tapahtuu, mikään prosessi ei voi jatkua, joten kyseinen työ pysähtyy, kunnes käyttöjärjestelmä puuttuu asiaan.
Esimerkki umpikujasta
- Todellinen esimerkki olisi liikenne, joka kulkee vain yhteen suuntaan.
- Tässä siltaa pidetään resurssina.
- Joten kun umpikuja tapahtuu, se voidaan ratkaista, jos yksi auto peruuttaa (resurssien varaaminen ja peruuttaminen).
- Useita autoja voidaan joutua peruuttamaan, jos lukkiutumista tapahtuu.
- Joten nälkäkuolema on mahdollinen.
Esimerkki umpikujasta
Mikä on Circular odottaa?
Yksi prosessi odottaa toisen prosessin hallussa olevaa resurssia, joka puolestaan odottaa kolmannen prosessin hallussa olevaa resurssia ja niin edelleen. Tämä jatkuu, kunnes viimeinen prosessi odottaa ensimmäisen prosessin hallussa olevaa resurssia. Tämä luo ympyränmuotoisen ketjun.
Esimerkiksi prosessille A allokoidaan resurssi B, kun se pyytää resurssia A. Samalla tavalla prosessille B allokoidaan resurssi A, kun se pyytää resurssia B. Tämä luo ympyränmuotoisen odotussilmukan.
Esimerkki pyöreästä odotuksesta
Esimerkiksi tietokoneessa on kolme USB-asemaa ja kolme prosessia. Jokaisella kolmesta prosessista on yksi USB-asema. Joten kun jokainen prosessi pyytää toista asemaa, kolme prosessia ajautuvat umpikujaan, koska jokainen odottaa USB-aseman vapautumista sen ollessa vielä käytössä. Tämä johtaa ympyränmuotoiseen ketjuun.
Esimerkki pyöreästä odotuksesta
Lukkiutuman tunnistus käyttöjärjestelmässä
Resurssien ajoitus voi havaita lukkiutumistilanteen. Resurssien ajoitus auttaa käyttöjärjestelmää pitämään track kaikista eri prosesseille allokoiduista resursseista. Kun lukkiutumistilanne havaitaan, se voidaan ratkaista varaamalla resursseja, peruuttamalla prosessia tai lopettamalla yksi tai useampi lukkiutunut prosessi.
Lukkiutuman esto käyttöjärjestelmässä
On tärkeää estää lukkiutuminen ennen sen syntymistä. Järjestelmä tarkistaa jokaisen tapahtuman ennen sen suorittamista varmistaakseen, ettei se johda lukkiutumiseen. Edes pientä operaatiota, joka voisi aiheuttaa lukkiutumisen tulevaisuudessa, ei koskaan sallita suorittaa.
Lukkiutumisen estäminen on joukko menetelmiä, joilla varmistetaan, ettei ainakin yksi neljästä välttämättömästä ehdosta voi täyttyä.
Ei ennakkoluuloja
Resurssin voi vapauttaa vain sitä hallussaan pitävä prosessi vapaaehtoisesti sen jälkeen, kun prosessi on suorittanut tehtävänsä.
- Jos prosessi, jolla on resursseja hallussaan, pyytää toista resurssia, jota ei voida välittömästi allokoida sille, kaikki sen resurssit vapautetaan.
- Varatut resurssit lisätään niiden resurssien luetteloon, joita prosessi odottaa.
- Prosessi käynnistetään uudelleen vasta, kun se voi saada takaisin vanhat resurssinsa sekä pyytämänsä uudet.
Yhteinen poissulkeminen
Mutual Exclusion on Mutual Exclusionin täydellinen muoto. Se on erityinen binäärimuoto. viestittää jota käytetään jaetun resurssin käytön hallintaan. Se sisältää prioriteetin periytymismekanismin, joka välttää pitkittyneet prioriteetin inversio-ongelmat ja pitää korkeamman prioriteetin tehtävät estettyinä mahdollisimman lyhyen aikaa.
Jaetut resurssit, kuten vain luku -tiedostot, eivät koskaan johda umpikujaan, mutta resurssit, kuten tulostimet ja nauha-asemat, tarvitsevat yhden prosessin yksinomaisen käyttöoikeuden.
Pidä ja odota
Tässä tilassa prosessit on pysäytettävä pitämästä hallussaan yhtä tai useampaa resurssia samalla, kun ne odottavat yhtä tai useampaa muuta resurssia.
Pyöreä odotus
Tämä menetelmä edellyttää kaikkien resurssityyppien täydellistä järjestystä. Ympyräodotuksen estäminen edellyttää myös, että jokainen prosessi pyytää resursseja nousevassa luettelojärjestyksessä.
Umpitilanteen välttäminen Algorithms
On parempi välttää lukkiutumista kuin ryhtyä toimiin lukkiutumisen jälkeen. Välttäminen tarvitsee lisätietoja, kuten miten resursseja käytetään. Lukkiutumisen välttäminen on hyödyllinen malli, jossa jokainen prosessi ilmoittaa tarvitsemansa resurssien enimmäismäärän kutakin tyyppiä.
Välttäminen Algorithms
Lukkiutumisen välttämisalgoritmi arvioi resurssien allokointitilan dynaamisesti, jotta kehämäistä odotustilannetta ei voi koskaan syntyä.
Yksittäisen resurssityypin esiintymä:
- Käytä resurssien allokointikaaviota.
- Graafissa oleva sykli on välttämätön ja riittävä umpikujaan johtamiselle.
Useille resurssityypin esiintymille:
- Sykli on välttämätön, mutta ei riittävä lukkiutumiseen.
- Käytä Pankkiirin algoritmi.
Ero nälkään ja umpikujaan
Tässä on joitakin tärkeitä eroja umpikujan ja nälänhädän välillä:
| umpikuja | nälkiintyminen |
|---|---|
| Lukkiutumistilanne syntyy, kun jokin prosesseista estyy. | Nälkä on tilanne, jossa kaikki matalan prioriteetin prosessit estetään, kun taas korkean prioriteetin prosessit suoritetaan. |
| Umpikuja on ääretön prosessi. | Nälkäkuolema on pitkä odotus, mutta ei loputon prosessi. |
| Jokaisessa umpikujassa on aina nälkäkuolema. | Jokainen nälkäkuolema ei välttämättä johda umpikujaan. |
| Lukkiutuminen tapahtuu keskinäisen poissulkemisen, odotustilan, etuoikeuden puuttumisen ja kehämäisen odotuksen samanaikaisen esiintymisen vuoksi. | Se tapahtuu hallitsemattoman priorisoinnin ja huonon resurssienhallinnan vuoksi. |
Deadlockin edut
Tässä ovat lukkiutumisten käsittelymenetelmän käytön edut:
- Tämä tilanne toimii hyvin prosesseille, jotka suorittavat yhden aktiviteettipurskeen.
- Lukkiutumiseen ei tarvita ennakko-oikeutta.
- Se on kätevä menetelmä, kun sitä sovelletaan resursseihin, joiden tila voidaan tallentaa ja palauttaa helposti.
- Se on mahdollista valvoa käännösaikaisten tarkistusten avulla.
- Se ei vaadi ajonaikaista laskentaa, koska ongelma on ratkaistu järjestelmän suunnittelussa.
Deadlockin haitat
Tässä ovat lukkiutumisten käsittelymenetelmän haitat:
- Se viivästyttää prosessin käynnistymistä.
- Prosessien on tiedettävä tulevat resurssitarpeensa etukäteen.
- Se ennakoi useammin kuin on tarpeen.
- Se estää lisäresurssipyynnöt.
- Sillä on luontaisia ennenosto-oikeudellisia tappioita.



