Sobes.tech
Junior

Co je to přepínání kontextu?

sobes.tech AI

Odpověď od AI

Přepínání kontextu (Context Switching) je proces, při kterém operační systém uloží stav jednoho procesu (nebo vlákna) a obnoví stav jiného procesu (nebo vlákna). To umožňuje více procesům sdílet jeden procesor.

Algoritmus zahrnuje následující kroky:

  1. Uložení aktuálního kontextu: Registru procesoru, čítače instrukcí (PC), stav zásobníku a další informace o aktuálním procesu jsou uloženy v jeho popisu (PCB - Blok řízení procesu).
  2. Výběr následujícího procesu: Plánovač operačního systému vybere další proces k vykonání.
  3. Obnovení kontextu: Uložený stav vybraného procesu je načten z jeho PCB do registrů procesoru.

Náklady (overhead) na přepínání kontextu zahrnují:

  • Čas věnovaný ukládání a obnově stavu.
  • Ztráta efektivity kvůli cache missům, protože cache naplněná daty jednoho procesu je pro jiný proces irelevantní.
  • Náklady na vykonání instrukcí plánovače.

Příklad:

Předpokládejme, že máme dva procesy, A a B, které běží na jednom jádře procesoru.

// Původně je spuštěn proces A
// Proces A využívá zdroje CPU

// Dojde k události, která vyžaduje přepnutí, například vypršení kvanta času procesu A
// Stav procesu A (registr, PC) je uložen
// Operační systém vybere proces B k vykonání
// Stav procesu B je načten
// Proces B začíná vykonávat

Přepínání kontextu je základní mechanismus multitaskingu v operačních systémech, který umožňuje vytvářet iluzi paralelního vykonávání více procesů na jednom fyzickém procesoru.