Создает ли выполнение обработчика прерывания новый процесс или он является частью существующего процесса?

С самого начала https://en.wikipedia.org/wiki/Interrupt существует три разные виды прерываний:

  • аппаратное прерывание,

  • Программное прерывание, вызванное исключительным состоянием в самом процессоре (часто называемое прерыванием или исключением)

  • Программное прерывание, вызванное выполнением специальной инструкции в наборе команд. (Например, системные вызовы)

Мой вопрос в том, что когда процессор переключается на запуск обработчика прерывания,

  1. создается новый процесс для запуска обработчика прерывания?

  2. Или выполнение обработчика прерывания является частью существующего процесса, например

    • in the first kind of interrupt, the process which requests some service from a hardware device and then waits for the hardware interrupt which indicates that the device operation finishes,
    • процесс, вызывающий исключение во втором виде прерывания,
    • процесс, который вызывает системный вызов в третьем виде прерывания.

person Tim    schedule 04.12.2015    source источник
comment
Возможный дубликат Зачем нам нужен контекст прерывания?   -  person cadaniluk    schedule 04.12.2015
comment
Какие? Прерывания не имеют контекста процесса.   -  person Martin James    schedule 04.12.2015


Ответы (1)


создается новый процесс для запуска обработчика прерывания?

Выполняющийся процесс обрабатывает прерывание в режиме ядра.

Ваши три класса прерываний объединяют разные, но связанные концепции в один термин «прерывание».

Неисправности и ловушки - ИСКЛЮЧЕНИЯ, а не прерывания. Обычно они обрабатываются так же, как прерывания, но происходят синхронно с потоком инструкций (прерывания асинхронны) и (в отличие от прерываний) их нельзя заблокировать.

Обычно системный вызов - это ОШИБКА.

person user3344003    schedule 04.12.2015