Должен ли быть переключатель режимов, чтобы что-то квалифицировалось как переключение контекста?

#language-agnostic #process #operating-system #context-switch

#независимо от языка #процесс #операционная система #переключение контекста

Вопрос:

Должен ли быть переключатель режимов, т.Е.. из режима пользователя в режим ядра, чтобы действие называлось переключением контекста?

Комментарии:

1. Они не связаны напрямую. «Переключение режимов» происходит внутри одного процесса. Переключение контекста включает в себя более одного процесса (или потока, или чего-то еще). Переключение контекста не подразумевает переключения режимов (может быть выполнено только аппаратным обеспечением). Переключатель режимов также не требует переключения контекста.

Ответ №1:

Нет. Не все процессоры даже имеют уровни привилегий.

Переключение контекста обычно означает восстановление состояния выполнения из блока управления процессом. Однако понятие контекста определяется реализацией. Из Википедии:

То, что составляет контекст, определяется процессором и операционной системой.

Когда в операционной системе требуется переход между пользовательским режимом и режимом ядра, переключение контекста не требуется; переход режима сам по себе не является переключением контекста. Однако, в зависимости от операционной системы, переключение контекста также может произойти в это время.

Комментарии:

1. «Когда в операционной системе требуется переход между пользовательским режимом и режимом ядра, переключение контекста не требуется». Что, если все наоборот? Я имею в виду, требуется ли переключение контекста для переключения режима?

Ответ №2:

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

Ответ №3:

Переключатель режимов — когда режим одного процесса переключается с уровня пользователя на уровень ядра или наоборот. Это происходит через системные вызовы. Когда процесс вызывает системный вызов, режим процесса изменится на режим ядра, и ядро начнет действовать от имени пользовательского процесса. И как только системный вызов вернется, режим процесса изменится с режима ядра на пользовательский режим. «Режим» — это свойство, связанное с процессом. Итак, переключатель режимов — это переключатель режима одного процесса.

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

Комментарии:

1. Хорошее объяснение, я искал это.