Skip to main content

Что такое переключение контекста?

Один из самых больших шагов вперед в разработке и эксплуатации центральных процессоров (ЦП) произошел, когда разработчики компьютерных операционных систем разработали методы, позволяющие пользователям работать в многозадачном режиме. Многозадачность в отношении компьютеров - это практика одновременного запуска двух или более программ. С точки зрения конечного пользователя, это может показаться не сложным или надуманным, но на самом деле представляет собой значительный скачок в проектировании системы. В многозадачном режиме ЦП должен манипулировать всеми операциями для разных активных программ, записывая, где он находится с каждой программой, когда пользователь переключается между ними. Переключение контекста - это процесс, который позволяет центральному процессору запоминать и восстанавливать состояния для множества активных программ, позволяя ему выполнить эту операцию жонглирования.

Во время переключения контекста процессор сбрасывает любую программу, которую он в данный момент обрабатывает, сохраняя конкретное место, в котором он находился в этой программе, чтобы он мог возобновить свой прогресс позже. Чтобы представить это в перспективе, переключение контекста похоже на чтение нескольких книг одновременно, постоянное переключение между ними, при этом всегда запоминайте номера страниц для каждой. Информация «номер страницы» для программ во время операции переключения контекста хранится в блоке управления процессом (PCB). PCB также иногда называют «коммутационной рамой». Эта информация хранится в памяти фактического ЦП, пока она не понадобится снова.

Переключение контекста происходит в трех возможных ситуациях: обработка прерываний, многозадачность и переключение пользователей. При обработке прерываний другая программа «прерывает» текущую программу во время ее работы. Как только процессор получает прерывание, он выполняет переключение контекста для переключения между работающей программой и программой, запрашивающей немедленные данные. В многозадачном режиме ЦП переходит назад и вперед между программами, давая интервал времени обработки каждой и выполняя операцию переключения контекста для переключения между ними. Для некоторых операционных систем переключение контекста также выполняется во время переключения пользователя для операционной системы, хотя это явно не требуется.

Либо операционная система, либо аппаратное обеспечение компьютера могут управлять переключением контекста. Некоторые современные операционные системы и предназначены для управления переключением контекста через саму операционную систему, игнорируя любую встроенную аппаратную поддержку процедуры. Это позволяет операционной системе сохранять больше информации во время переключения контекста, позволяя ей сохранять больше информации о переключателе.