Я знаю, что когда происходит прерывание клавиатуры, обработчик имеет код для сохранения полученного символа. А как насчет других событий, которые создают прерывания, таких как переполнение стека, арифметическое переполнение, деление на ноль и т. д.? Что делает обработчик прерывания, когда происходят эти события?
Что делает обработчик прерывания?
Ответы (1)
В основном существует три типа прерываний:
Аппаратные прерывания происходят, когда есть сигнал от внешнего устройства, такого как, например, клавиатура или мышь. Обработчик прерывания для них получит данные с устройства, а затем позволит программе продолжить работу, как будто ничего не произошло.
Программные прерывания запускаются самой программой, они используются для вызова подпрограмм в операционной системе или в драйверах устройств.
Исключительные прерывания запускаются определенными операциями, когда есть неожиданный результат или условие, при котором не может быть нормального результата, например, деление на ноль. Что обработчики для них немного различаются в зависимости от того, что такое ошибка, но обычно они распечатывают сообщение об ошибке и завершают программу.