Mis on operatsioonisüsteemi ummikseis: tingimused ja tuvastamise algoritm

Proovige Meie Instrumenti Probleemide Kõrvaldamiseks





Operatsioonisüsteemi põhieesmärk on pakkuda riist- ja tarkvararessursside vahel korralikku sidet ning pakkuda programmidele ka ühiseid teenuseid. Kui operatsioonisüsteemi protsess soovib juurdepääsu mis tahes ressursile, saadab see kõigepealt päringu konkreetsele ressursile, millele ta soovib juurde pääseda, seejärel kasutab see ressurssi ja vabastab ressursi pärast kasutamist. Oletame, et paljud protsessid üritavad ühele ressursile korraga juurde pääseda, muutub sellises olukorras keeruliseks ühe ressursi pakkumine kõikidele protsessidele korraga. Seetõttu kirjeldatakse selles artiklis, kuidas ummikseis toimub ja kuidas sellest ummikseisust üle saada.

Mis on operatsioonisüsteemi ummikseis?

Definitsioon: Dead-Lock on olukord, kus kaks või enam protsessorit ootavad mõne sündmuse toimumist, kuid sellised sündmused, mida ei juhtu, on ummikseis ja väidetavalt on protsessorid ummikseisus. Oletagem näiteks reaalajas stsenaariumi, kus ühesuunalisel teel on kaks A ja B autot, mida juhivad kaks üksikut juhti. Nüüd tekib olukord, kus auto A juht ütleb, et ta liigub põhja suunas, on õige suund, samas kui auto B juht ütleb, et liikumine lõuna suunas on õige. Kuid kumbki ei liigu tagasi, et lubada teisel autol edasi liikuda, seda seisundit nimetatakse ummikseisuks.




Auto-näide

auto-näide

Parema mõistmise huvides vaatleme veel ühte näidet, kus on kaks ressurssi R1, R2 ja kaks protsessi P1 ja P2, kus R1 on määratud P1-le ja R2 on määratud P2-le. Kui P1 soovib pääseda R2-le, nagu me juba teame, et R2 on P2 käes, ja nüüd soovib P2 pääseda juurde R1-le, mis on P1 täidab ainult siis, kui sellele R2 juurde pääseb, täidab ka P2 seda olukorda ainult siis, kui sellele R1-le juurde pääseb on ummikseis.



Protsessori näide

protsessor-näide

Sulguri tingimused

Järgnevalt on toodud neli olulist ummikseisundit, mis tekivad juhul, kui kõik tingimused esinevad üheaegselt, on ummikseisule teatavad võimalused.

Vastastikune välistamine

See tähendab, et mis tahes ressurssi, mida me seda kasutame, tuleb kasutada üksteist välistaval viisil. Kui ainult üks protsess kasutab korraga ainult ühte ressurssi. Näiteks käib printimisprotsess ja äkki üritab teine ​​protsess printimisprotsessi katkestada. Nii et siin vastastikuse tõrjutuse olukorras töödeldakse ainult järgmist ülesannet pärast printimistoimingu lõpetamist. Vastastikust tõrjutust saab kõrvaldada ressursside üheaegse jagamise teel, mis pole praktiliselt võimalik.

Vastastikune välistamine

vastastikune välistamine

Eelisõigus puudub

Vastavalt ennetav põhinevad algoritmid, kui mõni prioriteetne ülesanne üritab praegust ülesannet katkestada. Ennetav algoritm, milles see hoiab praegust ülesannet, täidab esiteks prioriteetset ülesannet ja saab oma esimese ülesande juurde tagasi. Ülaltoodud näite kohaselt selgitatud olukord, kus protsess hoiab ressurssi seni, kuni see käivitatakse, see tähendab, et P1 saab R1 vabastada alles pärast käivitamist, sarnaselt P2 vabastab R2 alles pärast käivitamist. Kui eelisõigust pole, võib tekkida ummikseis.


Eelis-näide

eelis-näide

Hoidke ja oodake

Protsessil on mõned ressursid ja see ootab täiendavaid ressursse, kuid need ressursid omandatakse mõne muu protsessi abil. Ülaltoodud näite kohaselt on P1 käes R1 ja ootab R2-d, kus R2 omandab P2, ja P2 hoiab R2-d ja ootab R1-d, kus R1 omandab P1 on ootel ja süsteemis võib tekkida ummikseis.

Ootel-oota-näide

ootel-oota-näide

Ringkiri Oota

Protsesside komplekt on ummikus, kui üks protsess ootab ressurssi, mis on eraldatud teisele protsessile, ja see protsess ootab ressurssi, see on sarnane ülalpool selgitatud näitega, kus see on tsükli kujul. Kui P1 ootab R2 ja R2 on eraldatud P2 jaoks ning P2 ootab P1 jaoks eraldatud R1 ja R1, mis on ümmargune ootevorm, kui see tingimus rahuldab ummikseisu.

Ringkiri-oot-näide

ring-oot-näide

