#language-agnostic #process #operating-system #context-switch
#независимо от языка #процесс #операционная система #переключение контекста
Вопрос:
Должен ли быть переключатель режимов, т.Е.. из режима пользователя в режим ядра, чтобы действие называлось переключением контекста?
Комментарии:
1. Они не связаны напрямую. «Переключение режимов» происходит внутри одного процесса. Переключение контекста включает в себя более одного процесса (или потока, или чего-то еще). Переключение контекста не подразумевает переключения режимов (может быть выполнено только аппаратным обеспечением). Переключатель режимов также не требует переключения контекста.
Ответ №1:
Нет. Не все процессоры даже имеют уровни привилегий.
Переключение контекста обычно означает восстановление состояния выполнения из блока управления процессом. Однако понятие контекста определяется реализацией. Из Википедии:
То, что составляет контекст, определяется процессором и операционной системой.
…
Когда в операционной системе требуется переход между пользовательским режимом и режимом ядра, переключение контекста не требуется; переход режима сам по себе не является переключением контекста. Однако, в зависимости от операционной системы, переключение контекста также может произойти в это время.
Комментарии:
1. «Когда в операционной системе требуется переход между пользовательским режимом и режимом ядра, переключение контекста не требуется». Что, если все наоборот? Я имею в виду, требуется ли переключение контекста для переключения режима?
Ответ №2:
переключение контекста происходит только в режиме ядра. Если переключение контекста происходит между двумя процессами пользовательского режима, первый процессор должен перейти в режим ядра, выполнить переключение контекста, вернуться в пользовательский режим и так далее. Таким образом, должен быть переключатель режимов, связанный с переключением контекста.
Ответ №3:
Переключатель режимов — когда режим одного процесса переключается с уровня пользователя на уровень ядра или наоборот. Это происходит через системные вызовы. Когда процесс вызывает системный вызов, режим процесса изменится на режим ядра, и ядро начнет действовать от имени пользовательского процесса. И как только системный вызов вернется, режим процесса изменится с режима ядра на пользовательский режим. «Режим» — это свойство, связанное с процессом. Итак, переключатель режимов — это переключатель режима одного процесса.
Переключение контекста — это когда текущее состояние запущенного процесса сохраняется в каком-то месте, и для запуска выбирается новый процесс, и его уже сохраненное состояние загружается в регистры процессора. И теперь запускается новый процесс. Вся эта процедура «переключения контекста» выполняется «Планировщиком процессов».
Комментарии:
1. Хорошее объяснение, я искал это.