Tofauti Kati ya Semaphore na Monitor

Tofauti Kati ya Semaphore na Monitor
Tofauti Kati ya Semaphore na Monitor

Video: Tofauti Kati ya Semaphore na Monitor

Video: Tofauti Kati ya Semaphore na Monitor
Video: difference between lilo and grub | what is grub | What is LILO? | Lec - 5 2024, Novemba
Anonim

Semaphore vs Monitor

Semaphore ni muundo wa data unaotumika kuhakikisha kuwa michakato mingi haifikii rasilimali ya kawaida au sehemu muhimu kwa wakati mmoja, katika mazingira ya upangaji programu sambamba. Semaphores hutumiwa kuzuia kufuli zilizokufa na hali ya mbio. Monitor ni muundo wa lugha ya programu ambayo pia hutumiwa kuzuia michakato mingi ya kufikia rasilimali ya pamoja kwa wakati mmoja, kwa hivyo inahakikisha kutengwa kwa pande zote. Wachunguzi hutumia vigeu vya masharti ili kufanikisha kazi hii.

Semaphore ni nini?

Semaphore ni muundo wa data ambao hutumiwa kutoa utengaji wa pande zote kwa sehemu muhimu. Semaphores kimsingi inasaidia shughuli mbili zinazoitwa wait (kihistoria inajulikana kama P) na ishara (kihistoria inajulikana kama V). Operesheni ya kusubiri inazuia mchakato hadi semaphore ifunguliwe na operesheni ya ishara inaruhusu mchakato mwingine (thread) kuingia. Kila semaphore inahusishwa na foleni ya michakato ya kusubiri. Wakati operesheni ya kusubiri inaitwa na thread, ikiwa semaphore imefunguliwa, thread inaweza kuendelea. Ikiwa semaphore imefungwa wakati operesheni ya kusubiri inaitwa na thread, thread imefungwa na inapaswa kusubiri kwenye foleni. Uendeshaji wa ishara hufungua semaphore na ikiwa kuna thread tayari inasubiri kwenye foleni, mchakato huo unaruhusiwa kuendelea na ikiwa hakuna nyuzi zinazosubiri kwenye foleni ishara inakumbukwa kwa nyuzi zinazofuata. Kuna aina mbili za semaphores zinazoitwa mutex semaphores na semaphores za kuhesabu. Semaphores za Mutex huruhusu ufikiaji mmoja wa rasilimali na kuhesabu semaphores huruhusu nyuzi nyingi kufikia rasilimali (ambayo ina vitengo kadhaa vinavyopatikana).

Monitor ni nini?

Kichunguzi ni muundo wa lugha ya programu ambayo hutumiwa kudhibiti ufikiaji wa data iliyoshirikiwa. Wachunguzi hujumuisha miundo ya data iliyoshirikiwa, taratibu (zinazofanya kazi kwenye miundo ya data iliyoshirikiwa) na usawazishaji kati ya ombi la utaratibu unaofanana. Kichunguzi huhakikisha kuwa data yake haikabiliwi na ufikiaji usio na mpangilio na huhakikisha kwamba mikanyagio (ambayo inafikia data ya kifuatiliaji kupitia taratibu zake) inaingiliana kwa njia halali. Mfuatiliaji huhakikisha kutengwa kwa pande zote kwa kuruhusu nyuzi moja tu kutekeleza utaratibu wowote wa kufuatilia kwa wakati fulani. Ikiwa thread nyingine inajaribu kuomba njia katika kufuatilia, wakati thread tayari inatekeleza utaratibu katika kufuatilia, basi utaratibu wa pili umezuiwa na unapaswa kusubiri kwenye foleni. Kuna aina mbili za wachunguzi wanaoitwa wachunguzi wa Hoare na wachunguzi wa Mesa. Zinatofautiana hasa katika kuratibu semantiki zao.

Kuna tofauti gani kati ya Semaphore na Monitor?

Ingawa semaphore na vidhibiti vinatumika kufikia kutengwa katika mazingira sawia ya upangaji programu, vinatofautiana katika mbinu zinazotumiwa kufanikisha kazi hii. Katika vichunguzi, msimbo unaotumiwa kufikia kutengwa kwa pande zote mbili uko katika sehemu moja na umeundwa zaidi, huku msimbo wa semaphore unasambazwa kama simu za kusubiri na kufanya ishara. Pia, ni rahisi sana kufanya makosa wakati wa kutekeleza semaphores, wakati kuna nafasi ndogo sana ya kufanya makosa wakati wa kutekeleza wachunguzi. Zaidi ya hayo, vidhibiti hutumia vigeu vya hali, ilhali semaphores hazifanyi hivyo.

Ilipendekeza: