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