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

Mis on tupik?

tupik on olukord, mis tekib OS-is, kui mis tahes protsess läheb ooteolekusse, kuna teine ​​ooteprotsess hoiab nõutavat ressurssi. Ummik on levinud probleem mitme töötluse puhul, kus mitu protsessi jagavad teatud tüüpi üksteist välistavaid ressursse, mida nimetatakse pehmeks lukuks või tarkvaraks.

Ummikseisu näide

  • A real-world example would be traffic, which is going only in one direction.
  • Siin peetakse silda ressursiks.
  • Seega, kui ummikseisu juhtub, saab selle hõlpsalt lahendada, kui üks auto varundab (ressursside ennetamine ja tagasipööramine).
  • Ummikseisu korral võib tekkida vajadus varundada mitut autot.
  • So starvation is possible.
Ummikseisu näide
Näide ummikseisust

Mis on ümmargune ootamine?

Üks protsess ootab ressurssi, mida hoiab teine ​​protsess, mis samuti ootab ressurssi, mida hoiab kolmas protsess jne. See jätkub seni, kuni viimane protsess ootab ressurssi, mida hoiab esimene protsess. See loob ringikujulise ahela.

Näiteks eraldatakse protsessile A ressurss B, kuna see taotleb ressurssi A. Samamoodi eraldatakse protsessile B ressurss A ja see taotleb ressurssi B. See loob ringikujulise ooteahela.

Ringi ootamise näide

For example, a computer has three USB drives and three processes. Each of the three processes able to holds one of the USB drives. So, when each process requests another drive, the three processes will have the deadlock situation as each process will be waiting for the USB drive to release, which is currently in use. This will result in a circular chain.

Ringi ootamise näide

Ringi ootamise näide

Ummikseisu tuvastamine OS-is

Ressursiplaneerija suudab tuvastada ummikseisu. Ressursiplaneerija aitab operatsioonisüsteemil säilitada track kõigist ressurssidest, mis on eraldatud erinevatele protsessidele. Seega, kui tuvastatakse ummikseis, saab selle lahendada järgmiste meetodite abil:

Tupiku vältimine OS-is

Enne ummikseisu on oluline vältida. Süsteem kontrollib iga tehingut enne selle täitmist veendumaks, et see ei põhjusta ummikseisu. Selline, et isegi väike muudatus tekkis surnud, et toiming, mis võib tulevikus ummikseisu viia, ei lubanud ka protsessil kunagi käivituda.

It is a set of methods for ensuring that at least one of the conditions cannot hold.

Ei mingit ennetavat tegevust

Eesmärk puudub – ressursi saab vabastada ainult seda hoidev protsess vabatahtlikult pärast seda, kui protsess on oma ülesande lõpetanud

  • Kui protsess, mis hoiab mõnda ressurssi, nõuab teist ressurssi, mida ei saa sellele kohe eraldada, vabastatakse selles olukorras kõik ressursid.
  • Ennetatud ressursid nõuavad ootava protsessi jaoks ressursside loendit.
  • Protsess taaskäivitatakse ainult siis, kui see suudab taastada oma vana ressursi ja uue, mida ta taotleb.
  • Kui protsess nõuab mõnda muud ressurssi, kui see on saadaval, siis anti see taotlevale protsessile.
  • Kui seda hoiab mõni muu protsess, mis ootab teist ressurssi, vabastame selle ja anname selle taotlevale protsessile.

Vastastikune välistamine

Vastastikune välistamine on Mutexi täisvorm. See on spetsiaalne binaarne semafor, mida kasutatakse jagatud ressursi juurdepääsu kontrollimiseks. See sisaldab prioriteedi pärimise mehhanismi, et vältida laiendatud prioriteedi inversiooni probleeme. See võimaldab hoida praeguseid kõrgema prioriteediga ülesandeid võimalikult lühikese aja jooksul blokeeritud olekus.

Jagatavad ressursid, nagu kirjutuskaitstud failid, ei vii kunagi ummikseisu, kuid ressursid, nagu printerid ja lindiseadmed, vajavad ainujuurdepääsu ühe protsessi kaudu.

Hold and Wait

Selles seisundis tuleb protsessid peatada ühe või mitme ressursi hoidmisest, oodates samal ajal üht või mitut muud ressurssi.

Ringikujuline ootamine

