Ano ang Deadlock sa Operating System: Mga Kundisyon at Algorithm sa Pagtuklas

Subukan Ang Aming Instrumento Para Sa Pagtanggal Ng Mga Problema





Ang pangunahing layunin ng isang operating system ay upang magbigay ng tamang komunikasyon sa pagitan ng mga mapagkukunan ng hardware at software at magbigay din ng mga karaniwang serbisyo sa mga programa. Kung nais ng isang proseso ng operating system na i-access ang anumang mapagkukunan, una itong nagpapadala ng isang kahilingan sa partikular na mapagkukunan na nais nitong i-access, pagkatapos ay ginagamit nito ang mapagkukunan at sa wakas ay naglalabas ng mapagkukunan pagkatapos magamit. Para ipalagay maraming mga proseso ang sumusubok na ma-access ang isang mapagkukunan nang sabay, naging mahirap na magbigay ng isang mapagkukunan sa lahat ng mga proseso sa isang pagkakataon sa isang sitwasyong lumitaw ang konsepto na pinangalanang deadlock. Samakatuwid inilalarawan ng artikulong ito kung paano nangyayari ang deadlock at kung paano mapagtagumpayan ang sitwasyong ito ng pagkablock.

Ano ang Deadlock sa Operating System?

Kahulugan: Ang Dead-Lock ay isang sitwasyon kung saan naghihintay ang dalawa o higit pang mga prosesor para sa ilang kaganapan, ngunit ang mga naturang kaganapan na hindi nangyari ay isang kalagayan na patay, at ang mga nagpoproseso ay sinabi na nasa isang patay na estado. Halimbawa, ipagpalagay natin ang isang real-time na sitwasyon, kung saan mayroong dalawang kotse na A & B, na hinimok ng dalawang indibidwal na mga driver sa isang one-way na kalsada. Ngayon lumitaw ang sitwasyon kung saan sinabi ng drayber ng Car A na ang kanyang paglipat patungo sa hilaga ay isang tamang direksyon, habang ang driver ng Car B ay nagsabing siya ay lumilipat patungo sa timog na direksyon ay tama. Ngunit alinman sa isa ay hindi gumagalaw upang payagan ang ibang kotse na sumulong, ang kondisyong ito ay tinatawag na isang kondisyon na patay.




Car-Halimbawa

car-halimbawa

Para sa mas mahusay na pag-unawa isaalang-alang natin ang isa pang halimbawa kung saan mayroong dalawang mapagkukunan R1, R2, at dalawang proseso ng P1 at P2, kung saan ang R1 ay nakatalaga sa P1 at ang R2 ay nakatalaga sa P2. Ngayon kung nais ng P1 na ma-access ang R2, tulad ng alam na natin na ang R2 ay hawak ng P2, at ngayon ay nais ng P2 na i-access ang R1, na kung saan ay P1 lamang ang na-execute kapag na-access ito sa R2, mayroon ding P2 na executes lamang kapag na-access sa R1 ang sitwasyong ito ay isang patay na kalagayan.



Halimbawa ng Processor

halimbawa ng processor

Mga Kundisyon na Dead-Lock

Ang mga sumusunod ay ang apat na mahahalagang kundisyon ng deadlock na magaganap kung ang lahat ng mga kundisyon ay nangyayari nang sabay-sabay may mga tiyak na pagkakataon na maganap ang deadlock.

Damayang Pagbubukod

Nangangahulugan ito na anuman ang mapagkukunan na ginagamit namin ito ay dapat gamitin sa isang kapwa eksklusibong paraan. Kung saan ang isang proseso lamang ang gumagamit ng isang mapagkukunan nang sabay-sabay lamang. Halimbawa, ang proseso ng pagpi-print ay nangyayari at biglang may isa pang proseso na sumusubok na matakpan ang proseso ng pag-print. Kaya't dito sa sitwasyon ng pagbubukod ng isa, pagkatapos lamang makumpleto ang gawain sa pag-print pagkatapos lamang ang susunod na gawain ay naproseso. Ang pag-iisa sa kapwa ay maaaring matanggal sa pamamagitan ng pagbabahagi ng mga mapagkukunan nang sabay, na kung saan ay hindi posible praktikal.

Kapwa-Pagbubukod

kapwa-pagbubukod

Walang Pre-emption

Ayon kay paunang pag-alis batay sa mga algorithm, kung mayroong isang priyoridad na gawain na sumusubok na makagambala sa kasalukuyang gawain. Ang pre-emptive algorithm ay hawak nito ang kasalukuyang gawain at unang naisakatuparan ang priyoridad na gawain at bumalik sa unang gawain nito. Ang isang sitwasyon ay ipinaliwanag ayon sa halimbawa sa itaas kung saan ang isang proseso ay humahawak sa mapagkukunan hangga't ito ay naisakatuparan, iyon ay P1 na maaaring palabasin ang R1 pagkatapos lamang maipatupad, katulad ng P2 na bitawan ang R2 pagkatapos lamang maipatupad. Kung walang pre-emption maaaring maganap ang bangka.


Walang-Pag-iingat-Halimbawa

walang-preemption-halimbawa

Hawakan at Maghintay

Ang isang proseso ay may hawak na ilang mga mapagkukunan at naghihintay para sa karagdagang mga mapagkukunan ngunit ang mga mapagkukunang iyon ay nakuha ng ilang iba pang proseso. Mula sa halimbawa sa itaas, ang P1 ay may hawak na R1 at naghihintay para sa R2, kung saan ang R2 ay nakuha ng P2, at ang P2 ay humahawak ng R2 at naghihintay para sa R1, kung saan ang R1 ay nakuha ng P1 ay isang paghawak at paghihintay na sitwasyon na maaaring mangyari sa system.

Hold-and-Wait-Halimbawa

halimbawa ng paghawak at paghihintay

Maghintay ng Paikot

Ang isang hanay ng mga proseso ay sinasabing nasa kalokohan kung ang isang proseso ay naghihintay para sa isang mapagkukunan na inilalaan sa isa pang proseso at ang prosesong iyon ay naghihintay para sa isang mapagkukunan, ito ay katulad ng ipinaliwanag sa itaas na halimbawa kung saan ito ay nasa loop form. Kung saan ang P1 ay naghihintay para sa R2 at ang R2 ay inilalaan para sa P2 at ang P2 ay naghihintay para sa R1 at R1 na inilalaan para sa P1 na isang pabilog na form ng paghihintay kung masisiyahan ang kondisyong ito sa pagkamatay.

Circular-Wait-Halimbawa

halimbawa ng pabilog-paghihintay

Algorithm ng Detalye ng Dead-Lock

Ang mga kaso kung saan inilalaan namin ang mga mapagkukunan sa mga proseso, at ang recheck ng operating system kung ang isang deadlock ay naganap sa system o hindi gamit ang 2 pangunahing mga algorithm sa pagtuklas ng deadlock, ang mga ito ay

  • Isang halimbawa
  • Maramihang mga pagkakataon ng uri ng mapagkukunan

Single Instance

Ang isang solong halimbawa ay isang sitwasyon kung saan ang isang system ay nagkakaroon ng solong mga pagkakataon ng lahat ng mga mapagkukunan. Kilala rin ito bilang paghintay para sa graph algorithm o grapikong paglalaan ng mapagkukunan. Ang graph ng paglalaan ng mapagkukunan ay binubuo ng isang hanay ng mga proseso at hanay ng mga mapagkukunan na kinakatawan bilang dalawang magkakaibang mga vertex. Ang mga mapagkukunan sa graph ng paglalaan ng mapagkukunan ay binago at kinakatawan bilang paghihintay para sa form ng grap. Kung saan ang paghihintay para sa form ng grap ay may mga proseso lamang na kinakatawan bilang mga vertex tulad ng ipinakita sa ibaba kung saan,

  • Grap ng paglalaan ng mapagkukunan: Ang mga proseso ng P1, P2, P3 at mga mapagkukunan R1, R2, R3 ay kinakatawan sa graph ng paglalaan ng mapagkukunan.
  • Maghintay para sa Grap: Ang Mga Proseso lamang na P1, P2, P3 ang nabanggit sa paghihintay para sa grapiko.
  • Kung mayroong isang kalagayan sa pag-ikot, na kung may tuluy-tuloy na daloy ng isang proseso sa isang direksyon nangangahulugan ito na lumalabas ang kondisyon ng siklo at maghintay para sa grapiko ay nasa isang kondisyon na bara-patay.

Halimbawa 1: Ipinapakita ng halimbawa sa ibaba na walang estado ng deadlock sapagkat walang tuluy-tuloy na daloy na sinusunod sa paghihintay para sa grap.

Single-Instance-Halimbawa1

solong-halimbawa-halimbawa1

Halimbawa 2: Ang kondisyon ng Deadlock ay naganap sapagkat mayroong tuluy-tuloy na daloy ng pag-ikot mula P1 hanggang P4.

Single-Instance - Halimbawa2

solong-halimbawa-halimbawa2

Kung ang deadlock ay madalas na nangyayari sa system kung gayon ang detection algorithm ay madalas na ginagamit. Kung maraming paggamit ng algorithm ng pagtuklas pagkatapos ay magkakaroon ng higit na overhead at mas maraming oras ng pagkalkula. Samakatuwid upang mapagtagumpayan ito, hinihimok namin ang algorithm pagkatapos, na nagbibigay ng isang pantay na tagal ng oras, ito ay kung paano ginagamit ang bigat para sa grap upang matukoy ang deadlock.

Maramihang Mga Pagkakataon ng Uri ng Mapagkukunan

Ang maramihang mga pagkakataon ng uri ng mapagkukunan ay isang sitwasyon kung saan ang isang sistema ay nagkakaroon ng maraming mga pagkakataon ng lahat ng mga mapagkukunan, kilala rin ito bilang Bankers algorithm. Ayon sa algorithm ng Bankers, sa sandaling makuha ng proseso ang lahat ng kinakailangang mapagkukunan nito, pagkatapos ay ilalabas nito ang mga mapagkukunan nito.

Isaalang-alang natin ang sumusunod na halimbawa, ipagpalagay na mayroong 3 proseso ng P0, P1, P2, at uri ng mapagkukunan A, B, C kung saan maaaring maging A CPU , B ay maaaring maging printer at C ay maaaring maging keyboard. Ang mga digit na '0' sa haligi ay kumakatawan sa pagkakaroon ng mga mapagkukunan.

Kaso (i): Ipagpalagay na kung kukunin natin ang kahilingan sa kundisyon ay '000' na kundisyon na naroroon sa P0 at P2, dapat nating suriin kung aling kahilingan ang natupad, ang mga proseso na P0 ay naglalabas ng mga proseso pagkatapos na mailaan, pagkatapos ay ang susunod na proseso ng P2 ay naglalabas pagkatapos na mailaan. Tulad nito, sa isang pagkakasunud-sunod, isa-isang proseso ay naglalabas ng P0, P2, P3, P1, P4 sa isang pagkakasunud-sunod. Panghuli, makakakuha kami ng mga magagamit na mapagkukunan bilang P7, P2, P6. Ang magagamit na pagkakasunud-sunod ay isang kondisyon kung saan walang deadlock.

Bankers-Algorithm-Halimbawa1

bankers-algorithm-halimbawa1

Mga Bahay (ii): Ipagpalagay kung ang P2 ay 001 sa halip na 000, ilapat ngayon ang algorithm ng banker upang suriin ang kalagayan ng deadlock, kung saan ang tanging P0 ay naisakatuparan sa lahat ng 5 proseso. Samakatuwid ang P1, P2, P3, P4 ay nasa deadlock state maliban sa P0.

Bankers-Halimbawa2

bankers-halimbawa2

Mga aplikasyon ng Deadlock

Ang mga application ng deadlock ay maaaring ipaliwanag sa isang real-time na halimbawa ng pagsusuri sa mga resulta sa online, kung saan maraming mga mag-aaral ang nagsisikap na i-access ang kanilang website sa unibersidad sa oras ng paglabas. Maaaring obserbahan ng isang tao na sa mga oras na ang web page ay hindi naglo-load nang paisa-isa sa maraming mga gumagamit, ito ay isang kondisyon na deadlock. Maaari itong mapagtagumpayan gamit ang alinman sa mga algorithm.

Mga kalamangan

Ang mga bentahe ng deadlock ay

  • Walang pre-emption na sinusunod sa pag-iwas sa deadlock
  • Walang pagkaantala sa proseso

Mga Dehado

Ang kawalan ng deadlock ay

  • Ang mapagkukunang gagamitin ay dapat malaman nang maaga
  • Ang pagbara ng proseso sa loob ng mahabang panahon
  • Ang pagkalugi ng pre-emption ay minana.

Ang pangkalahatang-ideya ng artikulong ito tungkol sa kung paano nangyayari ang deadlock kapag mayroong dalawa o higit pang mga proseso at ang tatlong mga kundisyon na kung saan ay ang sanhi para sa isang deadlock, at ang dalawang uri ng mga algorithm na katulad ng pagbabahagi ng algorithm na nakakita na mayroong isang patay na kalagayan at algorithm ng mga bankers na kung saan ay ang deadlock na pag-iwas sa algorithm. Narito ang katanungang 'Ano ang mangyayari kung hindi papansinin ang deadlock?'.