Sulgurite tuvastamise algoritm

Juhtudel, kui eraldame ressursse protsessidele ja opsüsteem kontrollib uuesti, kas süsteemis on tekkinud ummikseis või ei kasutata kahte peamist ummikseisu tuvastamise algoritmi, on need

  • Üksikjuhtum
  • Mitu ressursitüübi eksemplari

Üksikjuhtum

Üksik eksemplar on olukord, kus süsteemil on kõigi ressursside üksikud eksemplarid. Seda nimetatakse ka graafiku algoritmi ootamiseks või ressursside jaotamise graafikuks. Ressursside jaotamise graafik koosneb protsesside ja ressursside kogumist, mis on kujutatud kahe erineva tipuna. Ressursside jaotamise graafiku ressursse muudetakse ja need on graafiku kujul ootamise vormis. Kui graafiku vormi ootel on ainult protsessid, mis on kujutatud tippudena, nagu allpool näidatud, kus

  • Ressursside jaotamise graafik: Protsessid P1, P2, P3 ja ressursid R1, R2, R3 on kujutatud ressursside jaotamise graafikus.
  • Graafiku ootamine: graafiku ootel mainitakse ainult protsesse P1, P2, P3.
  • Kui on tsükli tingimus, tähendab see, et kui protsess kulgeb pidevalt ühes suunas, tähendab see tsükli tingimuse väljumist ja ootamist, kuni graafik on ummikus.

Näide 1: Allpool olev näide näitab, et ummikseisundit ei ole, kuna graafiku ootamisel ei täheldata pidevat voogu.

Ühe astme näide

üksikjuhtum-näide1

Näide 2: Ummikseis on tekkinud seetõttu, et P1-st P4-ni on tsükli pidev voog.

Üheastmeline - näide2

üksikjuhtum-näide2

Kui ummikseis tekib süsteemis väga sageli, kasutatakse tuvastamise algoritmi sageli. Kui tuvastamisalgoritmi on rohkem kasutatud, on rohkem üldkulusid ja rohkem arvutusaega. Selle ületamiseks kasutame algoritmi pärast võrdse aja andmist nii, et graafiku kaalu kasutatakse ummiku tuvastamiseks.

Ressursitüübi mitu eksemplari

Ressursitüübi mitu eksemplari on olukord, kus süsteemil on mitu ressursi eksemplari, seda nimetatakse ka pankurite algoritmiks. Bankersi algoritmi kohaselt vabastab see kohe, kui protsess saab kõik vajalikud ressursid.

Vaatleme järgmist näidet. Oletame, et on 3 protsessi P0, P1, P2 ja ressursitüüpi A, B, C, kus A võib olla Protsessor , B võib olla printer ja C võib olla klaviatuur. Numbrid “0” veerus tähistavad ressursside kättesaadavust.

Juhtum i: Oletame, et kui võtame tingimusetaotluse „000”, mis on olemas P0-s ja P2-s, peaksime kontrollima, milline taotlus on täidetud, protsessid P0 vabastavad protsessid pärast eraldamise saamist, seejärel järgmised P2 protsessid vabastatakse pärast eraldamise saamist. Niimoodi eraldab järjestikku ükshaaval protsess järjestuses P0, P2, P3, P1, P4. Lõpuks saame saadaolevad ressursid P7, P2, P6. Kättesaadav järjestus on tingimus, kus ummikseis puudub.

Pankurid-algoritm-näide1

pankurid-algoritm-näide1

Majad (ii): Oletame, et kui P2 on 000 asemel 001, rakendage ummikseisundi kontrollimiseks nüüd pankuri algoritmi, kus ainus P0 käivitatakse kõigi viie protsessi vahel. Seega on P1, P2, P3, P4 ummikseisus, välja arvatud P0.

Pankurid-näide2

pankurid-näide2

Ummiku rakendused

Ummiku rakendusi saab seletada reaalajas veebitulemuste näitega, kus mitmed üliõpilased üritavad vabastamise ajal oma ülikooli veebisaidile juurde pääseda. Võib täheldada, et mõnikord ei laadita veebileht korraga mitmele kasutajale, see on ummikseis. Sellest saab üle ükskõik millise algoritmi abil.

Eelised

Ummiku eelised on

  • Ummiku vältimisel eelisõigust ei täheldata
  • Protsessis ei viivitata

Puudused

Ummiku puuduseks on

  • Kasutatav ressurss peab olema eelnevalt teada
  • Protsessi blokeerimine pikka aega
  • Eelisostukahjud on päritud.

Selles artiklis antakse ülevaade sellest, kuidas ummikseis tekib, kui on kaks või enam protsessi, ja kolmest tingimusest, mis põhjustavad ummikseisu, ning kahte tüüpi algoritme, nimelt ressursside jagamise algoritme, mis tuvastavad tupikseis ja pankurite algoritm, mis on ummikseisu vältimise algoritm. Siin on küsimus 'Mis juhtub, kui ummikut eiratakse?'.