Semafor vs Mutex

Autor: Laura McKinney
Loomise Kuupäev: 4 Aprill 2021
Värskenduse Kuupäev: 10 Mai 2024
Anonim
What is difference between Semaphore and Mutex
Videot: What is difference between Semaphore and Mutex

Sisu

Erinevus semafori ja mutexi vahel on see, et semafor on signaalimismehhanism, samas kui mutex on lukustusmehhanism.


Operatsioonisüsteem on arvutiteaduses kõige olulisem mõiste, opsüsteemis on kaks peamist mõistet semafor ja mutex. Semafori ja muteksi vahel on palju erinevusi. Kui me räägime peamisest erinevusest, siis peamine erinevus semafori ja mutexi vahel on see, et semafor on signaalimismehhanism, samas kui mutex on lukustusmehhanism.

Semafori ja muteksi erinevus tuleneb protsessidest; semafor teostab ootamise () ja signaali () toimingu, selle funktsiooni ülesandeks on teada saada, kas nad on ressursi omandanud või on selle vabastanud. Teisest küljest, kui me räägime mutexist, on mutex lukustusmehhanism.

Semafor on täisarv muutuja S; semafor on signaalimismehhanism. Operatsioonisüsteemis on vaja sünkroonimisriista ja seda opsüsteemis kasutatavat tööriista nimetatakse semaforiks. Semaforil on kaks peamist funktsiooni, mis ootavad (), signaali (). Semafori väärtust muudetakse kahe funktsiooni abil, mis ootavad () ja signaali (). Kui protsess kasutab ressurssi, on semafor ootel () ja kui protsess kasutas ressurssi ja see ressurss on vaba, annab semafor signaali (). Neid ootamise () ja signaali () funktsioone kasutatakse, kuna ressurssi saab korraga kasutada ainult üks protsess. Kahte protsessi ei saa ühte ressurssi anda. Operatsioonisüsteemis on kahte tüüpi semafori, mis on binaarsed semaforid ja loendavad semaforid. Semafori loendamisel on algväärtus olemasolevate ressursside arv. Kui protsess kasutab ressurssi, seisab see ees ootamisega () ja peab seda ressurssi ootama. Semafori väärtuse loendamist vähendatakse ükshaaval. Kui protsess kasutab ressurssi, vabastab see selle ressursi ja vabastamissignaali (), nii et see peab olema mõne muu protsessi jaoks vaba. Kui ressursside arv on 0, tähendab see, et järgmise protsessi jaoks pole ressursse saadaval. Binaarses semaforis on kaks väärtust, mis on 0 ja 1. Kui protsess kasutab binaarse semafori ressursiväärtust vahemikus 1 kuni 0 ja kui ressurss on ressurssi kasutanud, siis on binaarse semafori väärtus vahemikus 1 kuni 0.


Mutex on tuntud ka kui vastastikuse välistamise objekt. Me teame, et ressurssi saab korraga kasutada ainult ühes protsessis. Sel põhjusel on olemas lukustussüsteem ja seda lukusüsteemi tuntakse mutexina. Mutex-lukk antakse protsessile, kui see protsess kasutab ressurssi. Mutexi objektil on kordumatu nimi ja ID. Programmis kutsutakse mutex-lukku alati selle nime ja ID järgi, kui on vaja mutex-lukku. Kui näeme mutexi koodi, on meil selge arusaam mutexi lukustuse rakendamisest ja kasutamisest.

Sisu: Semafori ja Mutexi erinevus

  • Võrdlusdiagramm
  • Semafor
  • Mutex
  • Järeldus
  • Selgitav video

Võrdlusdiagramm

AlusSemaforMutex
TähendusSemafor on signaalimismehhanismMutex on lukustusmehhanism.
VäärtusSemafor on täisarv.Mutex on objekt.
OperatsioonSemafori ootamise () ja signaali () toimingud.Mutexi toimingud on lukustamine ja avamine
TüübidKaks tüüpi semafori hulka loetakse semafor ja binaarne semafor.Mutex-lukku pole ühtegi tüüpi.

Semafor

Semafor on täisarv muutuja S; semafor on signaalimismehhanism. Operatsioonisüsteemis on vaja sünkroonimisriista ja seda opsüsteemis kasutatavat tööriista nimetatakse semaforiks. Semaforil on kaks peamist funktsiooni, mis ootavad (), signaali (). Semafori väärtust muudetakse kahe funktsiooni abil, mis ootavad () ja signaali (). Kui protsess kasutab ressurssi, on semafor ootel () ja kui protsess kasutas ressurssi ja see ressurss on vaba, annab semafor signaali (). Neid funktsioone, mis on ootamine () ja signaal (), kasutatakse seetõttu, et ressurssi saab korraga kasutada ainult üks protsess.


Kahte protsessi ei saa ühte ressurssi anda. Operatsioonisüsteemis on kahte tüüpi semafori, mis on binaarsed semaforid ja loendavad semaforid. Semafori loendamisel on algväärtus olemasolevate ressursside arv. Kui protsess kasutab ressurssi, seisab see ees ootamisega () ja peab seda ressurssi ootama. Semafori väärtuse loendamist vähendatakse ükshaaval. Kui protsess kasutab ressurssi, vabastab see selle ressursi ja vabastamissignaali (), nii et see peab olema mõne muu protsessi jaoks vaba. Kui ressursside arv on 0, tähendab see, et järgmise protsessi jaoks pole ressursse saadaval. Binaarses semaforis on kaks väärtust, mis on 0 ja 1. Kui protsess kasutab binaarse semafori ressursiväärtust vahemikus 1 kuni 0 ja kui ressurss on ressurssi kasutanud, siis on binaarse semafori väärtus vahemikus 1 kuni 0.

Mutex

Mutex on tuntud ka kui vastastikuse välistamise objekt. Me teame, et ressurssi saab korraga kasutada ainult ühes protsessis. Sel põhjusel on olemas lukustussüsteem ja seda lukusüsteemi tuntakse mutexina. Mutex-lukk antakse protsessile, kui see protsess kasutab ressurssi. Mutexi objektil on kordumatu nimi ja ID. Programmis kutsutakse mutex-lukku alati selle nime ja ID järgi, kui on vaja mutex-lukku. Kui näeme mutexi koodi, on meil selge arusaam mutexi lukustuse rakendamisest ja kasutamisest.

Peamine erinevus

  1. Semafor on signaalimismehhanism, samas kui Mutex on lukustus
  2. Semafor on täisarv, samas kui Mutex on objekt.
  3. Semafori ootamise () ja signaali () toimingud, samas kui mutexi operatsioonid on lukustamine ja avamine.
  4. Kahe tüüpi semaforid loendavad semafori ja binaarset semafori, samas kui muteksi tüüpe pole

Järeldus

Ülaltoodud artiklis näeme selget erinevust semafori ja mutexi vahel nende nõuetekohase rakendamise osas.

Selgitav video