Mutex at Semaphore

Anonim

Mutex vs Semaphore

Ang Mutex ay ginagamit upang magbigay ng serialized access sa isang bahagi ng isang re-entrant code na hindi maaaring maisakatuparan sa kahanay ng higit sa isang thread. Tinitiyak ng isang mutex na maaari lamang i-access ng isang code ang seksyon ng kinokontrol sa isang pagkakataon. Upang makakuha ng access, iba pang mga code ay ginawa upang maghintay hanggang sa lumabas ang unang code. Maaari mong isaalang-alang ito upang maging tulad ng isang susi sa isang silid. Ang unang taong napupunta muna ng access sa key na iyon. Hanggang sa oras na bumalik ang tao, walang makakapasok sa silid na iyon.

Ang Semaphore ay nagbibigay ng access sa isang shared resource sa isang bilang ng mga gumagamit nang sabay-sabay. Habang ang bilang ng mga user na nag-access sa pagtaas ng mapagkukunan, binabawasan ang bilang ng semaphore. Sa sandaling magsimula ang mga gumagamit na ilalabas ang mapagkukunan, ang bilang ng semaphore ay nagsisimula na muling tumataas. Ginagamit ito ng mga application na nangangailangan ng pag-synchronize. Ang bilang ng mga kasabay na mga gumagamit ay pinaghihigpitan batay sa limitasyon ng semaphore. Ang isang semaporo ay maaaring iisipin bilang isang bungkos ng katulad na mga susi sa katulad na mga kandado sa isang silid, ngunit ang mga key na ito ay limitado sa bilang. Ang mga taong may mga susi na ito ay maaaring makapagbahagi ng silid.

Pagkakaiba sa pagitan ng mutex at semaporo:

1. Mutex ay ginagamit para sa kapwa pagbubukod samantalang ang semaphore ay nakakahanap ng utility nito sa parehong kaganapan

abiso at kapwa pagbubukod.

2. Mutex ay nagbibigay ng serial access sa mga karaniwang mapagkukunan samantalang ang semaphore ay naglalagay ng limitasyon sa

ang bilang ng mga kasabay na pag-access.

3. Ang isang mutex gumagana sa isang thread sa isang pagkakataon habang semaphore namamahala ng maramihang mga thread

magkasama.

4. Mutex ay may isang konsepto ng isang may-ari kung saan ang proseso na nag-lock ang mutex ay maaari lamang

buksan muli ito. Wala sa iba pang mga proseso ang magagawa nito. Ngunit sa kaso ng semaporo, ganoon

Ang mga paghihigpit ay hindi umiiral.

5. Ang isang mutex ay isang mekanismo ng pagsasara kung saan ang isang semaporo ay isang mekanismo ng pagbibigay ng senyas na may

paggalang sa pag-synchronize ng access sa isang mapagkukunan.

Buod:

1. Sa kabuuan at sa teorya, parehong mutex at semaporo ay pareho. Maaaring isa

ipinatupad gamit ang iba pang, ngunit kapwa pareho ang iba.

2. Ang isang mutex ay walang anuman kundi isang semaporo na may halaga na halaga na katumbas ng isa.

3. Ang mutex ay isang semaporo na may mga karagdagang tampok tulad ng pagmamay-ari at prayoridad na pagbabaligtad

proteksyon.

4. Ang isang semaporo ay isang abstract uri ng data na kumokontrol ng access sa isang karaniwang mapagkukunan sa pamamagitan ng

maramihang mga proseso sa isang kahilera programming kapaligiran.

5. Nakikita ng Semaphore ang paggamit nito sa maraming mga operating system bilang pag-synchronize primitive.

6. Ang parehong mutex at semaporo ay mga mapagkukunan ng kernel na ginagamit para sa layunin ng

pag-synchronize.