Sommario:
- Definizione - Cosa significa mutua esclusione (mutex)?
- Techopedia spiega l'esclusione reciproca (Mutex)
Definizione - Cosa significa mutua esclusione (mutex)?
Un'esclusione reciproca (mutex) è un oggetto programma che impedisce l'accesso simultaneo a una risorsa condivisa. Questo concetto viene utilizzato nella programmazione concorrente con una sezione critica, un pezzo di codice in cui processi o thread accedono a una risorsa condivisa. Solo un thread possiede il mutex alla volta, quindi un mutex con un nome univoco viene creato all'avvio di un programma. Quando un thread contiene una risorsa, deve bloccare il mutex da altri thread per impedire l'accesso simultaneo alla risorsa. Rilasciando la risorsa, il thread sblocca il mutex.
Techopedia spiega l'esclusione reciproca (Mutex)
Il mutex appare nell'immagine quando due thread lavorano sugli stessi dati contemporaneamente. Funziona come un blocco ed è lo strumento di sincronizzazione più semplice. Quando un thread tenta di acquisire un mutex, ottiene il mutex se è disponibile, altrimenti il thread viene impostato sulla condizione di sospensione. L'esclusione reciproca riduce la latenza e le attese occupate utilizzando le opzioni di accodamento e contesto. Mutex può essere applicato sia a livello hardware che software.
La disabilitazione degli interrupt per il minor numero di istruzioni è il modo migliore per applicare il mutex a livello di kernel e prevenire il danneggiamento delle strutture di dati condivise. Se più processori condividono la stessa memoria, viene impostato un flag per abilitare e disabilitare l'acquisizione delle risorse in base alla disponibilità. Il meccanismo di attesa attiva impone il mutex nelle aree software. Questo è fornito di algoritmi come l'algoritmo di Dekker, l'algoritmo di panetteria in bianco e nero, l'algoritmo di Szymanski, l'algoritmo di Peterson e l'algoritmo di panetteria di Lamport.
È possibile definire lettori reciprocamente esclusivi e codici di classe mutex di lettura / scrittura per un'implementazione efficiente di mutex.
