Obsah:
Definice - Co znamená vzájemné vyloučení (Mutex)?
Vzájemné vyloučení (mutex) je programový objekt, který zabraňuje současnému přístupu ke sdílenému prostředku. Tento koncept se používá v souběžném programování s kritickou částí, což je část kódu, v níž procesy nebo vlákna přistupují ke sdílenému prostředku. Mutex je vlastníkem pouze jednoho vlákna, takže při spuštění programu se vytvoří mutex s jedinečným názvem. Když vlákno drží prostředek, musí zamknout mutex z jiných vláken, aby se zabránilo souběžnému přístupu k prostředku. Po uvolnění zdroje vlákno odemkne mutex.
Techopedia vysvětluje vzájemné vyloučení (Mutex)
Mutex přichází na obrázek, když dvě vlákna pracují na stejných datech současně. Působí jako zámek a je nejzákladnějším synchronizačním nástrojem. Když se vlákno pokusí získat mutex, získá mutex, pokud je k dispozici, jinak je vlákno nastaveno do stavu spánku. Vzájemné vyloučení snižuje latenci a obsazenost pomocí přepínačů front a kontextových přepínačů. Mutex lze vynutit na úrovni hardwaru i softwaru.
Zakázání přerušení pro nejmenší počet pokynů je nejlepším způsobem, jak vynutit mutex na úrovni jádra a zabránit poškození struktur sdílených dat. Pokud sdílí stejnou paměť více procesorů, je nastaven příznak pro povolení a zakázání získávání prostředků na základě dostupnosti. Mechanismus busy-wait vynucuje mutex v softwarových oblastech. To je vybaveno algoritmy, jako je Dekkerův algoritmus, černobílý pekárenský algoritmus, Szymanského algoritmus, Petersonův algoritmus a Lamportův pekárenský algoritmus.
Pro efektivní implementaci mutexu lze definovat vzájemně se vylučující čtečky a kódy pro čtení a zápis mutexů.
