Mi az a holtpont az operációs rendszerben: Feltételek és detektálási algoritmus

Próbálja Ki A Műszerünket A Problémák Kiküszöbölésére





Az operációs rendszer fő célja megfelelő kommunikáció biztosítása a hardver és szoftver erőforrások között, valamint közös szolgáltatások biztosítása a programok számára. Amikor az operációs rendszer folyamata bármilyen erőforráshoz hozzáférni akar, először kérést küld az adott erőforráshoz, amelyhez hozzáférni akar, majd felhasználja az erőforrást, végül felhasználás után felszabadítja az erőforrást. Tegyük fel, hogy sok folyamat egyszerre próbál hozzáférni egy erőforráshoz, így nehéz helyzetbe hozni egy erőforrás biztosítását az összes folyamathoz egyszerre egy ilyen helyzetben a holtpontnak nevezett koncepció felmerül. Ezért ez a cikk leírja, hogyan történik a holtpont és hogyan lehet leküzdeni ezt a holtpontot.

Mi az a holtpont az operációs rendszerben?

Meghatározás: A holt-zár egy olyan helyzet, amikor két vagy több processzor vár valamilyen esemény bekövetkezésére, de az ilyen események, amelyek nem történnek meg, holtpont állapotúak, és állítólag a processzorok holtpontban vannak. Tegyünk fel például egy valós idejű forgatókönyvet, ahol két A és B autó van, amelyeket két egyéni sofőr vezet egyirányú úton. Most az a helyzet áll elő, amikor az A autó sofőrje szerint az észak felé halad a helyes irány, míg a B autó sofőrje szerint a déli irány felé halad. De egyik sem mozdul vissza, hogy egy másik autó haladhasson előre, ezt az állapotot holtpontnak nevezzük.




Autó-példa

autó-példa

A jobb megértés érdekében vegyünk egy másik példát, ahol két R1, R2 erőforrás, valamint két P1 és P2 folyamat van, ahol R1 P1-hez és R2 P2-hez van rendelve. Most, ha P1 hozzáférni akar az R2-hez, amint azt már tudjuk, az R2 a P2 birtokában van, és most a P2 hozzáférni akar az R1-hez, ami P1 csak akkor hajt végre, amikor hozzáfér az R2-hez, akkor a P2 is csak akkor hajt végre, amikor hozzáfér az R1-hez, ez a helyzet egy holtpont.



Processzor-példa

processzor-példa

Holtzár feltételek

Az alábbiakban bemutatjuk a négy fontos holtpont állapotot, amelyek akkor fordulnak elő, ha az összes feltétel egyidejűleg fordul elő, és bizonyos esélyek vannak a holtpontra.

Kölcsönös kizárás

Ez azt jelenti, hogy bármilyen erőforrást használunk, egymást kizáró módon kell felhasználni. Ahol csak egy folyamat egyszerre csak egy erőforrást használ. Például a nyomtatási folyamat folyik, és hirtelen egy másik folyamat megpróbálja megszakítani a nyomtatási folyamatot. Tehát itt kölcsönös kizárási helyzetben, csak a nyomtatási feladat befejezése után, csak a következő feladat kerül feldolgozásra. A kölcsönös kirekesztés kiküszöbölhető az erőforrások egyidejű megosztásával, ami gyakorlatilag nem lehetséges.

Kölcsönös kizárás

kölcsönös kizárás

Nincs elővásárlás

Alapján elővásárlási alapú algoritmusok, ha van egy prioritási feladat, amely megpróbálja megszakítani az aktuális feladatot. A megelőző algoritmus, amely az aktuális feladatot tartja, és először végrehajtja az elsőbbségi feladatot, és visszaáll az első feladatához. A fenti példának megfelelően kifejtett helyzet, amikor egy folyamat az erőforrást addig tartja, amíg végrehajtják, vagyis P1 csak végrehajtás után szabadíthatja fel az R1-et, hasonlóan a P2 R2 csak a végrehajtás után. Ha nincs elővásárlás, bekövetkezhet a holtpont.


No-Preempt-Example

nincs elővásárlási példa

Várj és várj

Egy folyamat tartalmaz néhány erőforrást, és további erőforrásokra vár, de ezeket az erőforrásokat valamilyen más folyamat szerzi be. A fenti példából látható, hogy P1 tartja R1-et és várja az R2-t, ahol R2-t P2 szerzi be, és P2 tartja R2-t és várja R1-t, ahol R1-et P1 megszerzi, és várakozási helyzet holtpont következhet be a rendszerben.

Tartás és várás-példa

hold-and-wait-example

Körkörös várakozás

Állítólag a folyamatok halmaza holtpontban van, ha az egyik folyamat egy másik folyamathoz rendelt erőforrást vár, és ez a folyamat egy erőforrást vár, hasonló a fent ismertetett példához, ahol hurok formában van. Ahol P1 vár R2-re és R2 van allokálva P2-re, P2 pedig R1-re és R1-re vár P1-re allokálva, ami egy kör alakú várakozási forma, ha ez a feltétel kielégíti a holtpontot.

Kör-vár-példa

kör-várakozás-példa

Holtzár észlelési algoritmus

