Junior
Čo je prepínanie kontextu?
sobes.tech AI
Odpoveď od AI
Prepnutie kontextu (Context Switching) je proces, pri ktorom operačný systém uloží stav jedného procesu (alebo vlákna) a obnoví stav iného procesu (alebo vlákna). To umožňuje viacerým procesom zdieľať jeden procesor.
Algoritmus zahŕňa nasledujúce kroky:
- Uloženie aktuálneho kontextu: Registri procesora, čítač inštrukcií (PC), stav zásobníka a ďalšie informácie o aktuálnom procese sa ukladajú do jeho popisu (PCB - Blok riadenia procesu).
- Výber nasledujúceho procesu: Plánovač operačného systému vyberie ďalší proces na vykonanie.
- Obnovenie kontextu: Uložený stav vybraného procesu sa načíta z jeho PCB do registrov procesora.
Náklady (overhead) na prepínanie kontextu zahŕňajú:
- Čas venovaný na uloženie a obnovenie stavu.
- Stratu efektívnosti kvôli cache misses, pretože cache naplnená dátami jedného procesu je pre iný proces irelevantná.
- Náklady na vykonanie inštrukcií plánovača.
Príklad:
Predpokladajme, že máme dva procesy, A a B, ktoré bežia na jednom jadre procesora.
// Na začiatku sa vykonáva proces A
// Proces A využíva zdroje CPU
// Nastane udalosť, ktorá vyžaduje prechod, napríklad, vypršanie kvanta času procesu A
// Stav procesu A (registre, PC) sa uloží
// Operačný systém vyberie proces B na vykonanie
// Stav procesu B sa načíta
// Proces B začína vykonávať
Prechod kontextu je základný mechanizmus multitaskingu v operačných systémoch, ktorý umožňuje vytvárať ilúziu paralelného vykonávania viacerých procesov na jednom fyzickom procesore.