中断的阶段和处理过程是什么?


指令周期包括取指令、执行和中断阶段,如下图所示:

如果发生任何中断,则由中断标志指示。CPU 将转到中断处理程序例程。中断处理程序然后检查中断类型并执行相应的函数。这会涉及开销,但仍然比 CPU 等待 I/O 完成或其他活动要好。

中断处理程序首先激活优先级最高的活动,然后处理可延迟的部分。

示例

网络线路上传输的数据块。

内核标记数据的存在(紧急部分),并将 CPU 返回到之前正在运行的进程。

其余处理可以在以后完成(将数据移动到接收方可以找到它的缓冲区)

中断向量

内存中的指针表包含给定 CPU 固定位置的中断服务例程的地址。

中断处理

步骤 1 - 首先,设备向 CPU 发出中断。

步骤 2 - 然后,CPU 完成当前指令的执行。

步骤 3 - CPU 测试是否有挂起的中断请求。如果有,则向设备发送确认信号,从而删除其中断信号。

步骤 4 - CPU 将程序状态字保存到控制堆栈。

步骤 5 - CPU 将中断处理程序的位置加载到 PC 寄存器。

步骤 6 - 将所有寄存器的内容从控制堆栈保存到内存。

步骤 7 - 找出中断的原因或中断类型,或调用相应的例程。

步骤 8 - 从堆栈恢复已保存的寄存器。

步骤 9 - 将 PC 恢复为调度原始进程。

更新时间: 2021年11月26日

22K+ 浏览量

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告