总览
.1. 中断机制的诞生
早期计算机由于需要串行执行程序的特点存在利用率低的问题,为了解决这一问题,人们发明操作系统并引入中断机制,实现多道程序并发执行。
本质:发生中断就意味着需要操作系统介入,开展管理工作。
.1.1.中断的概念和作用
1.当中断发生时,CPU立即进入核心态。
2.当中断发生后,当前运行的进程暂停运行,并由操作系统内核对中断进行处理。
3.对于不同的中断信号,会进行不同的处理。
发生了中断,就意味着需要操作系统介入,开展管理工作。由于操作系统的管理工作(比如进程切换、分配I/O设备等)需要特权指令,由于CPU要从用户态转为核心态。中断可以使CPU从用户态切换为和心态,使操作系统获得计算机的控制权。有了中断,才能实现多道程序并发执行。
Note:
用户态到核心态的切换是通过中断实现的,并且中断时唯一的途径。
而核心态到用户态的切换需要通过执行一个特权指令,将程序状态字(PSW)的标志位设置为“用户态”。
.1.2.中断的分类
Note:
外中断一般被称为狭义的中断,而最外层的中断也被称为广义的中断。
内、外中断的区别
区别在于信号的来源
内中断:信号来自CPU内部,与当前执行的指令有关。
外中断:信号来自CPU外部,与当前执行的指令无关。
.1.3.外中断的处理过程
在指令序列中途接收到外部中断信号(比如用户通过键盘输入字符)后,外中断的处理有以下步骤:
Step1:执行完每个指令后,CPU都要检查当前是否有外部中断信号;
Step2:如果检测到外部中断信号,则需要保护被中断进程的CPU环境(如程序状态字PSW、程序计数器PC、各种通用寄存器);
Step3:根据中断信号类型转入相应的中断处理程序。