Azokban az esetekben, amikor erőforrásokat rendelünk a folyamatokhoz, és az operációs rendszer újra ellenőrzi, hogy holtpont történt-e a rendszerben, vagy sem, 2 fő holtpont-észlelő algoritmust használva

  • Egyetlen eset
  • Az erőforrás típusának több példánya

Egységes

Az egyetlen példány olyan helyzet, amikor a rendszer az összes erőforrás egyetlen példányával rendelkezik. Más néven grafikon-algoritmusra várakozás vagy erőforrás-elosztási gráf. Az erőforrás-elosztási grafikon folyamatok és erőforrások halmazából áll, amelyek két különböző csúcsként vannak ábrázolva. Az erőforrás-elosztási grafikon erőforrásai módosulnak, és grafikonként várakozási formában jelennek meg. Ahol a grafikonra várakozásnak csak olyan folyamatai vannak, amelyek csúcsokként vannak ábrázolva, az alábbiak szerint:

  • Erőforrás-elosztási grafikon: A P1, P2, P3 folyamatok és az R1, R2, R3 erőforrások az erőforrás-allokációs grafikonon vannak ábrázolva.
  • Várjon grafikonra: A grafikonra csak a P1, P2, P3 folyamatokat említik.
  • Ha van ciklusfeltétel, az azt jelenti, hogy ha egy folyamat folyamatosan folyik az egyik irányba, az azt jelenti, hogy kilép a ciklusfeltétel, és várja meg, amíg a grafikon holtpontra kerül.

1. példa: Az alábbi példa azt mutatja, hogy nincs holtpont állapot, mert a grafikonra várva nincs folyamatos áramlás.

Egypéldány-példa1

egypéldány-példa1

2. példa: Holtpontos állapot lépett fel, mert a ciklus P1-től P4-ig folyamatos áramlik.

Egypéldány - 2. példa

egypéldány-példa2

Ha a rendszer nagyon gyakran holtpontra kerül, akkor az észlelési algoritmust gyakran használják. Ha több az észlelési algoritmus használata, akkor több lesz a rezsi és több számítási idő. Ezért ennek leküzdésére az algoritmust hívjuk meg, miután azonos időtartamot megadva így használjuk a gráf súlyát a holtpont kimutatására.

Többféle erőforrástípus

Az erőforrástípus több példánya olyan helyzet, amikor a rendszer az összes erőforrás több példányával rendelkezik, Bankers algoritmusnak is nevezik. A Bankers algoritmus szerint amint a folyamat megkapja az összes szükséges erőforrást, felszabadítja erőforrásait.

Vegyük fontolóra a következő példát, tegyük fel, hogy 3 folyamat van P0, P1, P2 és A, B, C erőforrástípus, ahol A processzor , B lehet nyomtató és C lehet billentyűzet. Az oszlopban a „0” számjegy az erőforrások rendelkezésre állását jelöli.

I. Eset: Tegyük fel, hogy ha a feltételkérést „000” feltételnek vesszük, amely jelen van a P0-ban és a P2-ben, akkor ellenőriznünk kell, hogy melyik kérés teljesül, a P0 folyamatok kiosztás után felszabadítják a folyamatokat, majd a következő P2 folyamatok kiosztás után felszabadulnak. Ilyen módon, egy sorozatban, egyesével a folyamat felszabadítja a P0, P2, P3, P1, P4 sorozatban. Végül a rendelkezésre álló erőforrásokat P7, P2, P6 formában kapjuk meg. A rendelkezésre álló sorrend olyan állapot, amikor nincs holtpont.

Bankárok-algoritmus-példa1

bankárok-algoritmus-példa1

Házak (ii): Tegyük fel, hogy ha P2 001 helyett 000, akkor most alkalmazza a bankár algoritmusát a holtpont állapotának ellenőrzésére, ahol az egyetlen P0 végrehajtásra kerül mind az öt folyamat között. Ezért P1, P2, P3, P4 holtpontban vannak, kivéve P0.

Bankárok-példa2

bankárok-példa2

A holtpont alkalmazásai

A holtpont alkalmazásai valós idejű példával magyarázhatók az online vizsgaeredményekre, ahol több hallgató megpróbálja elérni az egyetem honlapját a kiadás időpontjában. Megfigyelhetjük, hogy időnként a weboldal nem töltődik be egyszerre több felhasználó számára, ez egy holtpont. Ez megoldható bármelyik algoritmus használatával.

Előnyök

A holtpont előnyei

  • A holtpont elkerülése során nem figyelhető meg elővásárlás
  • Nincs késés a folyamatban

Hátrányok

A holtpont hátránya az

  • A felhasználandó erőforrást előzetesen ismerni kell
  • A folyamat blokkolása hosszú ideig
  • Az elővásárlási veszteségek öröklődnek.

Ez a cikk áttekintést nyújt arról, hogy hogyan következik be a holtpont, ha két vagy több folyamat van, és a három feltétel, amely a holtpont létrejöttét okozza, valamint a kétféle algoritmus, nevezetesen az erőforrás-megosztási algoritmus, amely észleli, hogy létezik holtpont állapot és a bankárok algoritmusa, amely holtpont elkerülési algoritmus. Itt van a kérdés: 'Mi történik, ha a holtpontot figyelmen kívül hagyják?'.