中断处理程序的作用是什么?

What does an interrupt handler do?

我知道当键盘中断发生时,处理程序有代码来保存已经接收到的字符。其他创建中断的事件(如堆栈溢出、算术溢出、被零除等)又如何呢?当这些事件发生时,中断处理程序会做什么?

基本上有三种类型的中断:

  • 当有来自外部设备(例如键盘或鼠标)的信号时,就会发生硬件中断。这些中断处理程序将从设备获取数据,然后让程序继续运行,就好像什么也没发生一样。

  • 软件中断由程序本身触发,用于调用操作系统或设备驱动程序中的子程序。

  • 异常中断是由某些操作在出现意外结果或无法获得正常结果的情况下触发的,例如被零除。根据错误的不同,它们的处理程序会有所不同,但通常它们会打印出一条错误消息并终止程序。