第五部分:2---中断与信号
目录
操作系统如何得知哪个外部资源就绪?
什么是中断机制?
CPU引脚和中断号的关系:
中断向量表:
信号和中断的关系:
操作系统如何得知哪个外部资源就绪?
-
操作系统并不会主动轮询所有外设来查看哪些资源准备好了。相反,外设通过中断机制来通知CPU。外设在资源就绪时,会通过硬件电路发送一个中断信号给CPU,通知它进行处理。
什么是中断机制?
-
中断机制是CPU和外设之间的一种直接通信方式,当外设(例如键盘、硬盘等)有需要服务的请求时,会通过发送中断信号告知CPU。
CPU引脚和中断号的关系:
-
CPU有专用的引脚来接收外设发出的中断信号。这些引脚通常用于接收外设发出的“中断请求”(Interrupt Request, IRQ)。不同外设可能对应不同的IRQ线路,这样CPU可以根据收到的IRQ来区分是哪一个外设发出的中断。
-
当外设通过IRQ线路发送信号后,CPU会通过一个专门的寄存器(通常叫做中断请求寄存器,Interrupt Request Register,IRR)来记录该中断请求的状态,并存储中断号。
-
当CPU检测到中断信号并查询IRR寄存器获取中断号后,它会查找中断向量表(Interrupt Vector Table, IVT),该表包含了不同中断号对应的中断处理程序的地址。
中断向量表:
-
系统维护且只维护一张全局的中断向量表,中断向量表是一个函数指针数组,数组的下标是中断号,数组元素是一个函数指针,指向处理这个中断号的函数。
-
当外设发出中断号时,CPU 调用相应函数读取或处理数据。
-
不是所有硬件都能发出中断信号,中断针脚是有限的,但大多数常用硬件都支持中断机制。
信号和中断的关系:
-
信号机制可以视为中断在软件层面的模拟。
-
当键盘检测到特定的组合键(如 Ctrl+C 或 Ctrl+Z),系统会生成一个信号,通知相应进程进行处理,类似于硬件中断通知 CPU。