Panimula sa DEADLOCK sa Operating System

Ano ang Deadlock?

Baliw ay isang sitwasyon na nangyayari sa OS kapag ang anumang proseso ay pumasok sa isang naghihintay na estado dahil ang isa pang proseso ng paghihintay ay humahawak ng hinihingi na mapagkukunan. Ang Deadlock ay isang pangkaraniwang problema sa multi-processing kung saan maraming proseso ang nagbabahagi ng isang tukoy na uri ng kapwa eksklusibong mapagkukunan na kilala bilang isang soft lock o software.

Sa tutorial ng operating system na ito, matututunan mo:

Halimbawa ng Deadlock

  • Ang isang halimbawa sa totoong mundo ay ang trapiko, na papunta lamang sa isang direksyon.
  • Dito, ang isang tulay ay itinuturing na isang mapagkukunan.
  • Kaya, kapag nangyari ang Deadlock, madali itong malulutas kung ang isang kotse ay naka-back up (Pre Pre resources at rollback).
  • Maraming mga kotse ang maaaring kailangang mai-back up kung maganap ang isang sitwasyon na blocklock.
  • Kaya posible ang gutom.

Halimbawa ng baliw



Ano ang paghihintay ng Circular?

Ang isang proseso ay naghihintay para sa mapagkukunan, na kung saan ay gaganapin ng pangalawang proseso, na naghihintay din para sa mapagkukunang hinawakan ng pangatlong proseso atbp. Ito ay magpapatuloy hanggang sa huling proseso ay naghihintay para sa isang mapagkukunan na hawak ng unang proseso. Lumilikha ito ng isang bilog na kadena.

Halimbawa, ang Proseso A ay inilalaan Mapagkukunan B habang humihiling ito ng Pinagmumulan A. Sa parehong paraan, ang Proseso B ay inilalaan Resource A, at humihiling ito ng Mapagkukunan B. Lumilikha ito ng isang pabilog na loop ng paghihintay.

Halimbawa ng Circular wait

Halimbawa, ang isang computer ay may tatlong USB drive at tatlong proseso. Ang bawat isa sa tatlong mga proseso ay nagawang hawakan ang isa sa mga USB drive. Kaya, kapag ang bawat proseso ay humiling ng isa pang pagmamaneho, ang tatlong proseso ay magkakaroon ng sitwasyon na blocklock dahil ang bawat proseso ay naghihintay para sa paglabas ng USB drive, na kasalukuyang ginagamit. Magreresulta ito sa isang pabilog na kadena.

Halimbawa ng bilog na paghihintay

Pagtuklas ng Deadlock

Ang isang pangyayari sa deadlock ay maaaring napansin ng tagapag-iskedyul ng mapagkukunan. Ang isang tagapag-iskedyul ng mapagkukunan ay tumutulong sa OS na subaybayan ang lahat ng mga mapagkukunan na inilalaan sa iba't ibang mga proseso. Kaya, kapag may napansin na isang deadlock, maaari itong malutas gamit ang mga ibinigay na pamamaraan sa ibaba:

Pag-iwas sa Deadlock:

Mahalagang maiwasan ang isang bara bago ito maganap. Sinusuri ng system ang bawat transaksyon bago ito naisakatuparan upang matiyak na hindi nito hahantong ang mga sitwasyong baliw. Tulad na kahit isang maliit na pagbabago upang mangyari patay na ang isang operasyon na maaaring humantong sa Deadlock sa hinaharap ay hindi rin nito pinapayagan ang proseso upang maisagawa.

Ito ay isang hanay ng mga pamamaraan para matiyak na hindi bababa sa isa sa mga kundisyon ang hindi maaaring humawak.

Walang paunang aksyon:

Walang Pag-iingat - Ang isang mapagkukunan ay maaaring palabasin nang kusang-loob sa pamamagitan ng proseso na humahawak dito matapos ang prosesong iyon ay natapos ang gawain nito

  • Kung ang isang proseso na nagtataglay ng ilang mga mapagkukunan ay humiling ng isa pang mapagkukunan na hindi kaagad mailalaan dito, sa sitwasyong iyon, ilalabas ang lahat ng mga mapagkukunan.
  • Ang mga mapagpipiling mapagkukunan ay nangangailangan ng listahan ng mga mapagkukunan para sa isang proseso na naghihintay.
  • Ang proseso ay i-restart lamang kung maaari nitong makuha ang dating mapagkukunan at isang bago na hinihiling nito.
  • Kung ang proseso ay humihiling ng ilang iba pang mapagkukunan, kapag ito ay magagamit, pagkatapos ay ibinigay ito sa proseso ng paghingi.
  • Kung hawak ito ng isa pang proseso na naghihintay para sa isa pang mapagkukunan, pinakawalan namin ito at ibibigay ito sa proseso ng paghiling.

Damayang Pagbubukod:

Ang Pagbubukod ng Mutual ay isang buong anyo ng Mutex. Ito ay isang espesyal na uri ng binary semaphore na ginagamit para sa pagkontrol sa pag-access sa ibinahaging mapagkukunan. Nagsasama ito ng isang mekanismo ng pamana ng prayoridad upang maiwasan ang pinalawig na mga problema sa pagbabaligtad ng priyoridad. Pinapayagan ang kasalukuyang mas mataas na mga pangunahing gawain na panatilihin sa naka-block na estado para sa pinakamaikling oras na posible.

Ang mga mapagkukunang ibinahagi tulad ng mga read-only na file ay hindi kailanman hahantong sa mga deadlock, ngunit ang mga mapagkukunan, tulad ng mga printer at tape drive, ay nangangailangan ng eksklusibong pag-access ng isang solong proseso.

Hawakan at Maghintay:

Sa kondisyong ito, dapat ihinto ang mga proseso mula sa paghawak ng iisa o maraming mapagkukunan habang sabay na naghihintay para sa isa o higit pang iba.

Hintay sa Paikot:

Nagpapataw ito ng isang kabuuang pag-order ng lahat ng mga uri ng mapagkukunan. Kinakailangan din ng paikot na paghihintay na ang bawat proseso ay humihiling ng mga mapagkukunan sa pagtaas ng pagkakasunud-sunod ng bilang.

Pag-iwas sa Deadlock

Mas mainam na iwasan ang isang deadlock sa halip na gumawa ng aksyon pagkatapos maganap ang Deadlock. Kailangan nito ng karagdagang impormasyon, tulad ng kung paano dapat gamitin ang mga mapagkukunan. Ang pag-iwas sa deadlock ay ang pinakasimpleng at pinaka kapaki-pakinabang na modelo na idineklara ng bawat proseso ang maximum na bilang ng mga mapagkukunan ng bawat uri na maaaring kailanganin nito.

Mga Algorithm na Pag-iwas

Ang algorithm ng deadlock-iwas ay makakatulong sa iyo upang ma-dynamic na masuri ang estado ng paglalaan ng mapagkukunan upang hindi kailanman maging isang sitwasyon na paikot-paghintay.

Isang solong halimbawa ng isang uri ng mapagkukunan.

  • Gumamit ng isang graph na paglalaan ng mapagkukunan
  • Kinakailangan ang mga pag-ikot na sapat para sa Deadlock

Maramihang mga pagkakataon ng isang uri ng mapagkukunan.

  • Ang mga pag-ikot ay kinakailangan ngunit hindi sapat para sa Deadlock.
  • Gumagamit ng algorithm ng banker

Pagkakaiba sa Pagutom at Deadlock

Narito, ang ilang mahahalagang pagkakaiba sa pagitan ng Deadlock at gutom:

Baliw Gutom
Nangyayari ang sitwasyong baliw kapag na-block ang isa sa mga proseso.Ang gutom ay isang sitwasyon kung saan ang lahat ng mga proseso ng mababang priyoridad ay na-block, at ang mga proseso ng mataas na priyoridad ay naisagawa.
Ang Deadlock ay isang walang katapusang proseso.Ang gutom ay isang mahabang paghihintay ngunit hindi isang walang katapusang proseso.
Ang bawat Deadlock ay laging may gutom.Ang bawat gutom ay hindi kinakailangang magkaroon ng isang bara.
Nangyayari ang Deadlock pagkatapos ng Mutual na pagbubukod, paghawak at paghintay. Dito, ang preemption at paikot na paghihintay ay hindi nangyayari nang sabay-sabay.Nangyayari ito dahil sa hindi mapigil na priyoridad at pamamahala ng mapagkukunan.

Mga kalamangan ng Deadlock

Narito, ang mga kalamangan / pakinabang ng paggamit ng pamamaraang Deadlock

  • Ang sitwasyong ito ay gumagana nang maayos para sa mga proseso na nagsasagawa ng iisang pagsabog ng aktibidad
  • Hindi kinakailangan ng preemption para sa Deadlock.
  • Maginhawang pamamaraan kapag inilapat sa mga mapagkukunan na ang estado ay maaaring mai-save at maibalik nang madali
  • Posibleng ipatupad sa pamamagitan ng mga pagsusuri sa compile-time
  • Nangangailangan ng walang run-time na pagkalkula dahil ang problema ay nalulutas sa disenyo ng system

Mga disadvantages ng pamamaraan ng Deadlock

Narito, ang mga kahinaan / sagabal ng paggamit ng paraan ng deadlock

  • Naantala ang pagsisimula ng proseso
  • Dapat malaman ng mga proseso ang hinaharap na kailangan ng mapagkukunan
  • Mas madalas na nag-pre-empts kaysa kinakailangan
  • Hindi pinapayagan ang dis-karagdagang mga kahilingan sa mapagkukunan
  • Mga panloob na pagkalugi sa preemption.

Buod:

  • Kahulugan ng Deadlock: Ito ay isang sitwasyon na nangyayari sa OS kapag ang anumang proseso ay pumasok sa isang naghihintay na estado dahil ang isa pang proseso ng paghihintay ay humahawak ng hinihingi na mapagkukunan
  • Nangyayari ang paikot na paghihintay kapag ang isang proseso ay naghihintay para sa mapagkukunan, na hawak ng pangalawang proseso, na naghihintay din para sa mapagkukunang hinawakan ng pangatlong proseso atbp.
  • Ang isang pangyayari sa deadlock ay maaaring napansin ng tagapag-iskedyul ng mapagkukunan.
  • Mahalagang maiwasan ang isang bara bago ito maganap.
  • Ang isang mapagkukunan ay maaaring palabasin nang kusang-loob sa pamamagitan ng proseso na humahawak dito matapos ang prosesong iyon ay natapos na nitong gawain.
  • Ang Pagbubukod ng Mutual ay isang buong anyo ng Mutex. Ito ay isang espesyal na uri ng binary semaphore na ginagamit para sa pagkontrol sa pag-access sa ibinahaging mapagkukunan.
  • Ang paghawak at paghihintay ay isang kundisyon kung saan dapat ihinto ang mga proseso mula sa paghawak ng iisa o maraming mapagkukunan habang sabay na naghihintay para sa isa o higit pang iba.
  • Ang pag-iwas sa deadlock ay ang pinakasimpleng at pinaka kapaki-pakinabang na modelo na idineklara ng bawat proseso ang maximum na bilang ng mga mapagkukunan ng bawat uri na maaaring kailanganin nito.
  • Ang algorithm ng deadlock-iwas ay makakatulong sa iyo upang ma-dynamic na masuri ang estado ng paglalaan ng mapagkukunan upang hindi kailanman maging isang sitwasyon na paikot-paghintay.
  • Ang Deadlock ay isang walang hanggan na proseso, samantalang ang gutom ay isang mahabang paghihintay ngunit hindi isang walang katapusan na proseso.