Umpikuja sisään Operating System: Mikä on, kiertokirje (esimerkkejä)

Mikä on umpikuja?

umpikuja on tilanne, joka tapahtuu käyttöjärjestelmässä, kun mikä tahansa prosessi siirtyy odotustilaan, koska toinen odotusprosessi pitää sisällään vaaditun resurssin. Lukitus on yleinen ongelma monikäsittelyssä, jossa useat prosessit jakavat tietyn tyyppisen toisensa poissulkevan resurssin, joka tunnetaan pehmeänä lukituksena tai ohjelmistona.

Esimerkki umpikujasta

  • Tosimaailman esimerkki olisi liikenne, joka kulkee vain yhteen suuntaan.
  • Tässä siltaa pidetään resurssina.
  • Joten, kun lukkiutumista tapahtuu, se voidaan helposti ratkaista, jos yksi auto peruuttaa (Ennalta resurssit ja palautus).
  • Useita autoja voidaan joutua peruuttamaan, jos lukkiutumista tapahtuu.
  • Nälkä on siis mahdollista.
Esimerkki umpikujasta
Esimerkki umpikujasta

Mikä on Circular odottaa?

Yksi prosessi odottaa resurssia, jota toinen prosessi pitää hallussaan, joka myös odottaa kolmannen prosessin hallussa olevaa resurssia jne. Tämä jatkuu, kunnes viimeinen prosessi odottaa ensimmäisen prosessin hallussa olevaa resurssia. Tämä luo pyöreän ketjun.

Esimerkiksi prosessille A allokoidaan resurssi B, koska se pyytää resurssia A. Samalla tavalla prosessille B allokoidaan resurssi A ja se pyytää resurssia B. Tämä luo pyöreän odotussilmukan.

Esimerkki pyöreästä odotuksesta

Esimerkiksi tietokoneessa on kolme USB-asemaa ja kolme prosessia. Jokainen kolmesta prosessista, joka pystyy pitämään yhden USB-asemista. Joten kun jokainen prosessi pyytää toista asemaa, kolme prosessia joutuvat umpikujaan, koska jokainen prosessi odottaa USB-aseman vapautumista, joka on tällä hetkellä käytössä. Tämä johtaa pyöreään ketjuun.

Esimerkki pyöreästä odotuksesta

Esimerkki pyöreästä odotuksesta

Lukkiutuman tunnistus käyttöjärjestelmässä

Resurssien ajoittaja voi havaita lukkiutumisen. Resurssien ajoitus auttaa käyttöjärjestelmää pitämään kirjaa kaikista resursseista, jotka on varattu eri prosesseille. Joten kun umpikuja havaitaan, se voidaan ratkaista alla olevilla menetelmillä:

Lukkiutuman esto käyttöjärjestelmässä

On tärkeää estää lukkiutuminen ennen kuin se voi tapahtua. Järjestelmä tarkistaa jokaisen tapahtuman ennen sen suorittamista varmistaakseen, että se ei johda lukkiutumiseen. Sellainen, että edes pieni muutos tapahtui kuolleena, että operaatio, joka voi johtaa umpikujaan tulevaisuudessa, se ei myöskään koskaan antanut prosessia suorittaa.

Se on joukko menetelmiä, joilla varmistetaan, että vähintään yksi ehdoista ei täyty.

Ei ennaltaehkäiseviä toimia

Ei ennakkokäyttöä – Resurssin voi vapauttaa vain vapaaehtoisesti sitä pitävän prosessin toimesta sen jälkeen, kun prosessi on suorittanut tehtävänsä

  • Jos prosessi, joka pitää sisällään joitain resursseja, pyytää toista resurssia, jota ei voida heti allokoida sille, siinä tilanteessa kaikki resurssit vapautetaan.
  • Ennalta varatut resurssit vaativat odottavan prosessin resurssien luettelon.
  • Prosessi käynnistetään uudelleen vain, jos se voi saada takaisin vanhan resurssinsa ja uuden, jota se pyytää.
  • Jos prosessi pyytää jotain muuta resurssia, kun se on saatavilla, se annettiin pyytävälle prosessille.
  • Jos se on toisen prosessin hallussa, joka odottaa toista resurssia, vapautamme sen ja annamme sen pyytävälle prosessille.

Yhteinen poissulkeminen

Keskinäinen poissulkeminen on Mutexin täysi muoto. Se on erityinen binäärisemafori, jota käytetään jaetun resurssin pääsyn hallintaan. Se sisältää prioriteetin periytymismekanismin laajennetun prioriteetin inversio-ongelmien välttämiseksi. Sen avulla nykyiset korkeamman prioriteetin tehtävät voidaan pitää estettyinä mahdollisimman lyhyen ajan.

Jaetut resurssit, kuten vain luku -tiedostot, eivät koskaan johda umpikujaan, mutta resurssit, kuten tulostimet ja nauha-asemat, tarvitsevat yksinoikeuden yhdellä prosessilla.

Pidä ja odota

Tässä tilassa prosessit on pysäytettävä pitämästä yhtä tai useampaa resurssia samalla, kun ne odottavat yhtä tai useampaa muuta.

Pyöreä odotus

Se määrää kaikkien resurssityyppien kokonaisjärjestyksen. Pyöreä odotus edellyttää myös, että jokainen prosessi pyytää resursseja kasvavassa luettelointijärjestyksessä.

Umpitilanteen välttäminen Algorithms

On parempi välttää lukkiutumista sen sijaan, että ryhdytään toimiin lukkiutumisen jälkeen. Se tarvitsee lisätietoja, kuten resurssien käyttöä. Umpitilanteen välttäminen on yksinkertaisin ja hyödyllisin malli, jossa kukin prosessi ilmoittaa kunkin tyypin resurssien enimmäismäärän, jonka se saattaa tarvita.

Välttäminen Algorithms

Lukkiutuman välttämisalgoritmi auttaa sinua arvioimaan dynaamisesti resurssien allokoinnin tilaa, jotta kierto-odotustilannetta ei voi koskaan olla.

Yksittäinen resurssityypin esiintymä.

  • Käytä resurssien allokointikaaviota
  • Syklit ovat välttämättömiä, jotka riittävät umpikujaan

Useita resurssityypin esiintymiä.

  • Syklit ovat välttämättömiä, mutta eivät koskaan riittäviä lukkiutumiseen.
  • Käyttää pankkiirin algoritmi

Ero nälkään ja umpikujaan

Tässä on joitain tärkeitä eroja umpikujan ja nälänhädän välillä:

umpikuja nälkiintyminen
Umpikujatilanne syntyy, kun jokin prosesseista tukossa. Nälkä on tilanne, jossa kaikki matalan prioriteetin prosessit estettiin ja korkean prioriteetin prosessit suoritetaan.
Umpikuja on ääretön prosessi. Nälkä on pitkä odotus, mutta ei loputon prosessi.
Jokaisessa umpikujassa on aina nälkä. Jokaisella nälänhädällä ei välttämättä ole umpikujaa.
Umpikuja tapahtuu sitten keskinäinen poissulkeminen, pidä ja odota. Tässä ennaltaehkäisy ja ympyrä odotus eivät tapahdu samanaikaisesti. Se tapahtuu hallitsemattoman prioriteetin ja resurssienhallinnan vuoksi.

Deadlockin edut

Tässä on Deadlock-menetelmän käytön edut/edut

  • Tämä tilanne toimii hyvin prosesseissa, jotka suorittavat yhden toimintopurskkeen
  • Deadlockiin ei tarvita ennakkolupaa.
  • Kätevä menetelmä, kun sitä käytetään resursseihin, joiden tila voidaan tallentaa ja palauttaa helposti
  • Mahdollista panna täytäntöön käännösaikatarkastuksilla
  • Ei vaadi ajonaikaista laskentaa, koska ongelma on ratkaistu järjestelmän suunnittelussa

Deadlockin haitat

Tässä ovat umpikujamenetelmän käytön haitat / haitat

  • Viivästyttää prosessin aloitusta
  • Prosessien tulee tietää tulevaisuuden resurssitarve
  • Ennakoi useammin kuin on tarpeen
  • Ei salli lisäresurssipyynnöt
  • Luontaiset etuostotappiot.

Yhteenveto

  • Deadlock määritelmä: Se on tilanne, joka tapahtuu OS kun mikä tahansa prosessi siirtyy odotustilaan, koska toinen odotusprosessi pitää sisällään vaaditun resurssin
  • Pyöreä odotus tapahtuu, kun yksi prosessi odottaa resurssia, jota pitää toinen prosessi, joka myös odottaa kolmannen prosessin hallussa olevaa resurssia jne.
  • Resurssien ajoittaja voi havaita lukkiutumisen.
  • On tärkeää estää lukkiutuminen ennen kuin se voi tapahtua.
  • Resurssin voi vapauttaa vain sen hallussa pitävä prosessi sen jälkeen, kun prosessi on suorittanut tehtävänsä.
  • Keskinäinen poissulkeminen on Mutexin täysi muoto. Se on erityinen binäärityyppi viestittää jota käytetään jaetun resurssin pääsyn hallintaan.
  • Pidä ja odota on tila, jossa prosessit on pysäytettävä pitämästä yhtä tai useampaa resurssia odottaen samanaikaisesti yhtä tai useampaa muuta.
  • Umpitilanteen välttäminen on yksinkertaisin ja hyödyllisin malli, jossa jokainen prosessi ilmoittaa kunkin tyypin resurssien enimmäismäärän, jota se saattaa tarvita.
  • Lukkiutuman välttämisalgoritmi auttaa sinua arvioimaan dynaamisesti resurssien allokoinnin tilaa, jotta kierto-odotustilannetta ei voi koskaan olla.
  • Umpikuja on ääretön prosessi, kun taas nälkä on pitkä odotus, mutta ei loputon prosessi.