Ero umpikujassa ja nälkäisyydessä

Umpikuja vs. nälkä
 

Pääasiallinen ero lukkiutumisen ja nälkään nähden on syy-seuraussuhde niiden välillä; umpikuja aiheuttaa nälkään. Toinen mielenkiintoinen ero lukkiutumisen ja nälkäisyyden välillä on, että umpikuja on ongelma, kun taas nälkä voi toisinaan auttaa pääsemään umpikujasta. Tietokonemaailmassa kirjoitettaessa tietokoneohjelmaa on useampi kuin yksi prosessi / säie, jotka ajavat samanaikaisesti peräkkäin suorittaakseen ohjelman vaaditun palvelun. Siksi, jotta saadaan oikeudenmukainen järjestelmä, ohjelmoijan tulee varmistaa, että kaikki prosessit / säikeet saavat tai saavat riittävästi pääsyä tarvitsemiinsa resursseihin. Jos ei, umpikuja on umpikuja, ja se johtaa nälkään myöhemmin. Yleensä oikeudenmukainen järjestelmä ei sisällä lukkiutumisia tai nälkää. Umpikuja ja nälkähäiriöt tapahtuvat lähinnä silloin, kun monet ketjut kilpailevat rajallisista resursseista.

Mikä on umpikuja?

Umpikuja on tila, joka syntyy, kun kaksi säiettä tai prosessia odottaa toisiaan suorittavan tehtävän. He vain pysähtyvät, mutta eivät koskaan lopeta tai lopeta tehtäväänsä. Tietotekniikassa umpikujat näkyvät kaikkialla. Tapahtumatietokannassa, kun kaksi prosessia kullakin tapahtuu omassa tapahtumassa, päivitetään samat kaksi tietoriviä, mutta päinvastaisessa järjestyksessä, syntyy umpikuja. Samanaikaisessa ohjelmoinnissa voi tapahtua umpikuja, kun kaksi kilpailevaa toimintoa odottavat toistensa etenemistä eteenpäin. Televiestintäjärjestelmissä umpikuja voi tapahtua signaalien katoamisen tai vioittumisen vuoksi.

Tällä hetkellä umpikuja on yksi moniprosessointijärjestelmien ja rinnakkaislaskennan pääongelmista. Ratkaisuna lukitusjärjestelmä nimeltään prosessien synkronointi on toteutettu ohjelmistojen ja laitteistojen lisäksi.

Mikä on nälkää?

Lääketieteen sanakirjasta nälkä on seurausta elämän ylläpitämiseen tarvittavien ravintoaineiden vakavasta tai täydellisestä puutteesta. Samoin tietotekniikassa nälkä on kohdattu ongelma kun useat ketjut tai prosessit odottavat samaa resurssia, jota kutsutaan umpikujaksi.

Jotta päästäisiin umpikujasta, yhden prosessin tai säikeen on pakko luopua tai kääntyä takaisin, jotta toinen säie tai prosessi voi käyttää resurssia. Jos näin tapahtuu jatkuvasti ja saman prosessin tai säieen on luovuttava tai kääntyvä takaisin joka kerta antaessaan muille prosesseille tai säieille resurssin käytön, valittu prosessi tai säie, joka vetää takaisin, käy läpi tilanteen, jota kutsutaan nälkään. Siksi, nälkään pääseminen umpikujasta on yksi ratkaisu. Siksi joskus kutsutaan nälkään eräänlainen livelock. Kun on olemassa useita erittäin tärkeitä prosesseja tai säikeitä, alemman prioriteetin prosessit tai säikeet näkevät aina umpikujan.

Nälkähäiriöitä voi olla monia, kuten nälkää resursseja ja nälkää prosessorilla. Nälänhätää on monia yleisiä esimerkkejä. He ovat lukija-kirjoittajien ongelma ja ruokasalifilosofien ongelma, joka on kuuluisampi. Pyöreän pöydän ääressä istuu viisi hiljaista filosofia, joiden päällä on spagetteja. Haarukat sijoitetaan vierekkäisten filosofien parien väliin. Jokaisen filosofin on vuorotellen ajateltava ja syövä. Filosofi voi kuitenkin syödä spagetteja vasta, kun hänellä on sekä vasen että oikea haaru.

"Ruokapöydäksen filosofit"

Mikä ero on umpikujassa ja nälkäisyydessä??

• Käsitellä asiaa:

• umpikujassa kaksi säiettä tai prosessia odottavat toisiaan eivätkä molemmat mene eteenpäin.

• Nälkävaiheessa, kun kaksi tai useampi säie tai prosessi odottaa samaa resurssia, toinen rullautuu taaksepäin ja antaa muiden käyttää resurssia ensin ja seuraavaksi nälkää tekevä lanka tai prosessi yrittää uudelleen. Siksi kaikki säikeet tai prosessit etenevät joka tapauksessa eteenpäin.

• Pyöriä takaisin:

• umpikujassa sekä korkean prioriteetin säikeet / prosessit että matalan prioriteetin säieet / prosessit odottavat toisiaan äärettömästi. Se ei lopu koskaan.

• Nälkähäiriössä matalat prioriteetit odottavat tai kääntyvät taaksepäin, mutta korkean prioriteetin kohteet jatkuvat.

• Odottaa tai lukita:

• umpikuja on pyöreä odotus.

• Nälkä on eräänlainen livelock ja joskus auttaa pääsemään umpikujasta.

• umpikuja ja nälkä:

• umpikuja aiheuttaa nälkään, mutta nälkä ei aiheuta umpikujaa.

• Syyt:

• umpikuja johtuu keskinäisestä poissulkemisesta, pidä ja odota, ei ennakko- tai ympyräodotusta.

• Nälkä johtuu resurssien niukkuudesta, resurssien hallitsemattomasta hallinnasta ja prosessien painopisteistä.

Yhteenveto:

Umpikuja vs. nälkä

Umpikuja ja nälkähäiriöt ovat joitain ongelmista, joita esiintyy ohjelmoinnin aikana tapahtuvien tietokilpailujen ja kilpailuolosuhteiden sekä laitteiston toteuttamisen takia. Umpikujassa kaksi säiettä odottaa ääretöntä toisiaan ilman suorittamista, kun taas nälkään yksi säie rullautuu taaksepäin ja antaa toisen säikeen käyttää resursseja. Umpikuja aiheuttaa nälkään, kun taas nälkä auttaa ketjua pääsemään umpikujasta.

Kuvat kohteliaisuus:

  1. Tietokoneen kirjoittanut Steve Jurvetson, Menlo Park, USA (CC BY 2.0)
  2. Bdeshamin ”Ruokailutieteilijät” (CC BY-SA 3.0)