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
- Reaalse maailma näide oleks liiklus, mis toimub ainult ühes suunas.
- 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.
- Nii et nälgimine on võimalik.

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
Näiteks arvutil on kolm USB-draivi ja kolm protsessi. Kõik kolm protsessi, mis suudavad hoida ühte USB-draivi. Seega, kui iga protsess nõuab teist draivi, on kolm protsessi ummikseisu, kuna iga protsess ootab USB-draivi vabastamist, mis on praegu kasutusel. Selle tulemuseks on ringikujuline ahel.
Ummikseisu tuvastamine OS-is
Ressursi planeerija saab tuvastada ummikseisu. Ressursiplaanija aitab OS-il jälgida kõiki ressursse, mis on eraldatud erinevatele protsessidele. Seega, kui ummikseisu tuvastatakse, saab selle lahendada alltoodud meetoditega.
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.
See on meetodite kogum, mis tagab, et vähemalt üks tingimus ei kehti.
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.
Hoia ja oota
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.
Vältimine 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.
- Ummikseisu vältimine on lihtsaim ja kasulikum mudel, mille puhul iga protsess deklareerib igat tüüpi ressursside maksimaalse arvu, mida see võib vajada.
- 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.