深入了解操作系统基础知识之中断(包括软中断和硬中断)

一、中断

指当出现需要时,CPU暂时停止当前程序的执行转而执行处理新情况的程序和执行过程。即在程序运行过程中,系统出现了一个必须由CPU立即处理的情况,此时,CPU暂时中止程序的执行转而处理这个新的情况的过程就叫做中断。

中断过程:1.中断当前程序并保护断点  2.转入中断服务入口 3.保护现场 4.执行中断服务程序 5.恢复现场 6.中断返回

1.硬件中断

硬件中断是由硬件设备触发的中断,如时钟中断、外部中断等。

实际上,当硬件设备有数据或事件需要处理时,会向CPU发送一个中断请求,请求信号可由某个仪器在一定状态下发出。如有的自动测量系统中的高速数据卡就接收position controller发出的触发信号。而有的则依靠矢量网络分析仪接收外部触发信号。CPU在收到中断请求后,会立即暂停当前正在执行的任务,进入中断处理程序中处理中断请求。

硬件中断可以直接中断CPU. 它会引起内核中相关代码被触发. 对于那些需要花费时间去处理的进程, 中断代码本身也可以被其他的硬件中断中断.
对于时钟中断, 内核调度代码会将当前正在运行的代码挂起, 从而让其他代码来运行. 它的存在时为了让调度代码(或称为调度器)可以调度多任务.

硬件中断具有实时性强、可靠性高、处理速度快等特点。直接由硬件给出相关条件,不占用cpu执行时间。

2.软件中断

软件中断是由软件程序触发的中断,如系统调用、软中断、异常等。

软件中断不是由硬件设备触发的,而是由软件程序主动发起的,一般用于系统调用、进程切换、异常处理等任务。软件中断需要在程序中进行调用,其响应速度和实时性相对较差,但是具有灵活性和可控性高的特点。

3. 中断的好处

1、 提高了CPU的效率

CPU 是计算机的指挥中心,它与外围设备(如按键、显示器等)通讯的方法有查询和中断 2 种。

查询的方法是无论外围IO 是否需要服务,CPU 每隔一段时间都要依次查询一遍,这种方法 CPU 需要花费一些时间在做查询服务工作。

而中断则是在外围设备需要通讯服务时主动告诉 CPU, CPU 停下当前工作去处理中断程序, 从而提高了CPU 效率。

2、 可以实现实时处理

外设任何时刻都可能发出请求中断信号,CPU 接到请求后及时处理,以满足实时系统的需要。

3、 可以及时处理故障

计算机系统运行过程中难免会出现故障,有许多事情是无法预料的,如电源掉电、存储器出错、外围设备工作不正常等,这时可以通过中断系统向中断源 CPU 发送中断请求,由 CPU 及时转到相应的出错处理程序,从而提高计算机的可靠性。

物联沃分享整理
物联沃-IOTWORD物联网 » 深入了解操作系统基础知识之中断(包括软中断和硬中断)

发表评论