Domov vývoj Čo je to vzájomné vylúčenie (mutex)? - definícia z technológie

Čo je to vzájomné vylúčenie (mutex)? - definícia z technológie

Obsah:

Anonim

Definícia - Čo znamená vzájomné vylúčenie (Mutex)?

Vzájomné vylúčenie (mutex) je programový objekt, ktorý bráni súčasnému prístupu k zdieľanému prostriedku. Tento koncept sa používa v súbežnom programovaní s kritickou časťou, časťou kódu, v ktorej procesy alebo vlákna pristupujú k zdieľanému prostriedku. Naraz vlastní mutex iba jedno vlákno, takže pri spustení programu sa vytvorí mutex s jedinečným názvom. Ak vlákno obsahuje prostriedok, musí zamknúť mutex z iných vlákien, aby sa zabránilo súbežnému prístupu k prostriedku. Po uvoľnení prostriedku vlákno odomkne mutex.

Techopedia vysvetľuje vzájomné vylúčenie (Mutex)

Mutex prichádza na obrázok, keď dve vlákna pracujú na rovnakých údajoch súčasne. Pôsobí ako zámok a je najzákladnejším synchronizačným nástrojom. Keď sa vlákno pokúša získať mutex, získa mutex, ak je k dispozícii, inak je vlákno nastavené do režimu spánku. Vzájomné vylúčenie znižuje latenciu a čakanie pomocou prepínačov vo frontách a kontextových prepínačov. Mutex je možné vynútiť na úrovni hardvéru aj softvéru.

Zakázanie prerušení pre najmenší počet inštrukcií je najlepším spôsobom, ako vynútiť mutex na úrovni jadra a zabrániť korupcii štruktúr zdieľaných údajov. Ak rovnakú pamäť zdieľa viacero procesorov, nastaví sa príznak na povolenie a zakázanie získavania prostriedkov na základe dostupnosti. Mechanizmus obsadenia čaká na vynútenie mutexu v softvérových oblastiach. Toto je vybavené algoritmami, ako je Dekkerov algoritmus, čiernobiely pekársky algoritmus, Szymanského algoritmus, Petersonov algoritmus a Lamportov pekársky algoritmus.

Pre efektívnu implementáciu mutexu je možné definovať vzájomne sa vylučujúce čítačky a kódy triedy mutex.

Čo je to vzájomné vylúčenie (mutex)? - definícia z technológie