Назад к вопросам
Junior
93
questionbank
Что такое переключение контекста?
Sobes Copilot
Получайте ответы в реальном времени
Ответ от нейросети
sobes.tech AI
Переключение контекста (Context Switching) — это процесс сохранения состояния одного процесса (или потока) и восстановления состояния другого процесса (или потока) операционной системой. Это позволяет нескольким процессам разделять один и тот же процессор.
Алгоритм включает следующие шаги:
- Сохранение текущего контекста: Регистры процессора, счетчик команд (PC), состояние стека и другая информация о текущем процессе сохраняются в его дескрипторе (PCB - Process Control Block).
- Выбор следующего процесса: Планировщик операционной системы выбирает следующий процесс для выполнения.
- Восстановление контекста: Сохраненное состояние выбранного процесса загружается из его PCB в регистры процессора.
Накладные расходы (overhead) на переключение контекста включают:
- Время, затрачиваемое на сохранение и восстановление состояния.
- Потеря эффективности из-за промахов кэша (cache misses), так как кэш, заполненный данными одного процесса, становится неактуальным для другого.
- Затраты на выполнение инструкций планировщика.
Пример:
Предположим, у нас есть два процесса, A и B, выполняющиеся на одном ядре процессора.
// Изначально выполняется Процесс A
// Процесс A использует ресурсы ЦПУ
// Происходит событие, требующее переключения, например, квант времени Процесса A истек
// Состояние Процесса A (регистры, PC) сохраняется
// ОС выбирает Процесс B для выполнения
// Состояние Процесса B загружается
// Процесс B начинает выполнение
Переключение контекста является фундаментальным механизмом многозадачности в операционных системах, позволяющим создавать иллюзию параллельного выполнения множества процессов на одном физическом процессоре.