Čo je prepínač kontextu?

V prvých dňoch výpočtovej techniky boli CPU čisto sekvenčné stroje. To pomohlo udržať dizajn jednoduchý. Obmedzil však aj výkon. Mnoho procesov si bude musieť vyžiadať údaje zo systémovej pamäte RAM alebo pevného disku. Aj keď je systémová pamäť RAM rýchla, stále nie je taká rýchla ako CPU, takže je nečinná a čaká na dáta, kým sa nevráti odpoveď z pamäte RAM. Situácia je ešte horšia pre údaje požadované z pevného disku, pamäťového zariadenia oveľa pomalšieho ako RAM. Tu môže byť CPU nečinný počas významných období a čaká na odpoveď. Bohužiaľ, pri sekvenčných procesoroch je tento problém jednoducho nevyhnutný.

Našťastie moderné CPU už nie sú sekvenčné. Ponúkajú mnoho pokročilých funkcií, ako napríklad spustenie mimo poradia a viacero vlákien. Spustenie mimo poradia umožňuje CPU analyzovať nadchádzajúce inštrukcie a zmeniť ich poradie, aby sa maximalizovala efektivita. Multi-threading umožňuje CPU mať spustených množstvo rôznych vlákien alebo procesov.

Okrem viacerých jadier nemôže CPU bežať viac ako jedno súčasne. Môže to však vyzerať tak, že medzi nimi budete pravidelne prepínať, aby sa zabezpečilo, že každý získa značné množstvo konštantného času procesora. Proces prepínania medzi vláknami sa nazýva prepínanie kontextu.

Ako funguje prepínanie kontextu?

Kontextový prepínač pozostáva z dvoch častí, z ktorých sa vypína predchádzajúce vlákno a prepína sa v novom. Ak chcete zmeniť staré vlákno, CPU musí uložiť svoj aktuálny stav do riadiaceho bloku procesov alebo rámca prepínača. To zahŕňa hodnoty všetkých relevantných CPU registrov a vždy pozostáva z hodnoty programového počítadla. Po uložení vlákna možno do pripraveného frontu pridať rukoväť, ktorá umožní jeho obnovenie v prípade potreby.

Prepínanie v nasledujúcom vlákne je rovnaký proces v opačnom poradí. Vlákno sa vyberie buď z pripraveného radu, v závislosti od váženia. Alternatívne ho možno zvoliť prerušením, ktoré indikuje, že udalosť, na ktorú vlákno čakalo, je teraz pripravená alebo dokončená. Údaje pre vlákno sa potom skopírujú do správnych registrov a vlákno sa obnoví. V tomto bode je nové vlákno pripravené pokračovať v prevádzke od miesta, kde sa zastavilo.

Vplyv na výkon

Proces čítania a zápisu údajov pri prepínaní alebo vypínaní vlákna trvá nejaký čas, aj keď nie veľa, pretože používaná pamäť je zvyčajne vysokorýchlostná. Existujú však ďalšie náklady na výkon. Pri prepínaní vlákien nemusia byť údaje vo vyrovnávacej pamäti a vyrovnávacej pamäti CPU z predchádzajúceho vlákna relevantné pre nové vlákno. To môže viesť k výraznému zvýšeniu TLB ( Translation Lookaside Buffer ) a vynechaniu vyrovnávacej pamäte.

Tento efekt nie je významný, ak boli tieto dve vlákna vytvorené rovnakým procesom, pretože pravdepodobne zdieľajú značné pamäťové prvky. Pri prepínaní medzi vláknami z rôznych metód sa musí TLB úplne vyprázdniť. To vedie k 100% chybnej frekvencii TLB, zatiaľ čo miera zásahov do vyrovnávacej pamäte CPU je tiež výrazne znížená.

Zatiaľ čo CPU ponúkajú hardvérovú podporu pre prepínanie kontextu, operačné systémy to zvyčajne nepoužívajú. Hardvérovému prepínaniu kontextu chýba povedomie o relevantnosti údajov. Preto potrebuje uložiť a obnoviť všetky registre, čím sa predĺži čas a potrebný úložný priestor.

Hardvérové ​​prepínanie kontextu navyše neukladá údaje z registrov s pohyblivou rádovou čiarkou, čo môže byť potrebná funkcia. Preto sa vo všeobecnosti používa softvérové ​​prepínanie kontextu. Umožňuje uchovávať údaje zo všetkých registrov, vrátane registrov s pohyblivou rádovou čiarkou. Softvérové ​​prepínače kontextu rozumejú relevantnosti údajov. To znamená, že si môže vybrať, ktoré z nich uloží podľa potreby.

