Режим ядра (Механизм переключения в РЯ)

Для новичков как вообще в Linux, так и в конкретной теме, к которой относится вопрос.

Модератор: Bizdelnick

_petya_
Сообщения: 53

Режим ядра

Сообщение _petya_ »

Задался вопросом - как происходит переключение из режима задачи в режим ядра. Как я понимаю - переход из РЗ в РЯ - это смена Current Privilegue Level(CPL). В доках нашёл, что сие действо происходит с помощью некоего "шлюза ловушки" - внутреннего прерывания процессора. Буду весьма благодарен, если кто из знающих поподробнее опишет этот процесс (круто было бы прямо на примере сис. вызова).
Спасибо сказали:
Аватара пользователя
Liksys
Сообщения: 2910

Re: Режим ядра

Сообщение Liksys »

Это надо было в программировании спрашивать. Ну ладно, расскажу :)
Итак, обработка системного вызова.
Сначала аргументы системного вызова в обратном поряде передаются в стек, затем следует вызов собсно функции. Потом функция дергает процессор за TRAP (эмулированное прерывание) для переключения в режим ядра. Потом происходит передача к обработчику системного вызова. После обработки системного вызова функция возвращается, управления передается программе полдьзователя, увеличивается указатель на вершину стека на количество переданных системному вызову параметров и прога может работать дальше.
Спасибо сказали:
_petya_
Сообщения: 53

Re: Режим ядра

Сообщение _petya_ »

Благодарю за ответ.
Спасибо сказали: