Переключение контекста (англ. Context Switch) — в многозадачных ОС и средах, процесс прекращения выполнения процессором одной задачи (процесса, потока, нити) с сохранением всей необходимой информации и состояния, необходимых для последующего продолжения с прерванного места, и восстановления и загрузки состояния задачи, к выполнению которой переходит процессор.
В процедуру переключения контекста входит т. н. планирование задачи — процесс принятия решения к какой задаче передать управление.
Содержание |
При переключении контекста происходит сохранение и восстановление следующей информации:
В ядре ОС с каждым потоком связаны следующие структуры:
Кроме того, что очень важно, при переключении контекста происходят следующие программно-незаметные аппаратные действия, влияющие на производительность:
Кроме того, следует учесть следующие факты, влияющие на состояние системы:
С точки зрения прикладного уровня можно разделить добровольный (voluntary) и принудительный (non-voluntary) переключения контекста: выполняющийся процесс/поток может сам передать управление другому потоку, либо ядро само может отобрать управление.
Разницу между операционными системами реального времени и разделения времени особенно хорошо видно в различии логики планирования при переключении контекста: Планировщик систем разделения времени старается максимизировать производительность всей системы в целом, возможно в ущерб производительности отдельных процессов. Задача планировщика систем реального времени — обеспечить приоритетное выполнение отдельных, критических процессов, причем неважно, насколько жесткими накладными расходами для всей остальной системы в целом это обойдется.
Как видно из вышесказанного, переключение контекста является очень ресурсоемкой операцией, причем, чем более «навороченым» является процессор, тем более ресурсоемкой эта операция становится. Исходя из этого, ядро использует ряд стратегий чтобы, во-первых, сократить количество переключений контекста, а во вторых, сделать переключение контекста менее ресурсоемким.
Методы уменьшения количества переключений контекста:
Методы снижения ресурсоемкости переключения контекста:
Вышеприведенные примеры относятся к ядру Linux, однако прочие операционные системы также применяют сходные методы, хотя в случае проприетарных ОС доказать/опровергнуть использование этого является проблематичным.
Аспекты операционных систем (история • список) | |
---|---|
Ядро |
Гибридное • Микро • Модульное • Монолитное • Нано • Экзо • Драйвер • Пространство пользователя • Область пользователя |
Управление процессами |
Режимы (супервизора • реальный • защищённый) • Прерывание • Кольца защиты • Переключение контекста • Многозадачность (вытесняющая • кооперативная • мультипрограммирование) • Процесс • Управление процессом • Планировщик задач • Многопоточность |
Управление памятью |
|
Прочее |
Загрузчик ОС • API • VFS • Компьютерная сеть • GUI • Слой аппаратных абстракций (HAL) |
Переключение контекста переведи, переключение контекста прерывание, переключение контекста процессора, переключение контекста как переводится.
Категория:Родившиеся в Кунгурском районе, Доктор, Пауль, Bekuh BOOM, Бразилейра (Пиауи), Бенацки, Ральф.