Globální zámek jádra
Author
Albert FloresV oblasti operačních systémů je známý jako globální zámek jádra nebo také jako velký zámek jádra, je zámek, který může být použit v jádře, pro základní umožnění souběžnosti, nezbytné v oblasti systémů symetrického multiprocesingu (SMP).
Jde o výhradní globální zámek jádra, který je zamknut vždy, když vlákno vstoupí do prostoru jádra, a uvolněn, když toto vlákno vystoupí zpět do uživatelského prostoru; typickým příkladem je systémové volání. V tomto modelu mohou vlákna v uživatelském prostoru běžet současně na všech dostupných procesorech nebo jádrech procesorů, ale v prostoru jádra nemůže běžet více než jedno vlákno; jakákoli jiná vlákna, která se pokusí vstoupit do prostoru jádra, jsou nucena čekat (budou pozastavena). +more Jinými slovy, tento zámek eliminuje veškerý multitasking (paralelismus) v prostoru jádra (a umožní paralelizmus v prostoru uživatelském).
Takovýmto zásadním izolováním jádra od paralelismu (souběžnosti) je zabezpečeno, že již není nutné mnoho částí jádra upravovat, aby podporovaly SMP. Avšak vzhledem k tomu, že v systémech SMP s globálním zámkem jádra, může pouze jeden procesor, přesněji jedno CPU jádro (jádrem míněna část vícejádrového procesoru - hardware) spustit kód jádra operačního systému (zde jde o základ operačního systému - software), výkon aplikací, které v jádře operačního systému tráví značné množství času, se příliš nezlepší (kód jádra se stává úzkým hrdlem pro využití paralelismu). +more Řešení SMP s globálním zámkem jádra je tedy běžně považováno (pouze) za předběžný prostředek k zavedení podpory pro SMP do počítačů s příslušným systémem, kterému přináší výkonnostní výhody pouze v běhu procesů v uživatelském prostoru. Většina moderních operačních systémů postupně přechází na jemnozrnný přístup k zamykání, nikoliv globální zámek jádra.
Linux
Linuxové jádro mělo od zavedení SMP globální zámek jádra (BKL), dokud jej Arnd Bergmann v roce 2011 ve verzi jádra 2. 6. +more39 neodstranil, přičemž zbývající použití globálního zámku byly odstraněny nebo nahrazeny jemnějšími metodami zamykání. Distribuce Linuxu na nebo nad CentOS 7, Debian 7 (Wheezy) a Ubuntu 11. 10 a vyšší proto nepoužívají globální zámek jádra.
BSD
Počátkem července 2021, OpenBSD and NetBSD stále používají rodinu primitiv spl (Unix) k usnadnění synchronizace kritických sekcí v jádře, což znamená, že mnoho systémových volání může omezovat možnosti SMP systému, a podle Matthewa Dillona nelze schopnosti SMP těchto dvou systémů považovat za moderní.
FreeBSD má stále podporu pro Giant mutex který poskytuje sémantiku podobnou starému rozhraní spl, ale základní komponenty s kritickým výkonem byly již dávno převedeny na použití jemnějšího zamykání.
Matthew Dillon tvrdí, že z univerzálních operačních systémů s otevřeným zdrojovým kódem mají moderní podporu SMP pouze Linux, DragonFly BSD a FreeBSD, přičemž OpenBSD a NetBSD zaostávají.
Nadace NetBSD považuje moderní podporu SMP za zásadní pro směrování projektu NetBSD a nabídla granty vývojářům ochotným pracovat na vylepšeních SMP; NPF (firewall) byl jedním z projektů, které vznikly v důsledku těchto finančních pobídek, ale může být ještě nutné další vylepšení základního síťového zásobníku.
Související články
Multitasking * Paralelní výpočty * Zámek (informatika) * Globální zámek interpretu