Semaphore vs. Mutex

Autore: Laura McKinney
Data Della Creazione: 4 Aprile 2021
Data Di Aggiornamento: 7 Maggio 2024
Anonim
What is difference between Semaphore and Mutex
Video: What is difference between Semaphore and Mutex

Contenuto

La differenza tra semaforo e mutex è che il semaforo è un meccanismo di segnalazione mentre il mutex è il meccanismo di blocco.


Il sistema operativo è il concetto più importante in informatica, nel sistema operativo, due concetti principali sono semaforo e mutex. C'è molta differenza tra un semaforo e un mutex. Se parliamo della differenza principale, la differenza principale tra semaforo e mutex è che il semaforo è un meccanismo di segnalazione mentre il mutex è il meccanismo di blocco.

La differenza tra semaforo e mutex sta nei processi; semaphore esegue operazioni wait () e signal (), questa funzione è responsabile di sapere se hanno acquisito o rilasciato la risorsa. D'altra parte, se parliamo di mutex, il mutex è il meccanismo di blocco.

Il semaforo è una variabile intera S; il semaforo è un meccanismo di segnalazione. In un sistema operativo, è necessario uno strumento di sincronizzazione e tale strumento nel sistema operativo è noto come semaforo. Esistono due funzioni principali del semaforo che sono wait (), signal (). Il valore del semaforo viene modificato con due funzioni che sono in attesa () e signal (). Quando un processo utilizza una risorsa, il semaforo è in wait () e quando il processo ha utilizzato la risorsa e tale risorsa è libera, il semaforo fornisce il segnale (). Queste funzioni che sono wait () e signal (), sono utilizzate perché solo un processo può utilizzare la risorsa alla volta. Non è possibile assegnare una risorsa a due processi. Esistono due tipi di semafori nel sistema operativo che sono il semaforo binario e il conteggio dei semafori. Nel conteggio dei semafori, il valore inizializzato è il numero di risorse disponibili. Quando un processo utilizza una risorsa, deve affrontare wait () e deve attendere quella risorsa. Il conteggio del valore del semaforo viene diminuito uno alla volta. Quando un processo utilizza una risorsa, rilascia quella risorsa e rilascia il segnale () in modo che sia libero per un altro processo. Quando il conteggio delle risorse è 0, significa che nessuna risorsa è disponibile per il processo in arrivo. Esistono due valori nel semaforo binario che sono 0 e 1. Quando il processo utilizza un valore della risorsa del semaforo binario è compreso tra 1 e 0 e quando una risorsa ha utilizzato la risorsa, il valore del semaforo binario è compreso tra 1 e 0.


Il mutex è anche noto come oggetto di esclusione reciproca. Sappiamo che solo un processo può utilizzare una risorsa alla volta. Questo è il motivo per cui esiste un sistema di blocco e quel sistema di blocco è noto come mutex. Il blocco mutex viene assegnato a un processo quando quel processo utilizza una risorsa. L'oggetto Mutex ha un nome e un ID univoci. In un programma ogni volta che è necessario il blocco mutex, il blocco mutex viene chiamato con il suo nome e ID. Se vediamo il codice di mutex, avremo la chiara comprensione dell'implementazione e dell'uso del blocco mutex.

Contenuto: differenza tra semaforo e mutex

  • Tabella di comparazione
  • Semaforo
  • mutex
  • Conclusione
  • Video esplicativo

Tabella di comparazione

BaseSemaforomutex
SensoIl semaforo è un meccanismo di segnalazioneIl mutex è un meccanismo di blocco.
ValoreIl semaforo è un numero intero.Un mutex è un oggetto.
operazioneOperazioni del semaforo wait () e signal ().Le operazioni di mutex sono blocco e sblocco
tipiDue tipi di semafori contano il semaforo e il semaforo binario.Non ci sono tipi di blocco mutex.

Semaforo

Il semaforo è una variabile intera S; il semaforo è un meccanismo di segnalazione. In un sistema operativo, è necessario uno strumento di sincronizzazione e tale strumento nel sistema operativo è noto come semaforo. Esistono due funzioni principali del semaforo che sono wait (), signal (). Il valore del semaforo viene modificato con due funzioni che sono in attesa () e signal (). Quando un processo utilizza una risorsa, il semaforo è in wait () e quando il processo ha utilizzato la risorsa e tale risorsa è libera, il semaforo fornisce il segnale (). Queste funzioni sono wait () e signal (), vengono utilizzate perché solo un processo può utilizzare la risorsa alla volta.


Non è possibile assegnare una risorsa a due processi. Esistono due tipi di semafori nel sistema operativo che sono il semaforo binario e il conteggio dei semafori. Nel conteggio dei semafori, il valore inizializzato è il numero di risorse disponibili. Quando un processo utilizza una risorsa, deve affrontare wait () e deve attendere quella risorsa. Il conteggio del valore del semaforo viene diminuito uno alla volta. Quando un processo utilizza una risorsa, rilascia quella risorsa e rilascia il segnale () in modo che sia libero per un altro processo. Quando il conteggio delle risorse è 0, significa che nessuna risorsa è disponibile per il processo in arrivo. Esistono due valori nel semaforo binario che sono 0 e 1. Quando il processo utilizza un valore della risorsa del semaforo binario è compreso tra 1 e 0 e quando una risorsa ha utilizzato la risorsa, il valore del semaforo binario è compreso tra 1 e 0.

mutex

Il mutex è anche noto come oggetto di esclusione reciproca. Sappiamo che solo un processo può utilizzare una risorsa alla volta. Questo è il motivo per cui esiste un sistema di blocco e quel sistema di blocco è noto come mutex. Il blocco mutex viene assegnato a un processo quando quel processo utilizza una risorsa. L'oggetto Mutex ha un nome e un ID univoci. In un programma ogni volta che è necessario il blocco mutex, il blocco mutex viene chiamato con il suo nome e ID. Se vediamo il codice di mutex, avremo la chiara comprensione dell'implementazione e dell'uso del blocco mutex.

Differenza chiave

  1. Il semaforo è un meccanismo di segnalazione mentre il Mutex è il blocco
  2. Il semaforo è un numero intero mentre Mutex è un oggetto.
  3. Le operazioni di semaforo wait () e signal () mentre le operazioni di mutex sono bloccate e sbloccate.
  4. Due tipi di semafori contano il semaforo e il semaforo binario mentre non ci sono tipi di mutex

Conclusione

In questo articolo sopra vediamo la chiara differenza tra semaforo e mutex con la loro corretta implementazione.

Video esplicativo