Globální zámek jádra

Technology
12 hours ago
8
4
2
Avatar
Author
Albert Flores

V 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.

5 min read
Share this post:
Like it 8

Leave a Comment

Please, enter your name.
Please, provide a valid email address.
Please, enter your comment.
Enjoy this post? Join Cesko.wiki
Don’t forget to share it
Top