Sobes.tech
Junior

Шта је прелазак контекста?

sobes.tech АИ

Одговор од АИ

Прекид контекста (Context Switching) је процес чувања стања једног процеса (или тока) и враћања стања другог процеса (или тока) од стране оперативног система. Ово омогућава више процеса да деле један процесор.

Алгоритам укључује следеће кораке:

  1. Сачувавање тренутног контекста: Регистри процесора, бројач инструкција (PC), стање стека и друге информације о тренутном процесу се чувају у његовом опису (PCB - Блок контроле процеса).
  2. Избор следећег процеса: Планер оперативног система бира следећи процес за извршавање.
  3. Враћање контекста: Сачувано стање изабраног процеса се учита из његовог PCB у регистре процесора.

Трошкови (overhead) преласка контекста укључују:

  • Време посвећено чувању и враћању стања.
  • Губитак ефикасности због cache misses, јер кеш, попуњен подацима једног процеса, постаје неактуалан за други.
  • Трошкови извршавања инструкција планера.

Пример:

Замислимо да имамо два процеса, A и B, који се извршавају на једном процесорском језгру.

// У почетку се извршава процес A
// Процес A користи ресурсе ЦПУ

// Догађа се догађај који захтева прелазак, нпр. истек квант времена процеса A
// Стање процеса A (регистри, PC) се чува
// Оперативни систем бира процес B за извршавање
// Стање процеса B се учита
// Процес B почиње извршавање

Прекид контекста је основни механизам мултизадањског рада у оперативним системима, који омогућава стварање илузије паралелног извршавања више процеса на једном физичком процесору.