Esclusione reciproca (mutex)

Autore: Lewis Jackson
Data Della Creazione: 8 Maggio 2021
Data Di Aggiornamento: 15 Maggio 2024
Anonim
Go (Golang) sync.Mutex Tutorial
Video: Go (Golang) sync.Mutex Tutorial

Contenuto

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.


Un'introduzione a Microsoft Azure e Microsoft Cloud | In questa guida imparerai cos'è il cloud computing e in che modo Microsoft Azure può aiutarti a migrare ed eseguire la tua azienda dal cloud.

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 contro. 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 è dotato di algoritmi come l'algoritmo Dekkers, l'algoritmo panificio bianco-nero, l'algoritmo Szymanskis, l'algoritmo Petersons e l'algoritmo panificio Lamports.


È possibile definire lettori reciprocamente esclusivi e codici di classe mutex di lettura / scrittura per un'implementazione efficiente di mutex.