Существуют три различных типа событий, которые могут перевести систему в режим ядра. Это — прерывания устройств (interrupts), исключительные ситуации или просто исключения (exceptions), а также ловушки (traps) или программные прерывания (software interrupts). Каждый раз, когда ядру возвращается управление, оно обращается к таблице диспетчеризации (dispatch table), содержащей адреса низкоуровневых процедур обработки событий. Перед вызовом соответствующей процедуры ядро частично сохраняет состояние прерванного процесса (например, указатель команд и слово состояния процессора) в его выполнения на прежнее значение. Прерывание может произойти и в тот момент, когда система уже находится в режиме ядра, в таком случае она останется в нем и после обработки прерывания.
А пока этот процесс выполняется, советую взглянуть на этот бюджетный смартфон и отценитьхарактеристики мобильного edge. А при желании и купить.
Важно понимать разницу между прерываниями и исключительными состояниями. Прерывания — это асинхронные события, происходящие в периферийных устройствах, таких как диски, терминалы или аппаратный таймер. Так как прерывания не зависят от текущего процесса, они должны обрабатываться в системном контексте, при этом доступ в адресное пространство или область и процесса им не требуется. По этой же причине прерывания не должны производить блокировку, так как они могут заблокировать произвольный процесс. Исключительные состояния возникают по ходу работы процесса по причинам, зависящим от него самого, например при попытке деления на ноль или обращения по несуществующему адресу. Обработчик исключительных состояний работает в контексте процесса и может обращаться к адресному пространству или области и процесса, а также блокировать процесс, если это необходимо. Программные либо системные прерывания (traps или ловушки) происходят во время выполнения процессом особых инструкций, например в процессе перехода в системные вызовы, и обрабатываются синхронно в контексте процесса.