Начиная изучать ОС, нас спросили, что такое операция TRAP и когда она вызывается.
Попытка обосновать свой ответ, прочитав «Современные операционные системы» \ Tanenbaum (ch.1) I 'мы заметили 2 понятия, и вот что я понял:
a) «TRAP» - операция, которая вызывается после того, как пользовательская программа выполняет системный вызов:
syscall ->
компилятор помещает параметры в стек и сохраняет ключ syscall в регистре ->
вызов компилятора библиотечной функции ->
вызов библиотечной функции TRAP ->
Переключатель TRAP изрежим пользователя в режиме ядра ->
ОС вызывает соответствующий обработчик системного вызова.
b) «trap» - любая ситуация переключения режима с пользователя на ядро.Не обязательно по TRAP (но по исключениям, таким как деление на 0, работа с числами с плавающей точкой ... и ... еще ... что я не знаю ..)
, поэтому мои Qs:
TRAP и trap - это 2 разных (хотя и близких) понятия?
может ли ОС переключаться из режима пользователя в режим ядра (trap) другими способами, кроме TRAP?
(продолжение (2)) Что вызывает вызов TRAP рядом с системным вызовом?