See määrab kõigi ressursitüüpide täieliku järjestuse. Ringlik ootamine nõuab ka seda, et iga protsess taotleks ressursse loendamise kasvavas järjekorras.

Ummiku vältimine Algorithms

Parem on ummikseisu vältida, selle asemel, et pärast ummikseisu tekkimist midagi ette võtta. See vajab lisateavet, näiteks ressursside kasutamise kohta. Ummikseisu vältimine on lihtsaim ja kasulikum mudel, mille puhul iga protsess deklareerib igat tüüpi ressursside maksimaalse arvu, mida see võib vajada.

Avoidance Algorithms

Ummikseisu vältimise algoritm aitab teil dünaamiliselt hinnata ressursside jaotamise olekut, et ei saaks kunagi tekkida ringikujulist ootamist.

Ressursitüübi üks eksemplar.

  • Kasutage ressursside jaotamise graafikut
  • Vajalikud on tsüklid, millest piisab ummikseisu jaoks

Ressursitüübi mitu eksemplari.

  • Tsüklid on ummikseisu jaoks vajalikud, kuid mitte kunagi piisavad.
  • Kasutab pankuri algoritm

Erinevus nälgimise ja ummikseisu vahel

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

tupik Nälg
Ummik tekib siis, kui üks protsessidest on blokeeritud. Nälgimine on olukord, kus kõik madala prioriteediga protsessid blokeeritakse ja kõrge prioriteediga protsessid käivituvad.
Ummik on lõputu protsess. Nälgimine on pikk ootamine, kuid mitte lõputu protsess.
Igas ummikseisus on alati nälg. Igal näljutamisel ei pruugi olla ummikseisu.
Ummik tekib siis vastastikune välistamine, hoidke ja oodake. Siin ei esine eelisostmist ja ringikujulist ootamist üheaegselt. See juhtub kontrollimatu prioriteedi ja ressursside juhtimise tõttu.

Deadlocki eelised

Siin on ummikseisumeetodi kasutamise plussid/kasud

  • See olukord toimib hästi protsesside puhul, mis sooritavad ühe tegevuspurske
  • Deadlocki jaoks pole eelostu vaja.
  • Mugav meetod, kui seda kasutatakse ressurssidele, mille olekut saab hõlpsasti salvestada ja taastada
  • Võimalik jõustada kompileerimisaja kontrollimise teel
  • Ei vaja käitusaja arvutamist, kuna probleem lahendatakse süsteemi projekteerimisel

Deadlocki puudused

Siin on ummikseisumeetodi kasutamise miinused / puudused

  • Viivitab protsessi käivitamist
  • Protsessid peavad teadma tulevast ressursivajadust
  • Ennetab sagedamini kui vaja
  • Keelab täiendavate ressursitaotluste esitamise
  • Loomulikud eelisostukaotused.

kokkuvõte

  • Ummikseisu määratlus: see on olukord, mis tekib OS kui mis tahes protsess läheb ooteolekusse, kuna teine ​​ooteprotsess hoiab nõutavat ressurssi
  • Ringlik ootamine toimub siis, kui üks protsess ootab ressurssi, mida hoiab teine ​​protsess, mis samuti ootab ressurssi, mida hoiab kolmas protsess jne.
  • Ressursi planeerija suudab tuvastada ummikseisu.
  • Enne ummikseisu on oluline vältida.
  • Ressursi saab vabastada ainult seda hoidev protsess vabatahtlikult pärast seda, kui protsess on oma ülesande lõpetanud.
  • Vastastikune välistamine on Mutexi täisvorm. See on binaarne eritüüp semafoor mida kasutatakse jagatud ressursi juurdepääsu kontrollimiseks.
  • Hoia ja oota on seisund, kus protsessid tuleb peatada, et need ei hoiaks ühte või mitut ressurssi, oodates samal ajal üht või mitut teist.
  • Deadlock avoidance is the simplest and most useful model that each process declares the maximum number of resources of each type that it may need.
  • Ummikseisu vältimise algoritm aitab teil dünaamiliselt hinnata ressursside jaotamise olekut, et ei saaks kunagi tekkida ringikujulist ootamist.
  • Ummik on lõputu protsess, samas kui nälgimine on pikk ootamine, kuid mitte lõpmatu protsess.

Võta see postitus kokku järgmiselt: