Pagkakaiba sa pagitan ng Semaphore at Monitor sa OS

May -Akda: Laura McKinney
Petsa Ng Paglikha: 1 Abril 2021
I -Update Ang Petsa: 4 Mayo 2024
Anonim
Things You Didn’t Know About Felix Mallard
Video.: Things You Didn’t Know About Felix Mallard

Nilalaman


Parehong pinapayagan ng Semaphore at Monitor ang mga proseso na ma-access ang ibinahaging mga mapagkukunan nang magkasama. Parehong ang proseso ng pag-synchronise ng proseso. Sa halip, ang mga ito ay ibang-iba sa bawat isa. Saan Semaphore ay isang variable na integer na maaaring pinamamahalaan lamang sa pamamagitan ng paghihintay () at signal () na operasyon bukod sa pag-uumpisa. Sa kabilang banda, ang Monitor uri ay isang abstract na uri ng data na ang konstruksyon ay nagbibigay-daan sa isang proseso upang maisaaktibo nang sabay-sabay. Sa artikulong ito, tatalakayin natin ang mga pagkakaiba sa pagitan ng semaphore at subaybayan sa tulong ng tsart ng paghahambing na ipinakita sa ibaba.

  1. Tsart ng paghahambing
  2. Kahulugan
  3. Pangunahing Pagkakaiba
  4. Konklusyon

Tsart ng paghahambing

Batayan para sa PaghahambingSemaphore Monitor
Pangunahing Ang Semaphores ay isang variable na integer S.Ang monitor ay isang abstract na uri ng data.
PagkilosAng halaga ng Semaphore S ay nagpapahiwatig ng bilang ng mga ibinahaging mapagkukunang availabe sa systemAng uri ng Monitor ay naglalaman ng mga ibinahaging variable at ang hanay ng mga pamamaraan na nagpapatakbo sa ibinahaging variable.
Pag-accessKapag ang anumang proseso na ma-access ang ibinahaging mapagkukunan ay nagsasagawa ng paghihintay () na operasyon sa S at kapag pinakawalan nito ang ibinahaging mapagkukunan ay nagsasagawa ito ng signal () na operasyon sa S.Kung nais ng anumang proseso na ma-access ang ibinahaging variable sa monitor, kinakailangang ma-access ito sa pamamagitan ng mga pamamaraan.
Variable ng kondisyonAng Semaphore ay walang mga variable na kondisyon.Ang monitor ay may mga variable na kondisyon.


Kahulugan ng Semaphore

Ang pagiging isang tool sa pag-synchronise ng proseso, Semaphore ay isang variable na integer S. Ang variable na integer na S ay sinimulan sa bilang ng mga mapagkukunan naroroon sa system. Ang halaga ng semaphore S ay maaaring mabago lamang ng dalawang pag-andar maghintay() at signal() bukod sa inisyal.

Ang operasyon () at signal () na operasyon ay nagpabago sa halaga ng semaphore S nang walang pasubali. Na nangangahulugang kapag binago ng isang proseso ang halaga ng semaphore, walang ibang proseso na maaaring sabay-sabay na baguhin ang halaga ng semaphore. Karagdagan, ang operating system ay nakikilala ang semaphore sa dalawang kategorya ng pagbibilang ng mga semaphores at Binary semaphore.

Sa Nagbibilang ng Semaphore, ang halaga ng semaphore S ay sinisimulan sa bilang ng mga mapagkukunan na naroroon sa system. Sa tuwing nais ng isang proseso na ma-access ang ibinahaging mga mapagkukunan, gumaganap ito maghintay() operasyon sa semaphore na mga pagkukulang ang halaga ng semaphore ng isa. Kapag pinakawalan nito ang ibinahaging mapagkukunan, gumaganap ito ng signal() operasyon sa semaphore na pagdaragdag ang halaga ng semaphore ng isa. Kapag ang bilang ng semaphore ay pupunta 0, ibig sabihin lahat ng mga mapagkukunan ay nasasakop sa pamamagitan ng mga proseso. Kung ang isang proseso ay kailangang gumamit ng isang mapagkukunan kapag ang bilang ng semaphore ay 0, naghihintay ito () at kumuha naka-block hanggang sa isang proseso na ginagamit ang mga ibinahaging mapagkukunan ay naglalabas nito at ang halaga ng semaphore ay nagiging higit sa 0.


Sa Binary semaphore, ang halaga ng semaphore ay nasa pagitan ng 0 at 1. Ito ay katulad ng mutex lock, ngunit ang mutex ay isang mekanismo ng pag-lock samantalang, ang semaphore ay isang mekanismo ng senyas. Sa binary semaphore, kung nais ng isang proseso na ma-access ang mapagkukunan ay nagsasagawa ng paghihintay () na operasyon sa semaphore at mga pagkukulang ang halaga ng semaphore mula 1 hanggang 0. Kapag ang proseso ay naglalabas ng mapagkukunan, nagsasagawa ito ng a signal() operasyon sa semaphore at dagdagan ang halaga nito sa 1. Kung ang halaga ng semaphore ay 0 at isang proseso na nais na ma-access ang mapagkukunan na ito ay nagsasagawa ng paghihintay () operasyon at hadlangan ang sarili hanggang sa kasalukuyang proseso na ginagamit ang mga mapagkukunan na naglalabas ng mapagkukunan.

Kahulugan ng Monitor

Upang malampasan ang mga pagkakamali sa tiyempo na nangyayari habang gumagamit ng semaphore para sa proseso ng pag-synchronise, ipinakilala ng mga mananaliksik ang isang mataas na antas ng pagbubuo ng pag-synchronise sa i.e. uri ng monitor. Isang uri ng monitor ay isang uri ng data na abstract na ginagamit para sa proseso ng pag-synchronise.

Ang pagiging isang abstract na uri ng monitor ng uri ng monitor ay naglalaman ng ibinahagi ang mga variable na data iyon ay ibabahagi ng lahat ng mga proseso at tinukoy ng ilang programmer operasyon na nagpapahintulot sa mga proseso na maisagawa sa magkabilang pagsasama sa loob ng monitor. Ang isang proseso ay maaari hindi direktang ma-access ang ibinahaging data variable sa monitor; ang proseso ay dapat ma-access ito sa pamamagitan ng mga pamamaraan tinukoy sa monitor na nagbibigay-daan sa isang proseso lamang upang ma-access ang ibinahaging variable sa isang monitor nang sabay-sabay.

Ang syntax ng monitor ay sumusunod:

monitor monitor_name {// shared variable declarations procedure P1 (..) {} procedure P2 (..) {} procedure Pn (..) {} initialization code (..))

Ang monitor ay isang konstruksyon tulad ng isang proseso lamang ang aktibo sa isang oras sa loob ng monitor. Kung sinusubukan ng ibang proseso na ma-access ang ibinahaging variable sa monitor, ito ay naharang at naka-linya sa pila upang makuha ang pag-access sa ibinahaging data kapag na-access ito ng proseso.

Mga variable na kondisyon ay ipinakilala para sa karagdagang mekanismo ng pag-synchronise. Ang kondisyong variable nagbibigay-daan sa isang proseso na maghintay sa loob ng monitor at pinapayagan ang isang proseso ng paghihintay na maipagpatuloy ang kaagad kapag ang iba pang proseso ay nagpapalabas ng mga mapagkukunan.

Ang may variable na kondisyon maaari lamang humimok ng dalawang operasyon maghintay() at signal(). Saan kung isang proseso Humingi si P ng paghihintay () operasyon ito ay nasuspinde sa monitor hanggang sa iba pang proseso Q senyas ng senyas () pagpapatakbo i.e. isang senyas () operasyon na hinihimok ng isang proseso ay ipinagpapatuloy ang nasuspinde na proseso.

  1. Ang pangunahing pagkakaiba sa pagitan ng semaphore at monitor ay ang semaphore ay isang variable na integer S na nagpapahiwatig ng bilang ng mga mapagkukunan na magagamit sa system samantalang, ang monitor ay ang uri ng data na abstract na nagbibigay-daan sa isang proseso lamang upang isagawa sa kritikal na seksyon sa bawat oras.
  2. Ang halaga ng semaphore ay maaaring mabago ng maghintay () at signal () operasyon lang. Sa kabilang banda, ang isang monitor ay may ibinahaging variable at ang mga pamamaraan lamang sa pamamagitan ng mga naibahagi na variable ay maaaring ma-access ng mga proseso.
  3. Sa Semaphore kapag nais ng isang proseso na ma-access ang mga ibinahaging mapagkukunan na ginagawa ng proseso maghintay() operasyon at hadlangan ang mga mapagkukunan at kapag pinakawalan nito ang mga mapagkukunan na ginagawa nito signal() operasyon. Sa mga monitor kung ang isang proseso ay kailangang ma-access ang ibinahaging mga mapagkukunan, dapat itong ma-access ang mga ito sa pamamagitan ng mga pamamaraan sa monitor.
  4. Ang uri ng monitor ay variable ng kondisyon na wala sa semaphore.

Konklusyon:

Ang mga monitor ay madaling ipatupad kaysa sa semaphore, at may kaunting pagkakataong magkamali sa monitor kung ihahambing sa mga semaphores.