1中断机制的产生
对于OS中的I/O系统,采取从最低层向高层介绍,首先介绍中断处理。
中断在OS中有着特殊且重要的地位,它是多道程序得以实现的基础,没有中断就不可能实现多道程序,因为进程之间的切换是通过中断来完成的。另外,中断也是设备管理的基础,为了提高CPU的利用率并实现CPU和I/O设备并行执行,也必须有中断的支持。中断处理程序是I/O系统中最低的一层,它是整个I/O系统的基础。
2 中断的本质
中断的本质:发生中断就意味着需要操作系统介入,开展管理工作。
当发生了中断,就意味着需要操作系统的介入,开展管理工作。由于操作系统的管理工作(如进程切换、分配IO设备)需要使用特权指令,因此CPU要从用户态转换为核心态。中断就可以使CPU从用户态转换为核心态,使操作系统获得计算机的控制权。因此,有了中断,才能实现多道程序并发执行。
用户态到核心态的转换就是通过中断机制实现的(软中断),并且中断是唯一途径。
核心态到用户态的切换时通过执行一个特权指令,将程序状态字(PSW)标志位设置为用户态。
3 中断的分类
(1)中断(interrupt)。中断是指CPU对I/O设备发来的中断信号的一种响应。CPU暂停正在执行的程序,保存CPU现场环境后,自行转去执行该I/O设备的中断处理程序。执行完后再回到断点,继续执行原来的程序。I/O设备可以是字符设备,也可以是块设备以及通信设备等。由于中断是由外部设备引起的,故其又称为外中断或硬中断。
(2)陷入或陷阱(trap)。另外还有一种由CPU内部事件所引起的中断,例如进程在运算过程中发生了上溢或下溢,再如程序出错(如指令非法、地址越界、电源故障等)以及执行到程序中预设的软中断指令。通常把这类中断称为内中断,或软中断,或陷入。与中断一样,若系统发生了陷入事件,CPU也将暂停正在执行的程序,转去执行该陷入事件的处理程序。中断和陷入的主要区别是信号的来源不同,即来自于CPU外部还是CPU内部。
4 中断的处理过程

当一个进程请求I/O操作时,该进程将被挂起。直到I/O设备完成I/O操作时,设备控制器才会向CPU发送一条中断请求,CPU响应后便转向中断处理程序,中断处理程序执行相应的处理,并在处理完后解除相应进程的阻塞状态。
1.测定是否有未响应的中断信号
2.保护被中断进程的CPU现场环境
3.转入相应设备的中断处理程序
4.处理中断
5.恢复CPU现场环境后退出中断
5 小结
(1) 中断是为了实现多道程序并发执行而引入的一种技术。
(2) 中断的本质就是发生中断时需要操作系统介入开展管理工作。
(3) 发生时,CPU会立即进入核心态,针对不同的中断信号,采取不同的处理方式。
(4) 中断(软中断)是CPU从用户态进入核心态的唯一途径。
(5) 中断分为内中断和外中断。
(6) 进程中断时,操作系统会保存CPU的运行环境,如程序状态字(PSW)、程序计数器、各种通用寄存器,这是为了当进程再次运行时可以从中断的状态处继续运行。
不够明白?深刻理解中断!