【计算机考研408】中断处理流程

  1. 中断请求

中断源是请求CPU中断的设备或事件,一台计算机允许有多个中断源。每个中断源向CPU发出中断请求的时间是随机的。

  1. 中断响应判优

中断响应优先级是指CPU响应中断请求的先后顺序。当多个中断源同时提出请求时,需通过中断判优逻辑来确定响应哪个中断源的请求,中断响应的判优通常是通过硬件排队器实现的。

  1. CPU响应中断的条件

CPU在满足一定的条件下响应中断源发出的中断请求,并经过一些特定的操作,转去执行中断服务程序。

CPU响应中断必须满足以下三个条件:

(1)中断源有中断请求。

(2)CPU允许中断及开中断(异常和不可屏蔽中断不受此限制)。

(3)一条指令执行完毕(异常不受此限制),且没有更紧迫的任务。

(CPU在每条指令执行结束前,检查中断请求,若有,则进入中断响应阶段,又称中断周期)

  1. 中断响应过程(中断周期)

CPU响应中断后,经过某些操作,转去执行中断服务程序。

这些操作由硬件直接实现,我们将它称为中断隐指令。中断隐指令并不是指令系统中的一条真正的指令,只是一种虚拟的说法,本质上是硬件的一系列操作。

它所完成的操作如下:

扫描二维码关注公众号,回复: 14963806 查看本文章

(1)关中断。保证断点或现场保存的正常进行,防止被其它中断影响。

(2)保存断点。保证在中断服务程序执行后能正确地返回到原来的程序。(保存PC和PSW的内容)。

(3)引出中断服务程序。识别中断源,将中断的服务程序入口地址送人PC。

  1. 中断处理过程(中断隐指令(1)(3)和中断服务程序(4)(9))

中断隐指令

(1)关中断。

(2)保存断点。将发生中断的指令压入堆栈中。

(3)中断服务程序寻址。识别中断源,确定中断类型号,从而找到相应中断处理程序的入口地址。

以上三步一般由处理中断的硬件电路完成

下面一般由软件完成

中断服务程序

中断服务程序具体负责处理中断(异常)的代码是由软件,也就是操作系统实现的,这部分代码属于操作系统内核代码。(说由cpu处理的也没问题)

(4)保存现场和屏蔽字。进入中断服务程序后首先要保存现场和中断屏蔽字,现场信息是指用户可见的工作寄存器的内容,它存放着程序执行到断点处的现行值(由操作系统完成)。

(5)开中断。允许更高级中断请求得到响应,实现中断嵌套。

(6)执行中断服务程序。这是中断请求的目的。

(7)关中断。保证在恢复现场和屏蔽字时不被中断。

(8)恢复现场和屏蔽字。

(9)开中断、中断返回。中断服务程序的最后一条指令通常是一条中断返回指令,使其返回到原程序的断点处,以便继续执行原程序。

王道视频与书上的内容不同,视频将中断流程分为三个阶段
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_43382350/article/details/128389710
今日推荐