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:
- 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).
- Výběr následujícího procesu: Plánovač operačního systému vybere další proces k vykonání.
- 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.