最近在学习计算机的基础知识,在汇编语言,组成原理,操作系统中都遇到了中断这个概念,所以决定对这个概念做一个系统的梳理。
1.中断的概念
计算机在执行程序的过程中,当出现异常情况或特殊请求时,计算机停止程序的运行,转向对这些异常请求的处理,处理结束后再返回到现行程序的间断处,继续执行原程序,这就是“中断”。中断是提高计算机效率的一个十分重要的功能。通常把实现这种功能所需的软硬件技术统称为中断技术。
2.中断的分类
1.硬中断(要通过硬件产生):根据中断来自cpu内部还是外部,可以分为内中断(除法错误,int指令等)和外中断(I/O设备,外部信号中断(用户按ESC键)等)。
2.软中断:通信进程之间用来模拟硬中断的一种信号通信方式(这个概念主要来源于UNIX系统)。
3.中断的优先级
当有几个中断源同时向cpu发送中断请求,中断系统有中断判优逻辑,可以通过硬件或软件实现
分别是硬件排队和软件查询。保证cpu首先响应级别高的中断。
4.(外)中断的屏蔽
中断还可以分为可屏蔽中断和不可屏蔽中断,可屏蔽中断就是cpu可以不响应的中断,不可屏蔽中断是cpu必须响应的中断。王爽《汇编语言》上说几乎所有由外设引发的的外中断都是可屏蔽中断,而内中断似乎都是不可屏蔽中断(标志寄存器IF位为零),这个分类在王爽的汇编语言中是在外中断中进行分类的,但是我没在其他书上看见过......
5.中断的流程
分为保护现场,中断服务,恢复现场,中断返回。在计算机的处理中断的过程中,有可能会出现新的中断请求,此时如果cpu暂停现行的中断服务程序,转去处理新的中断请求,这种现象称为中断嵌套,或多重中断。若对新的中断不予理睬,这种中断称为单重中断。要实现多重中断,现在执行的中断程序显然是可屏蔽的。这两种中断的中断服务程序略有区别,主要是开中断的设置时间不同。