Ummik sisse OperaTingimissüsteem: mis on, ümmargune ootamine (näited)

⚡ Nutikas kokkuvõte

Operatsioonisüsteemi ummikseis tekib siis, kui protsesside komplekt on blokeeritud, kuna igaüks neist hoiab ressurssi ja ootab teist, mida hoiab teine ​​protsess, luues ringikujulise ahela, kus ükski protsess ei saa edasi liikuda.

  • 🔒 Määratlus: Pattiseisu korral külmutatakse protsessid, millel kõigil on ressurss, kuni nad üksteist ootavad.
  • 🧩 Neli tingimust: Vastastikune välistamine, ootele panemine ja ootamine, eelisõiguse puudumine ja ringootmine peavad kõik koos kehtima.
  • 🔁 Ringjaotusega ootamine: Protsessid moodustavad suletud ahela, kus igaüks ootab järgmise poolt hoitavat ressurssi.
  • 🛡️ ennetamine: Ükskõik millise neljast tingimusest rikkumine peatab ummikseisu tekkimise.
  • 🏦 Vältimine: Pankuri algoritm kontrollib ressursitaotlusi, et hoida süsteemi turvalises olekus.
  • 🤖 Tehisintellekti nurk: Masinõpe tuvastab ummikseisu mustreid ja Copilot aitab lukustuskoodi kirjutada ja üle vaadata.

Ummik sisse Operating System

Mis on tupik?

tupik on olukord, mis tekib operatsioonisüsteemi kui protsess läheb ooteolekusse, kuna teine ​​ooteprotsess hoiab nõutud ressurssi. Pattiseisund on mitmeprotsessilise protsessi puhul levinud probleem, kus mitu protsessi jagavad teatud tüüpi üksteist välistavat ressurssi, mida nimetatakse pehmeks lukuks või tarkvaraliseks lukuks.

Pattiseisu tekkimisel ei saa ükski kaasatud protsessidest jätkata, seega peatub mõjutatud töö kuni operatsioonisüsteemi sekkumiseni.

Ummikseisu näide

  • Reaalse maailma näide oleks liiklus, mis liigub ainult ühes suunas.
  • Siin peetakse silda ressursiks.
  • Seega, kui tekib ummikseis, saab selle lahendada ühe auto tagurdamisega (ressursside ärakasutamine ja tagasikerimine).
  • Ummikseisu korral võib tekkida vajadus varundada mitut autot.
  • Seega on nälgimine võimalik.

Ummikseisu näide

Näide ummikseisust

Mis on ümmargune ootamine?

Üks protsess ootab ressurssi, mida hoiab teine ​​protsess, teine ​​protsess ootab samuti kolmanda protsessi ressurssi ja nii edasi. See jätkub seni, kuni viimane protsess ootab esimese protsessi ressurssi. See loob ringikujulise ahela.

Näiteks eraldatakse protsessile A ressurss B, kui see taotleb ressurssi A. Samal moel eraldatakse protsessile B ressurss A, kui see taotleb ressurssi B. See loob ringikujulise ooteahela.

Ringi ootamise näide

Näiteks on arvutil kolm USB-draivi ja kolm protsessi. Igaüks kolmest protsessist hoiab ühte USB-draivi. Seega, kui iga protsess taotleb uut draivi, jõuavad need kolm protsessi ummikseisu, kuna igaüks ootab USB-draivi vabastamist, kui see on veel kasutusel. Selle tulemuseks on ringikujuline ahel.

Ringi ootamise näide

Ringi ootamise näide

Ummikseisu tuvastamine OS-is

Ressursiplaneerija saab tuvastada ummikseisu. Ressursiplaneerija aitab operatsioonisüsteemil track kõigist ressurssidest, mis on eraldatud erinevatele protsessidele. Kui ummikseis on tuvastatud, saab selle lahendada ressursside ennetamise, protsessi tagasivõtmise või ühe või mitme ummikseisu sattunud protsessi lõpetamise teel.

Tupiku vältimine OS-is

Oluline on ummikseis ennetada. Süsteem kontrollib iga tehingut enne selle teostamist, et veenduda, et see ei vii ummikseisu. Isegi väikest toimingut, mis võib tulevikus ummikseisu põhjustada, ei lubata kunagi teostada.

Pattiseisu ennetamine on meetodite kogum, mis tagab, et vähemalt üks neljast vajalikust tingimusest ei saa kehtida.

Eelostuõigus puudub

Ressursi saab vabatahtlikult vabastada ainult seda hoidev protsess pärast seda, kui see protsess on oma ülesande lõpetanud.

  • Kui protsess, millel on juba ressursse, taotleb teist ressurssi, mida ei saa talle kohe eraldada, siis vabastatakse kõik selle ressursid.
  • Eelnevalt valitud ressursid lisatakse ressursside loendisse, mida protsess ootab.
  • Protsess taaskäivitatakse alles siis, kui see saab taastada nii vanad ressursid kui ka uued, mida ta taotleb.

Vastastikune välistamine

Vastastikune välistamine on Mutual Exclusion ehk Mutexi täielik vorm. See on eritüüpi binaarkood. semafoor mida kasutatakse jagatud ressursile juurdepääsu kontrollimiseks. See sisaldab prioriteedi pärimise mehhanismi, et vältida pikaajalisi prioriteedi inversiooni probleeme ja hoida kõrgema prioriteediga ülesandeid blokeerituna võimalikult lühikese aja jooksul.

Jagatud ressursid, näiteks kirjutuskaitstud failid, ei põhjusta kunagi ummikseisu, kuid ressursid, nagu printerid ja lindiseadmed, vajavad ühe protsessi eksklusiivset juurdepääsu.

