Suositeltava, 2024

Toimituksen Valinta

Deadlockin ja nälän ero OS: ssä

Deadlock ja Starvation ovat molemmat olosuhteita, joissa resursseja pyytäviä prosesseja on viivästetty pitkään. Vaikka umpikuja ja nälkä molemmat eroavat toisistaan ​​monin tavoin. Deadlock on ehto, jossa prosessi ei käynnisty, ja kukin odottaa resursseja, jotka muut prosessit ovat hankkineet. Toisaalta nälänhädässä prosessi, jolla on korkeat prioriteetit, käyttää jatkuvasti resursseja, joilla estetään alhaisen prioriteetin prosessi resurssien hankkimiseksi. Keskustelkaa muutamasta erosta umpikujan ja nälän välillä alla olevan vertailukaavion avulla.

Vertailukaavio

Vertailun perusteumpikujanälkiintyminen
perustiedotDeadlock on paikka, jossa prosessi ei käynnisty ja estetään.Nälänhätä on silloin, kun alhaisen prioriteetin prosessit estetään ja etusijalla oleva prosessi etenee.
Nouseva tilaKeskinäisen syrjäytymisen esiintyminen, Pidä ja odota, Ei ennakkoa ja Pyöreä odottaa samanaikaisesti.Prioriteettien täytäntöönpano, hallitsematon resurssien hallinta.
Muu nimiPyöreä odotus.LifeLock.
voimavaratSulkutilanteessa muut prosessit estävät pyydetyt resurssit.Nälänhäiriöissä pyydetyt resurssit käytetään jatkuvasti korkean prioriteetin prosesseissa.
ennaltaehkäisyVälttämällä keskinäistä syrjäytymistä, pidä ja odota, ja pyöreä odotus ja salliminen.Ikääntyminen.

Deadlockin määritelmä

Deadlock on tilanne, jossa CPU: n useat prosessit kilpailevat CPU: n käytettävissä olevien resurssien rajallisesta määrästä. Tässä jokaisessa prosessissa on resurssi ja odotetaan hankkivan jonkin muun prosessin hallussa olevan resurssin. Kaikki prosessit odottavat resursseja pyöreällä tavalla. Alla olevassa kuvassa näet, että prosessi P1 on hankkinut resurssin R2, jota prosessi P2 pyytää, ja prosessi P1 pyytää resurssia R1, joka on R2: n hallussa. Siten prosessi P1 ja P2 muodostavat umpikujan.

Deadlock on yleinen ongelma monenkäsittelyjärjestelmissä, hajautetuissa järjestelmissä ja myös rinnakkaisissa tietojenkäsittelyjärjestelmissä. On olemassa neljä ehtoa, jotka täytyy tapahtua samanaikaisesti, jotta voidaan nostaa umpikuja, joka on keskinäinen syrjäytyminen, pidä ja odottaa, ei ennakkoa ja pyöreä odotus.

  • Keskinäinen syrjäytyminen: Vain yksi prosessi kerrallaan voi käyttää resurssia, jos muu prosessi pyytää samaa resurssia, sen täytyy odottaa, kunnes resurssi vapauttaa prosessin.
  • Pidä ja odota: Prosessi pitää pitää resurssia ja odottaa saavansa toisen resurssin, joka on jonkin muun prosessin hallussa.
  • Ei ennakkomaksua: Prosessia, jolla resurssit pidetään, ei voida ennakoida. Prosessin, jolla resurssi pidetään, on vapautettava resurssi vapaaehtoisesti, kun se on suorittanut tehtävänsä.
  • Pyöreä odotus: Prosessin täytyy odottaa resursseja pyöreällä tavalla. Oletetaan, että meillä on kolme prosessia {P0, P1, P2}. P0: n on odotettava P1: n hallussa olevaa resurssia; P1: n on odotettava hankkivan prosessin P2 hallussa oleva resurssi, ja P2: n täytyy odottaa hankkimaan P0: n hallussa oleva prosessi.

Vaikka on olemassa joitakin sovelluksia, jotka voivat havaita ohjelmat, jotka saattavat joutua umpikujaan. Mutta käyttöjärjestelmä ei ole koskaan vastuussa lukkojen estämisestä. Ohjelmoijien vastuulla on suunnitella umpikujaan kuulumattomia ohjelmia. Se voidaan tehdä välttämällä edellä mainitut olosuhteet, jotka ovat välttämättömiä umpikujaan

Nälän määritelmä

Nälkää voidaan määritellä niin, että kun muut prosessit ovat pyytäneet resurssia ja resurssia jatkuvasti, niin pyytävä prosessi kohtaa nälän. Nälkään prosessi, joka on valmis suorittamaan, odottaa CPU: ta allokoimaan resurssin. Mutta prosessin on odotettava loputtomasti, koska muut prosessit estävät jatkuvasti pyydetyt resurssit.

Nälänhäiriö ilmenee yleensä prioriteettisuunnittelualgoritmissa . Ensisijaisen aikataulutusalgoritmin kohdalla prosessi, jolla on suurempi prioriteetti, allokoidaan aina resurssille, mikä estää alemman prioriteetin prosessin saamasta pyydettyä resurssia.

Ikääntyminen voi ratkaista nälän ongelman. Ikääntyminen lisää vähitellen sen prosessin prioriteettia, joka on odottanut kauan resursseja. Ikääntyminen estää prosessin, jolla on alhainen prioriteetti, odottamaan määräämättömän ajan resurssille.

Deadlockin ja nälän keskeiset erot käyttöjärjestelmässä

  1. Kuolemantapauksessa mikään prosesseista ei käynnisty, jokainen prosessi on estetty odottamaan toisen prosessin hankkimia resursseja. Toisaalta nälkä on ehto, jossa prosessit, joilla on korkeampi prioriteetti, voivat hankkia resursseja jatkuvasti estämällä alemman prioriteetin prosessien hankkivan resursseja, jotka johtavat matalan prioriteetin prosessien rajoittamattomaan estämiseen.
  2. Deadlock syntyy, kun neljä ehtoa Keskinäinen syrjäytyminen, Pidä ja odota, Ei ennakkoa ja Pyöreä odotus tapahtuu samanaikaisesti. Nälkää esiintyy kuitenkin silloin, kun prosessien prioriteetit on toteutettu resursseja jaettaessa, tai järjestelmässä on hallitsematonta resurssienhallintaa.
  3. Deadlockia kutsutaan usein nimellä pyöreä odotus, kun taas nälkää kutsutaan eläväksi lukoksi .
  4. Deadlockissa resurssit estetään prosessin takia, mutta prosesseja käytetään nälkään jatkuvasti prosesseissa, joilla on korkeat prioriteetit.
  5. Deadlock voidaan estää siten, että vältetään olosuhteet, kuten keskinäinen syrjäytyminen, pidä ja odota, ja pyöreä odotus sekä sallimalla prosesseja, jotka pitävät resursseja pitkään. Toisaalta nälkää voidaan ehkäistä ikääntymisellä .

johtopäätös:

Sekä Deadlock että Starvation viivyttävät prosessin suorittamista estämällä sen. Toisaalta, jossa umpikuja voi aiheuttaa prosesseja nälkään, ja toisaalta nälkä voi saada prosessit umpikujasta.

Top