Что делает обработчик прерывания?

Я знаю, что когда происходит прерывание клавиатуры, обработчик имеет код для сохранения полученного символа. А как насчет других событий, которые создают прерывания, таких как переполнение стека, арифметическое переполнение, деление на ноль и т. д.? Что делает обработчик прерывания, когда происходят эти события?


person Marjolein Breysens    schedule 04.01.2015    source источник


Ответы (1)


В основном существует три типа прерываний:

  • Аппаратные прерывания происходят, когда есть сигнал от внешнего устройства, такого как, например, клавиатура или мышь. Обработчик прерывания для них получит данные с устройства, а затем позволит программе продолжить работу, как будто ничего не произошло.

  • Программные прерывания запускаются самой программой, они используются для вызова подпрограмм в операционной системе или в драйверах устройств.

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

person Guffa    schedule 04.01.2015