您的位置:首页 > 其它

180226—【操作系统】复习:中断机制

2018-02-26 21:52 459 查看
按:开学了,学习生活当然要入正轨。

之前看时草率,越往后越迷糊。遂回头再把一些东西搞明白,果然有收获:

中断

中断无非是用来提高处理器效率的一个手段。

中断指令

假如,一个 I/O 程序的调用可分为两个部分:

为实际的 I/O 操作做准备。比如:复制将要输出到特定缓冲区的数据,为设备命令准备参数。

实际的 I/O 命令。

设置一个表示操作成功或失败的标记。用于完成操作。

其中第一步较为简单,速度也快。但第二步将会消耗大量时间。

利用中断功能,处理器可以在 I/O 操作的执行过程中执行其他指令。

用户程序到达系统调用 WRITE 处,但涉及的 I/O 程序仅包括准备代码和真正的 I/O 命令。在这些为数不多的几条指令执行后,控制返回到用户程序。

在这期间,外部设备忙于从计算机存储器接收数据并打印。

而处理器得以执行接下来的其他用户程序指令

这种 I/O 操作和用户程序中指令的执行是并发的

这样就节省下了中间第二步的时间。

当外部设备做好服务的准备,也就是说,当它准备好从处理器接收更多的数据时,

该外部设备的 I/O 模块给处理器发送一个中断请求信号。

(外部设备对 CPU 说:我的活干完了,你快给我派任务啊!)

这时处理器会做出响应,暂停当前程序的处理,转去处理服务于特定 I/O 设备的程序,这个程序称做中断处理程序(interrupt handler)。在对该设备的服务响应完成后,处理器恢复原先的执行。

为适应中断产生的情况,在指令周期中要增加一个中断阶段:



在中断阶段中,处理器检查是否有中断发生,即检查是否出现中断信号。如果没有中断,处理器继续运行,并在取指周期取当前程序的下一条指令;如果有中断,处理器挂起当前程序的执行,

并执行一个中断处理程序。这个中断处理程序通常是操作系统的一部分,完成两个工作

它确定中断的性质;

并执行所需要的操作。

(划重点了撒!)

例如,在前面的例子中,处理程序决定哪一个 I/O 模块产生中断,并转到往该 I/O 模块中写更多数据的程序。当中断处理程序完成后,处理器在中断点恢复对用户程序的执行。

中断处理

来看详解:

当一个 I/O 设备完成一次 I/O 操作时,发生下列硬件事件:



1)设备给处理器发出一个中断信号。(我是 I/O,给活!)

2)处理器在响应中断前结束当前指令的执行,即上图指令周期所示。

3)处理器对中断进行测定,确定存在未响应的中断,(到底有没有?)

并给提交中断的设备发送确认信号,确认信号允许该设备取消它的中断信号。

4)处理器需要为把控制权转移到中断程序中去做准备。首先,需要保存从中断点恢复当前程序所需要的信息,要求的最少信息包括程序状态字(PSW)和保存在程序计数器中的下一条要执行的指令地址,它们被压入系统控制栈中。(大家做好准备先撤)

5)处理器把响应此中断的中断处理程序入口地址装入程序计数器中。

(决定调用哪个中断处理程序并告知天下)

可以针对每类中断有一个中断处理程序,也可以针对每个设备和每类中断各有一个中断处理程序,这取决于计算机系统结构和操作系统的设计。

如果有多个中断处理程序,处理器就必须决定调用哪一个,这个信息可能已经包含在最初的中断信号中,否则处理器必须给发中断的设备发送请求,以获取含有所需信息的响应。

一旦完成对程序计数器的装入,处理器则继续到下一个指令周期,该指令周期也是从取指开始。由于取指是由程序计数器的内容决定的,因此控制被转移到中断处理程序,该程序的执行引起以下的操作:

6)在这一点,与被中断程序相关的程序计数器和 PSW 被保存到系统栈中,此外,还有一些其他信息被当做正在执行程序的状态的一部分。特别需要保存处理器寄存器的内容,因为中断处理程序可能会用到这些寄存器,因此所有这些值和任何其他的状态信息都需要保存。在典型情况下,中断处理程序一开始就在栈中保存所有的寄存器内容。

7)中断处理程序现在可以开始处理中断,其中包括检查与 I/O 操作相关的状态信息或其他引起中断的事件,还可能包括给 I/O 设备发送附加命令或应答。

8)当中断处理结束后,被保存的寄存器值从栈中释放并恢复到寄存器中。处理器继续执行此前被挂起的用户程序。

P.S.

所谓处理中断,即执行中断处理程序,即此时将之前正在处理的用户程序挂起,全心运行一个中断处理程序来处理中断。

以 I/O 设备为例。所谓一个中断的出现包括:

I/O 设备处理完当前工作,发出信号告知 CPU 自己处于空闲 –>

CPU 确定中断的性质并决定调用哪个(哪种)中断处理程序–>

CPU 为运行中断处理程序做准备–>

运行中断处理程序来处理中断–>

中断处理完毕,CPU 重新执行此前任务。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: