Co je přepínač kontextu?

V počátcích výpočetní techniky byly CPU čistě sekvenční stroje. To pomohlo udržet návrhy jednoduché. To však také omezovalo výkon. Mnoho procesů si bude muset vyžádat data ze systémové paměti RAM nebo pevného disku. I když je systémová RAM rychlá, stále není tak rychlá jako CPU a nechává ji nečinně čekat na data, dokud se z RAM nevrátí odpověď. Situace je ještě horší pro data požadovaná z pevného disku, což je úložné zařízení mnohem pomalejší než RAM. Zde může být CPU delší dobu nečinný a čekat na odezvu. Bohužel u sekvenčních procesorů je tento problém prostě nevyhnutelný.

Naštěstí moderní CPU již nejsou sekvenční. Nabízejí mnoho pokročilých funkcí, jako je provádění mimo pořadí a více vláken. Provádění mimo pořadí umožňuje CPU analyzovat nadcházející instrukce a měnit jejich pořadí pro maximalizaci efektivity. Multi-threading umožňuje CPU mít mnoho různých vláken nebo procesů.

Kromě toho, že má více jader, nemůže CPU běžet více než jedno najednou. Může to však vypadat tak, že mezi nimi budete pravidelně přepínat, aby bylo zajištěno, že každý z nich získá znatelné množství konstantního času CPU. Proces přepínání mezi vlákny se nazývá přepínání kontextu.

Jak funguje přepínání kontextu?

Kontextový přepínač se skládá ze dvou částí, vypínání předchozího vlákna a zapínání nového. Chcete-li změnit staré vlákno, musí CPU uložit svůj aktuální stav do řídicího bloku procesu nebo rámce přepínače. To zahrnuje hodnoty všech relevantních CPU registrů a vždy sestává z hodnoty programového čítače. Jakmile je vlákno uloženo, může být do připravené fronty přidán popisovač, který umožní jeho obnovení v případě potřeby.

Přepínání v následujícím vlákně je stejný proces obráceně. Vlákno je vybráno buď z připravené fronty, v závislosti na vážení. Alternativně může být zvolena přerušením indikujícím, že událost, na kterou vlákno čekalo, je nyní připravena nebo dokončena. Data pro vlákno se poté zkopírují do správných registrů a vlákno se obnoví. V tomto okamžiku je nové vlákno připraveno pokračovat v provozu od místa, kde bylo zastaveno.

Dopad na výkon

Proces čtení a zápisu dat při přepínání vlákna dovnitř nebo ven trvá nějakou dobu, i když ne moc, protože používaná paměť je obvykle vysokorychlostní. Existují však další náklady na výkon. Při přepínání vláken nemusí být data v mezipaměti a vyrovnávací paměti CPU z předchozího vlákna pro nové vlákno relevantní. To může vést k výraznému zvýšení TLB ( Translation Lookaside Buffer ) a vyrovnávací paměti.

Tento efekt není významný, pokud byla dvě vlákna vytvořena stejným procesem, protože pravděpodobně sdílejí značné paměťové prvky. Při přepínání mezi vlákny z různých metod musí být TLB zcela vyprázdněno. To vede ke 100% chybovosti TLB, přičemž je také výrazně snížena četnost zásahů mezipaměti CPU.

Zatímco CPU nabízejí hardwarovou podporu pro přepínání kontextu, operační systémy to obvykle nepoužívají. Hardwarové přepínání kontextu postrádá povědomí o relevanci dat. Proto potřebuje uložit a obnovit všechny registry, čímž se prodlouží čas a potřebný úložný prostor.

Navíc hardwarové přepínání kontextu neukládá data z registrů s pohyblivou řádovou čárkou, což může být nezbytná funkce. Proto se obecně používá softwarové přepínání kontextu. Umožňuje uchovávat data ze všech registrů, včetně registrů s pohyblivou řádovou čárkou. Softwarové přepínače kontextu chápou relevanci dat. To znamená, že si může vybrat, které z nich uloží podle potřeby.

Závěr

Kontextové přepínání je proces, kterým moderní CPU přepíná, které vlákno běží. Tento proces zahrnuje uložení relevantních dat aktuálního vlákna a obnovení příslušných dat nového vlákna. Kontextové přepínání je spojeno s náklady na výkon souvisejícími s časem potřebným k provedení přepnutí a se zvýšenou rychlostí vynechání mezipaměti a TLB, protože se neukládají. K přepínání kontextu dochází buď proto, aby bylo zajištěno, že všechna vlákna mají dostatek času CPU, nebo kvůli přerušení indikujícímu, že událost, na kterou linka čekala, je dokončena.


Leave a Comment

Základy 3D tisku: Kontrolní seznam údržby, který si musíte přečíst

Základy 3D tisku: Kontrolní seznam údržby, který si musíte přečíst

Udržování vašeho vybavení v dobrém stavu je nezbytné. Zde jsou některé užitečné tipy, jak udržet váš 3D tiskárnu v nejlepším stavu.

Jak nainstalovat SSD na desktop a notebooky

Jak nainstalovat SSD na desktop a notebooky

Právě jste zakoupili SSD a chtěli byste upgradovat interní úložiště svého počítače, ale nevíte, jak SSD nainstalovat? Přečtěte si tento článek nyní!

Canon Pixma MG5220: Skenování bez inkoustu

Canon Pixma MG5220: Skenování bez inkoustu

Jak povolit skenování na Canon Pixma MG5220, když dojde inkoust.

Jak najít IP adresu tiskárny

Jak najít IP adresu tiskárny

Máte problémy s nalezením IP adresy tiskárny? Ukážeme vám, jak ji najít.

Jak používat AirPods s telefony Samsung

Jak používat AirPods s telefony Samsung

Pokud si nejste jisti, zda koupit AirPods pro váš telefon Samsung, tento průvodce vám může pomoci. Nejvíce evidentní otázka je, zda jsou obě zařízení kompatibilní, a odpověď je: Ano, jsou!

Co dělat, když se Powerbeats Pro nenabíjí v pouzdře

Co dělat, když se Powerbeats Pro nenabíjí v pouzdře

Pokud se vaše Powerbeats Pro nenabíjí, zkuste jiný zdroj napájení a vyčistěte si sluchátka. Nechte pouzdro otevřené během nabíjení sluchátek.

Co je tepelné škrcení?

Co je tepelné škrcení?

Tepelné škrcení je ochranný mechanismus CPU, který snižuje výkon při vysokých teplotách, aby se zabránilo poškození.

Jak provozovat dva počítače s jedním monitorem

Jak provozovat dva počítače s jedním monitorem

Naučte se, jak efektivně používat jeden monitor pro dva počítače. Zjistěte, jaké jsou nejlepší možnosti připojení a užitečné tipy pro úsporu prostoru.

Jak vytvořit vlastní Gify v Whatsapp

Jak vytvořit vlastní Gify v Whatsapp

Jak vytvořit vlastní GIFy v aplikaci WhatsApp a sdílet je snadno s přáteli. Zjistěte, jak na to!

Jak vypnout zvuk spouště fotoaparátu – Galaxy S 21 Plus

Jak vypnout zvuk spouště fotoaparátu – Galaxy S 21 Plus

Foťte jako ninja a ztište zvuk závěrky na Galaxy S21 Plus. Podívejte se také, co můžete dělat, pokud tuto možnost nemáte.