中断的阶段和处理过程是什么?
指令周期包括取指令、执行和中断阶段,如下图所示:
如果发生任何中断,则由中断标志指示。CPU 将转到中断处理程序例程。中断处理程序然后检查中断类型并执行相应的函数。这会涉及开销,但仍然比 CPU 等待 I/O 完成或其他活动要好。
中断处理程序首先激活优先级最高的活动,然后处理可延迟的部分。
示例
网络线路上传输的数据块。
内核标记数据的存在(紧急部分),并将 CPU 返回到之前正在运行的进程。
其余处理可以在以后完成(将数据移动到接收方可以找到它的缓冲区)
中断向量
内存中的指针表包含给定 CPU 固定位置的中断服务例程的地址。
中断处理
步骤 1 - 首先,设备向 CPU 发出中断。
步骤 2 - 然后,CPU 完成当前指令的执行。
步骤 3 - CPU 测试是否有挂起的中断请求。如果有,则向设备发送确认信号,从而删除其中断信号。
步骤 4 - CPU 将程序状态字保存到控制堆栈。
步骤 5 - CPU 将中断处理程序的位置加载到 PC 寄存器。
步骤 6 - 将所有寄存器的内容从控制堆栈保存到内存。
步骤 7 - 找出中断的原因或中断类型,或调用相应的例程。
步骤 8 - 从堆栈恢复已保存的寄存器。
步骤 9 - 将 PC 恢复为调度原始进程。
广告