目录
知识总览
1、中断机制的诞生
早期的计算机各程序只能串行执行,系统资源利用率低,为了解决这类问题,人们发明了操作系统(作为计算机的管理者),引入中断机制,实现了多道程序并发执行。
2、中断的概念和作用
①当中断发生时,CPU立即进入核心态;
②当中断发生后,当前进行的进程暂停运行,并由操作系统内核对中断进行处理;
③对不同的中断信号,会进行不同的处理;
发生了中断,就意味着需要操作系统介入,开展管理工作。由于操作系统的管理工作(如进程切换、分配I/O设备等)需要使用特权指令,因此CPU要从用户态转为核心态。中断可以使CPU从用户态切换为核心态,使操作系统获得计算机的控制权,有了中断,才能实现多道程序并发执行。
用户态->核心态:通过中断实现,且是唯一途径。
核心态->用户态:通过执行一个特权指令,将程序状态字(PSW)的标志位设置为“用户态”。
3、中断的分类
根据信号来源和当前执行的指令是否相关可分为以下两类:
(1)内中断(异常、例外、陷入)
信号来源:CPU内部,与当前执行的指令有关
①自愿中断:指令中断(系统调用时使用的访管指令(又叫陷入指令、trap指令))
②强迫中断:硬件故障(如缺页)、软件故障(如整数除0)
(2)外中断(中断-狭义上)
信号来源:CPU外部,与当前执行的指令无关
①外设请求(如I/O操作完成发出的中断信号)
②人工干预(用户强行终止一个进程)
另一种分类方式:
4、外中断的处理过程
步骤1:执行完每个指令之后,CPU都要检查当前是否有外部中断信号;
步骤2:若检测到外部中断信号,则需要保护被中断进程的CPU环境(如程序状态字PSW、程序计数器PC、各种通用寄存器);
步骤3:根据中断信号类型转入相应的中断处理程序;
步骤4:恢复原进程的CPU环境并退出中断,返回原进程继续往下执行。
回顾
参考:
《王道计算机考研 操作系统》
https://www.bilibili.com/video/av70156862