Semafors pret Mutex

Autors: Laura McKinney
Radīšanas Datums: 4 Aprīlis 2021
Atjaunināšanas Datums: 10 Maijs 2024
Anonim
#19 Многопоточность - lock, Monitor, Mutex, Semaphore. Ответ на вопрос собеседования C# / .Net
Video: #19 Многопоточность - lock, Monitor, Mutex, Semaphore. Ответ на вопрос собеседования C# / .Net

Saturs

Atšķirība starp semaforu un muteksu ir tāda, ka semafors ir signālmehānisms, savukārt mutex ir bloķēšanas mehānisms.


Datorzinātnē operētājsistēma ir vissvarīgākais jēdziens, operētājsistēmā divi galvenie jēdzieni ir semafors un mutex. Starp semaforu un muteksu ir daudz atšķirību. Ja mēs runājam par galveno atšķirību, tad galvenā atšķirība starp semaforu un muteksu ir tā, ka semafors ir signālmehānisms, bet mutex ir bloķēšanas mehānisms.

Atšķirība starp semaforu un muteksu rodas procesos; semafors veic gaidīšanas () un signāla () darbību, šī funkcija ir atbildīga par zināšanu, vai viņi ir ieguvuši vai ir atbrīvojuši resursu. No otras puses, ja mēs runājam par mutex, mutex ir bloķēšanas mehānisms.

Semafors ir vesels skaitlis mainīgais S; semafors ir signalizācijas mehānisms. Operētājsistēmā ir nepieciešams sinhronizācijas rīks, un operētājsistēmā šo rīku sauc par semaforu. Ir divas galvenās semafora funkcijas, kas gaida (), signālu (). Semaforu vērtība tiek mainīta ar divām funkcijām, kuras gaida () un signālu (). Ja process izmanto resursu, semaforu gaida (), un, kad process izmantoja resursu, un šis resurss ir bezmaksas, tad semafors dod signālu (). Šīs funkcijas, kas ir jāgaida () un signāls (), tiek izmantotas, jo resursus vienlaikus var izmantot tikai viens process. Vienu resursu nevar dot diviem procesiem. Operētājsistēmā ir divu veidu semafori: binārais semafors un skaitīšanas semafors. Skaitot semaforu, sākotnējā vērtība ir pieejamo resursu skaits. Kad process izmanto resursu, tas saskaras ar gaidīšanu () un ir jāgaida šis resurss. Semaforu skaitīšana tiek samazināta pa vienai. Kad process izmanto resursu, tas atbrīvo šo resursu un atbrīvošanas signālu () tā, ka tam jābūt brīvam citam procesam. Kad resursu skaits ir 0, tas nozīmē, ka nākamajam procesam nav pieejams neviens resurss. Binārā semaforā ir divas vērtības, kas ir 0 un 1. Ja process izmanto binārā semaforas resursa vērtību no 1 līdz 0 un kad resurss ir izmantojis resursu, tad binārā semafora vērtība ir no 1 līdz 0.


Mutex ir pazīstams arī kā savstarpējās izslēgšanas objekts. Mēs zinām, ka resursus vienlaikus var izmantot tikai viens process. Šī iemesla dēļ pastāv bloķēšanas sistēma, un šī bloķēšanas sistēma ir pazīstama kā mutex. Mutex bloķēšana tiek piešķirta procesam, kad šis process izmanto resursu. Mutex objektam ir unikāls nosaukums un ID. Programmā ikreiz, kad ir nepieciešama mutex bloķēšana, mutex bloķēšana tiek izsaukta ar tās vārdu un ID. Ja redzēsim mutex kodu, mums būs skaidra izpratne par mutex bloķēšanas ieviešanu un izmantošanu.

Saturs: Atšķirība starp semaforu un Mutex

  • Salīdzināšanas tabula
  • Semafors
  • Mutex
  • Secinājums
  • Paskaidrojošs video

Salīdzināšanas tabula

PamatsSemaforsMutex
NozīmeSemafors ir signalizācijas mehānismsMutex ir bloķēšanas mehānisms.
VērtībaSemafors ir vesels skaitlis.Mutex ir objekts.
DarbībaSemaforu gaidīšanas () un signāla () operācijas.Mutex operācijas ir bloķēšana un atbloķēšana
VeidiDivu veidu semafori ir semaforu un bināro semaforu skaitīšana.Nav neviena mutex bloķēšanas veida.

Semafors

Semafors ir vesels skaitlis mainīgais S; semafors ir signalizācijas mehānisms. Operētājsistēmā ir nepieciešams sinhronizācijas rīks, un operētājsistēmā šo rīku sauc par semaforu. Ir divas galvenās semafora funkcijas, kas gaida (), signālu (). Semaforu vērtība tiek mainīta ar divām funkcijām, kuras gaida () un signālu (). Ja process izmanto resursu, semaforu gaida (), un, kad process izmantoja resursu, un šis resurss ir bezmaksas, tad semafors dod signālu (). Šīs funkcijas, kas ir gaidīšana () un signāls (), tiek izmantotas, jo resursus vienlaikus var izmantot tikai viens process.


Vienu resursu nevar dot diviem procesiem. Operētājsistēmā ir divu veidu semafori: binārais semafors un skaitīšanas semafors. Skaitot semaforu, sākotnējā vērtība ir pieejamo resursu skaits. Kad process izmanto resursu, tas saskaras ar gaidīšanu () un ir jāgaida šis resurss. Semaforu skaitīšana tiek samazināta pa vienai. Kad process izmanto resursu, tas atbrīvo šo resursu un atbrīvošanas signālu () tā, ka tam jābūt brīvam citam procesam. Kad resursu skaits ir 0, tas nozīmē, ka nākamajam procesam nav pieejams neviens resurss. Binārā semaforā ir divas vērtības, kas ir 0 un 1. Ja process izmanto binārā semaforas resursa vērtību no 1 līdz 0 un kad resurss ir izmantojis resursu, tad binārā semafora vērtība ir no 1 līdz 0.

Mutex

Mutex ir pazīstams arī kā savstarpējās izslēgšanas objekts. Mēs zinām, ka resursus vienlaikus var izmantot tikai viens process. Šī iemesla dēļ pastāv bloķēšanas sistēma, un šī bloķēšanas sistēma ir pazīstama kā mutex. Mutex bloķēšana tiek piešķirta procesam, kad šis process izmanto resursu. Mutex objektam ir unikāls nosaukums un ID. Programmā ikreiz, kad ir nepieciešama mutex bloķēšana, mutex bloķēšana tiek izsaukta ar tās vārdu un ID. Ja redzēsim mutex kodu, mums būs skaidra izpratne par mutex bloķēšanas ieviešanu un izmantošanu.

Galvenā atšķirība

  1. Semafors ir signalizācijas mehānisms, savukārt Mutex ir bloķēšanas elements
  2. Semafors ir vesels skaitlis, savukārt Mutex ir objekts.
  3. Semaforu gaidīšanas () un signāla () operācijas, savukārt muteksa operācijas ir bloķēšana un atbloķēšana.
  4. Divos semaforu veidos tiek skaitīts semafors un binārais semafors, turpretī muteksa tipu nav

Secinājums

Šajā rakstā mēs redzam skaidru atšķirību starp semaforu un mutex ar to pareizu ieviešanu.

Paskaidrojošs video