Sobes.tech
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:

  1. 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).
  2. Výber nasledujúceho procesu: Plánovač operačného systému vyberie ďalší proces na vykonanie.
  3. 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.