Книга: Разработка ядра Linux
Контекст процесса
Контекст процесса
Одна из наиболее важных частей процесса— это исполняемый программный код. Этот код считывается из выполняемого файла (executable) и выполняется в адресном пространстве процесса. Обычно выполнение программы осуществляется в пространстве пользователя. Когда программа выполняет системный вызов (см. главу 5, "Системные вызовы") или возникает исключительная ситуация, то программа входит в пространство ядра.
С этого момента говорят, что ядро "выполняется от имени процесса" и делает это в контексте процесса. В контексте процесса макрос current
является действительным[14]. При выходе из режима ядра процесс продолжает выполнение в пространстве пользователя, если в это время не появляется готовый к выполнению более приоритетный процесс. В таком случае активизируется планировщик, который выбирает для выполнения более приоритетный процесс.
Системные вызовы и обработчики исключительных ситуаций являются строго определенными интерфейсами ядра. Процесс может начать выполнение в пространстве ядра только посредством одного из этих интерфейсов — любые обращения к ядру возможны только через эти интерфейсы.
- 2.2.2.2 Состояния процесса
- 1.2 Процесс, контекст процесса и потоки
- Адресное пространство процесса
- 9.1.3. Установка приоритетов процесса: nice()
- Приоритет процесса (Nice Number)
- Состояния процесса
- 2.2.2.1 Контекст процесса
- 6.3 КОНТЕКСТ ПРОЦЕССА
- 6.4 СОХРАНЕНИЕ КОНТЕКСТА ПРОЦЕССА
- Этап 6: инициализация в контексте нового процесса
- Еще несколько слов о процессах, доменах приложения и контекстах