Semafor vs. Mutex

Autor: Laura McKinney
Data Creației: 4 Aprilie 2021
Data Actualizării: 10 Mai 2024
Anonim
What is difference between Semaphore and Mutex
Video: What is difference between Semaphore and Mutex

Conţinut

Diferența dintre semafor și mutex este că semaforul este un mecanism de semnalizare, în timp ce mutexul este mecanismul de blocare.


Sistemul de operare este cel mai important concept în informatică, în sistemul de operare, două concepte principale sunt semaforul și mutexul. Există o mulțime de diferențe între un semafor și un mutex. Dacă vorbim despre diferența principală, atunci diferența principală dintre semafor și mutex este că semaforul este un mecanism de semnalizare, în timp ce mutexul este mecanismul de blocare.

Diferența dintre semafor și mutex vine în procese; semaforul execută operația de așteptare () și semnal (), această funcție este responsabilă de a ști dacă au achiziționat sau au eliberat resursa. Pe de altă parte, dacă vorbim despre mutex, mutexul este mecanismul de blocare.

Semaforul este o variabilă întreagă S; semaforul este un mecanism de semnalizare. Într-un sistem de operare, este nevoie de un instrument de sincronizare, iar instrumentul din sistemul de operare este cunoscut sub numele de semafor. Există două funcții principale ale semaforului care sunt în așteptare (), semnal (). Valoarea semaforului este modificată cu două funcții care sunt în așteptare () și semnal (). Când un proces folosește o resursă, semaforul este în așteptare (), iar când procesul a folosit resursa, iar resursa respectivă este gratuită, atunci semaforul dă semnalul (). Aceste funcții care sunt wait () și semnal (), acestea sunt utilizate deoarece un singur proces poate utiliza resursa simultan. O resursă nu poate fi dată la două procese. Există două tipuri de semafor în sistemul de operare care sunt semaforul binar și numără semaforul. În numărarea semaforului, valoarea inițiată este numărul de resurse disponibile. Când un proces folosește o resursă, acesta se confruntă cu wait () și trebuie să aștepte respectiva resursă. Numărarea valorii semaforului este decrementată unul câte unul. Când un proces folosește o resursă, eliberă acea resursă și semnalul de eliberare (), astfel încât trebuie să fie gratuit pentru un alt proces. Când numărul de resurse este 0, înseamnă că nu este disponibilă nici o resursă pentru procesul care urmează. Există două valori în semaforul binar care sunt 0 și 1. Când procesul utilizează o valoare a resursei a semaforului binar este de la 1 la 0 și atunci când o resursă a folosit resursa, atunci valoarea semaforului binar la 1 la 0.


Mutexul este cunoscut și ca obiect de excludere reciprocă. Știm că un singur proces poate utiliza o resursă simultan. Acesta este motivul pentru care există un sistem de blocare, iar sistemul de blocare este cunoscut sub numele de mutex. Blocarea Mutex este dată unui proces atunci când acel proces utilizează o resursă. Obiectul Mutex are un nume și un ID unic. Într-un program ori de câte ori este nevoie de blocare mutex, blocarea mutex este numită după numele și ID-ul său. Dacă vedem codul mutex, vom înțelege clar despre implementarea și utilizarea blocării mutex.

Cuprins: Diferența dintre Semafor și Mutex

  • Diagramă de comparație
  • Semafor
  • mutex
  • Concluzie
  • Video explicativ

Diagramă de comparație

BazăSemaformutex
SensSemaforul este un mecanism de semnalizareMutexul este un mecanism de blocare.
ValoareSemaforul este un număr întreg.Un mutex este un obiect.
operațieOperații de semafor wait () și semnal ().Operațiile mutexului sunt blocate și deblocate
TipuriDouă tipuri de semafor contează semaforul și semaforul binar.Nu există tipuri de blocare mutex.

Semafor

Semaforul este o variabilă întreagă S; semaforul este un mecanism de semnalizare. Într-un sistem de operare, este nevoie de un instrument de sincronizare, iar instrumentul din sistemul de operare este cunoscut sub numele de semafor. Există două funcții principale ale semaforului care sunt în așteptare (), semnal (). Valoarea semaforului este modificată cu două funcții care sunt în așteptare () și semnal (). Când un proces folosește o resursă, semaforul este în așteptare (), iar când procesul a folosit resursa, iar resursa respectivă este gratuită, atunci semaforul dă semnalul (). Aceste funcții care sunt un wait () și un semnal (), acestea sunt utilizate deoarece un singur proces poate utiliza resursa simultan.


O resursă nu poate fi dată la două procese. Există două tipuri de semafor în sistemul de operare care sunt semaforul binar și numără semaforul. În numărarea semaforului, valoarea inițiată este numărul de resurse disponibile. Când un proces folosește o resursă, acesta se confruntă cu wait () și trebuie să aștepte respectiva resursă. Numărarea valorii semaforului este decrementată unul câte unul. Când un proces folosește o resursă, eliberă acea resursă și semnalul de eliberare (), astfel încât trebuie să fie gratuit pentru un alt proces. Când numărul de resurse este 0, înseamnă că nu este disponibilă nici o resursă pentru procesul care urmează. Există două valori în semaforul binar care sunt 0 și 1. Când procesul utilizează o valoare a resursei a semaforului binar este de la 1 la 0 și atunci când o resursă a folosit resursa, atunci valoarea semaforului binar la 1 la 0.

mutex

Mutexul este cunoscut și ca obiect de excludere reciprocă. Știm că un singur proces poate utiliza o resursă simultan. Acesta este motivul pentru care există un sistem de blocare, iar sistemul de blocare este cunoscut sub numele de mutex. Blocarea Mutex este dată unui proces atunci când acel proces utilizează o resursă. Obiectul Mutex are un nume și un ID unic. Într-un program ori de câte ori este nevoie de blocare mutex, blocarea mutex este numită după numele și ID-ul său. Dacă vedem codul mutex, vom înțelege clar despre implementarea și utilizarea blocării mutex.

Diferența cheie

  1. Semaforul este un mecanism de semnalizare, în timp ce Mutex este blocarea
  2. Semaforul este un număr întreg, în timp ce Mutex este un obiect.
  3. Operațiunile de semafor wait () și semnal (), în timp ce Operațiile mutexului sunt blocate și deblocate.
  4. Două tipuri de semafor contează semaforul și semaforul binar, în timp ce nu există tipuri de mutex

Concluzie

În acest articol de mai sus vedem diferența clară între semafor și mutex cu implementarea lor corectă.

Video explicativ