与 OS 和 CPU 有关的中断

Interrupts in relation to the OS and CPU

在我的演讲幻灯片中说中断引起 CPU 的注意,但是当我阅读在线文章时它说中断引起 OS 的注意。有人可以向我解释为什么文字有所不同吗?中断是否先转到 OS 然后 OS 联系 CPU?我在这里很困惑,因为最初我认为中断会直接引起 CPU 的注意,但它似乎首先引起 OS 的注意?

此 post 仅与 x86 相关。中断在其他架构中的工作方式可能不同。

中断有两种:硬件中断和软件中断。硬件中断由系统上的硬件生成:例如,定时器、设备(例如,键盘输入)等。软件中断由代码通过 int 指令生成。

在这两种情况下,您的操作系统内核都必须安装 中断处理程序,中断处理程序会在触发中断时调用。计时器的中断处理程序可能会导致内核进行任务切换。软件中断通常用于进行系统调用,作为用户级代码从内核请求功能的入口点(例如,打开文件或从文件描述符中读取);中断 0x21(对于 DOS)和 0x80(对于 Unix)是系统调用软件中断的例子。

为了回答这个问题,硬件中断会引起 CPU 的注意,可以这么说,但最终 OS 内核也必须知道如何处理它,通过安装一个有用的中断处理程序。