Hoia ja oota

Sellises olukorras tuleb protsessid peatada ühe või mitme ressursi hoidmisest, samal ajal kui nad ootavad ühe või mitme teise ressursi järele.

Ringikujuline ootamine

See meetod nõuab kõigi ressursitüüpide täielikku järjestamist. Ringja ootamise vältimine nõuab ka, et iga protsess taotleks ressursse kasvavas loendamise järjekorras.

Ummiku vältimine Algorithms

Pattiseisu on parem vältida, kui tegutseda alles pärast selle tekkimist. Vältimiseks on vaja lisateavet, näiteks kuidas ressursse kasutatakse. Pattiseisu vältimine on kasulik mudel, kus iga protsess deklareerib igat tüüpi ressursside maksimaalse arvu, mida ta võib vajada.

Vältimine Algorithms

Ummikusseisu vältimise algoritm hindab dünaamiliselt ressursside eraldamise olekut, nii et ringjaotuse olukorda ei saa kunagi tekkida.

Ressursitüübi üksiku eksemplari puhul:

  • Kasutage ressursside jaotamise graafikut.
  • Tsükkel graafikus on ummikseisu tekkeks vajalik ja piisav.

Ressursitüübi mitme eksemplari korral:

  • Tsükkel on vajalik, kuid mitte piisav ummikseisu tekitamiseks.
  • Kasuta Pankuri algoritm.

Erinevus nälgimise ja ummikseisu vahel

Siin on mõned olulised erinevused ummikseisu ja nälgimise vahel:

tupik Nälg
Patiseis tekib siis, kui üks protsessidest blokeerub. Nälg on olukord, kus kõik madala prioriteediga protsessid blokeeritakse, samal ajal kui kõrge prioriteediga protsessid käivituvad.
Ummik on lõputu protsess. Nälgimine on pikk ootamine, aga mitte lõputu protsess.
Igas ummikseisus on alati nälg. Iga nälgimisega ei kaasne tingimata ummikseisu.
Pattiseis tekib vastastikuse välistamise, ootele panemise ja ootamise, eelisõiguse puudumise ja ringja ootamise koosesinemise tõttu. See juhtub kontrollimatu prioriteetsuse ja halva ressursihalduse tõttu.

Deadlocki eelised

Siin on ummikseisu käsitlemise meetodi plussid:

  • See olukord sobib hästi protsesside puhul, mis sooritavad üheainsa tegevuspurske.
  • Pattiseisu korral ei ole eelisõigust vaja.
  • See on mugav meetod ressursside puhul, mille olekut saab hõlpsalt salvestada ja taastada.
  • Seda on võimalik jõustada kompileerimisaja kontrollide abil.
  • See ei vaja käitusaja arvutusi, kuna probleem on süsteemi disainis juba lahendatud.

Deadlocki puudused

Siin on ummikseisu käsitlemise meetodi miinused:

  • See lükkab protsessi käivitamist edasi.
  • Protsessid peavad oma tulevasi ressursivajadusi ette teadma.
  • See ennetab sagedamini kui vaja.
  • See keelab täiendavate ressursitaotluste esitamise.
  • Sellel on loomupärased eelisostukaotused.

KKK

Pattiseisu korral on vaja nelja Coffmani tingimuse samaaegset kehtimist: vastastikune välistamine, ootel olemine ja ootamine, eelisõiguse puudumine ja ringootmine. Ükskõik millise nendest tingimustest eemaldamine hoiab ära pattiseisu tekkimise.

Ennetamine eemaldab eelnevalt ühe neljast tingimusest, nii et ummikseis ei saa kunagi tekkida. Vältimine lubab tingimusi, kuid kasutab käitusaegseid kontrolle, näiteks Pankuri algoritm, et hoida süsteemi ohutus olekus.

Ummikus seisus peatuvad blokeeritud protsessid täielikult ega muuda kunagi olekut. livelock, protsessid muudavad pidevalt olekut ja kasutavad protsessorit, kuid ikkagi ei edene. Livelock on ressursipuuduse erijuhtum.

Enamik üldotstarbelisi süsteeme, sealhulgas Windows ja Linuxis kasutatakse jaanalinnu algoritmi ja harvaesinevaid ummikseisusid lihtsalt ignoreeritakse, sest ennetamine on kulukas. Andmebaasid ja reaalajas süsteemid käitavad selle asemel aktiivseid tuvastus- ja taastamisrutiine.

Ressursside jaotamise graafik kaardistab protsessid ja ressursid sõlmedena, mis on ühendatud päringu- ja omistusservadega. Tsükkel graafikul annab märku võimalikust ummikseisust; ühe eksemplari ressursside puhul tähendab tsükkel alati ummikseisu olemasolu.

Ei. Tõeline ummikseis on püsiv, sest blokeeritud protsessid ei vabasta kunagi oma ressursse ise. Operatsioonisüsteem peab selle murdma ressursi ennetamise, tagasikerimise või ühe protsessi lõpetamisega.

Masinõppe mudelid õpivad ressursitaotluste mustreid, et ennustada ja märgistada ummikseisusid enne nende tekkimist. Tehisintellekti ajastajate abil saab taotlusi ümber järjestada või lukustuspoliitikaid häälestada, mis on kasulik andmebaasides, pilveplatvormidel ja hajussüsteemides.

Jah. GitHub Copilot suudab tuvastada riskantseid lukkude järjekordi, soovitada järjepidevat lukkude hankimist ja genereerida teste, mis paljastavad ummikseisud. Selle väljundit käsitletakse esimese läbimisena ja kontrollitakse siiski samaaegsuse loogikat sobivate analüüsitööriistadega.

Võta see postitus kokku järgmiselt: