Подтвердить что ты не робот

В чем разница между контекстом прерывания и исключения?

Есть ли какое-то существенное различие между этими двумя? Есть ли что-то, что можно сделать в одном, а не в другом? Должен ли я проявлять большую осторожность при модификации, например, обработчика ошибок страницы, чем обработчик таймера?

4b9b3361

Ответ 1

Прерывание является одним из классов исключения. Существует четыре класса исключений: прерывание, прерывание, сбой и прерывание. Прерывание происходит асинхронно и инициируется сигналом, поступающим от устройства ввода-вывода, которое является внешним по отношению к процессору. После того, как обработчик исключений завершит обработку этого прерывания (обработка исключений), обработчик всегда вернется к следующей инструкции.

Ответ 2

Прерывания и исключения изменяют ход программы. разница между двумя это то, что прерывания используются для обработки внешние события (последовательные порты, клавиатура) и исключения используются для обработки инструкция ошибки (деление на ноль, неопределенный код операции).

Прерывания обрабатываются процессором после завершения ток инструкция. Если он находит сигнал на своем контакте прерывания, он будет смотреть вверх адрес обработчика прерываний в таблице прерываний и передать этот рутинный контроль. После возвращения из прерывания обработчик программа возобновит выполнение программы на инструкция после прерванная инструкция.

Исключения с другой стороны делятся на три вида. Это Неисправности, ловушки и прерывания. Неисправности обнаружены и обслужены посредством процессор перед ошибочными инструкциями. Ловушки обслуживается после инструкция, вызывающая ловушку. Пользовательские прерывания войти в это категория и, можно сказать, ловушки; это включает в себя MS- DOS INT 21h программное прерывание, например. Прерывания используются только для сильный сигнал системные проблемы, когда работа больше невозможна.

Исследования в: https://www.allinterview.com/showanswers/14289/distinguish-between-interrupts-and-exceptions.html