Záver

Kontextové prepínanie je proces, ktorým moderný CPU prepína, ktoré vlákno je spustené. Proces zahŕňa uloženie relevantných údajov aktuálneho vlákna a obnovenie príslušných údajov nového vlákna. Kontextové prepínanie je spojené s nákladmi na výkon súvisiacimi s časom potrebným na vykonanie prepnutia a so zvýšenou mierou zmeškania vyrovnávacej pamäte a TLB, pretože sa neukladajú. K prepínaniu kontextu dochádza buď preto, aby sa zabezpečilo, že všetky vlákna budú mať dostatok času CPU, alebo kvôli prerušeniu, ktoré indikuje, že udalosť, na ktorú linka čakala, je dokončená.


Leave a Comment

Všetko o iOS 26

Všetko o iOS 26

Spoločnosť Apple predstavila systém iOS 26 – významnú aktualizáciu s úplne novým dizajnom z matného skla, inteligentnejšími funkciami a vylepšeniami známych aplikácií.

Najlepšie notebooky pre študentov v roku 2025

Najlepšie notebooky pre študentov v roku 2025

Študenti potrebujú na štúdium špecifický typ notebooku. Mal by byť nielen dostatočne výkonný na to, aby dobre podával výkony v zvolenom odbore, ale aj dostatočne kompaktný a ľahký na to, aby ho bolo možné nosiť so sebou celý deň.

Ako obnoviť prístup k pevnému disku, opraviť chybu, že sa pevný disk nedá otvoriť

Ako obnoviť prístup k pevnému disku, opraviť chybu, že sa pevný disk nedá otvoriť

V tomto článku vám ukážeme, ako znovu získať prístup k pevnému disku, keď zlyhá. Poďme na to!

Ako používať funkciu Upozornenie na konverzáciu a Počúvanie naživo na AirPods

Ako používať funkciu Upozornenie na konverzáciu a Počúvanie naživo na AirPods

Na prvý pohľad vyzerajú AirPods ako akékoľvek iné bezdrôtové slúchadlá do uší. To všetko sa však zmenilo, keď sa objavilo niekoľko málo známych funkcií.

Ako pridať tlačiareň do systému Windows 10

Ako pridať tlačiareň do systému Windows 10

Pridanie tlačiarne do systému Windows 10 je jednoduché, hoci proces pre káblové zariadenia sa bude líšiť od procesu pre bezdrôtové zariadenia.

Ako skontrolovať RAM a skontrolovať chyby RAM v počítači s najvyššou presnosťou

Ako skontrolovať RAM a skontrolovať chyby RAM v počítači s najvyššou presnosťou

Ako viete, RAM je veľmi dôležitá hardvérová súčasť počítača, ktorá slúži ako pamäť na spracovanie údajov a je faktorom, ktorý určuje rýchlosť notebooku alebo počítača. V článku nižšie vám WebTech360 predstaví niekoľko spôsobov, ako skontrolovať chyby RAM pomocou softvéru v systéme Windows.

Canon Pixma MG5220: Skener bez atramentu

Canon Pixma MG5220: Skener bez atramentu

Ako povoliť skenovanie na Canon Pixma MG5220, keď vám došiel atrament.

Ako opraviť chybu GeForce Now s kódom 0xC272008F

Ako opraviť chybu GeForce Now s kódom 0xC272008F

Chystáte sa na večer hrania hier a bude to veľké – práve ste si zakúpili “Star Wars Outlaws” na streamovacej službe GeForce Now. Objavte jediné známe riešenie, ktoré vám ukáže, ako opraviť chybu GeForce Now s kódom 0xC272008F, aby ste mohli opäť začať hrať hry od Ubisoftu.

Čo robiť, ak sa Powerbeats Pro nenabíjajú v puzdre

Čo robiť, ak sa Powerbeats Pro nenabíjajú v puzdre

Ak sa vaše Powerbeats Pro nenabíjajú, použite iný zdroj energie a vyčistite svoje slúchadlá. Nechajte puzdro otvorené počas nabíjania slúchadiel.

Základy 3D tlače: Nevyhnutný kontrolný zoznam údržby

Základy 3D tlače: Nevyhnutný kontrolný zoznam údržby

Udržiavanie vašich zariadení v dobrom stave je nevyhnutné. Tu sú niektoré užitočné tipy, ako váš 3D tlačiar udržiavať v top stave.