5.1概述
产生和应用
在IO设备和主机交换数据时,由于设备本身的机电特性的影响,其工作速度比较低,与CPU无法匹配,如果采用程序查询的方式需要CPU进行等待,但是如果在等待的过程中CPU可以执行其他的程序,可以提高计算机系统的效率。
中断技术提高计算机的处理速度,比如在程序断电时,立即启动备份电源防止数据丢失,在控制系统中,需要及时响应外部的信号并作出反应
5.2中断
中断是计算机在异常情况或者是发出特殊请求计算机停止当前运行程序的状态,中断不仅可以为外部设备服务,也可以为计算机服务(比如发出乘法的溢出,比如发生除数为0的情况),具体可以看这一篇博客:
HIT-CSAPP第八章 异常控制流上课笔记_旅僧的博客-CSDN博客
工作过程
中断服务程序->入口地址(PC)中断向量(后边会详细介绍)
举例
CPU向打印机发出打印的信号,然后打印机开始做准备工作,同时信号返回CPU继续执行主程序,当打印机准备完之后,CPU执行完当前的指令之后执行中断服务程序,此时CPU处在内核态。
形象举例:我放学回家,不知道什么时候饿了,然后发出饿的信号给妈妈,妈妈回应我说她知道了,这时候妈妈准备饭的时间很长,我不会等妈妈做完饭先去写作业,我做题做一半时候妈妈好饭之后发出信号给我让我吃饭,我得等这个题写完之后才能吃饭。
硬件构成
接口电路
中断实现需要硬件和软件共同来完成。
为了实现这些功能需要硬件软件相配合,下面是硬件的组成。
- 中断请求触发器(INTR)和中断屏蔽触发器
- 排队器
- 中断向量形成地址
- 程序中断接口电路
每台设备都必须要有一个中断请求触发器INTR为1的时候代表向CPU发出中断请求,将要执行的程序形成一个个的地址用硬件来进行一个排队,如果需要执行这个程序的时候产生一个中断向量地址,向量的地址代表中断程序的入口地址。
MASK决定优先级,如果优先级比较低那么mask的值就是1
程序查询通过软件的方式进行排队。硬件的方式是硬件排队器,但是这种方式只能屏蔽掉优先级别更低的程序,可以增加硬件实现更高级别的信号的屏蔽。
中断向量地址形成部件
CPU一旦响应了IO中断 就要暂停线性的程序,转去执行中断服务程序,不同的设备有不同的中断服务程序,每个服务程序都有一个入口地址,CPU必须找到这个入口地址。
入口地址可以由硬件和软件形成,这里介绍硬件。所谓硬件向量法,就是通过向量地址来寻找设备的专断服务程序的入口地址,而且向量的地址是由硬件电路产生的。
CS:IP相当于PC
中断服务程序的流程
允许中断服务程序的时候只需要讲EINT的值变为1就行。
可能需要我们对中断流程有很深入的理解。