1.5 中断和异常
本节主要内容
1.中断机制的诞生
2.中断的概念和作用
3.中断的分类
1.内中断(也称为”异常“)
2.外中断
4.外中断的处理过程
1.中断机制的诞生
1.早期的计算机各程序只能串行执行,系统资源利用率低(单道批处理系统)
2.为了解决系统利用率低的问题,人们发明了操作系统(作为计算机的管理者),
引入中断机制,实现了多道程序并发执行(多道批处理系统)
3.本质:发生中断就意味着操作系统介入,开展管理工作
2.中断的概念和作用
1.当中断发生时,CPU立即进入核心态
2.当中断发生后,当前运行的进程暂停运行,并由操作系统内核对中断进行处理
3.对于不同的中断信号,会有不同的处理
4.发生了中断,就意味着需要操作系统介入,开展管理工作。
由于操作系统的管理工作(如进程切换、分配I/O设备等)需要使用特权指令,
因此CPU从用户态转为核心态。中断可以使CPU冲用户态切换为核心态,
使操作系统获取计算机的控制权。有了中断,才能实现多道程序的并发执行。
5.用户态、核心态之间的切换是怎么实现的?
“用户态-->核心态”是通过中断实现的。并且中断时唯一途径
“核心态-->用户态”的切换是通过执行一个特权指令,
将程序状态字(PSW)的标志位设置为“用户态”
3.中断的分类
1.内中断(也称为异常、例外、陷入)
中断信号的来源:CPU内部,与当前执行的指令有关
1.自愿中断--指令中断(trap,陷入)
如:系统调用时使用的访问指令(又称为陷入指令、trap指令)
2.强迫中断
1.硬件故障(fault,故障),如:缺页
2.软件中断(abort,终止),如:整数除0
2.外中断(狭义的中断)
中断信号的来源:CPU外部,与当前执行的指令无关
1.外设请求
如:I/O操作完成发出的中断信号
2.人工干预
如:用户强行中断一个进程
3.另一种中断分类
1.陷入(trap)
2.故障(fault)
3.终止(abort)
4.外中断的处理过程
1.每条指令结束后,CPU检查是否有外部中断信号
2.若有外部中断信号,则需要保护被中断进程的CPU环境
3.根据中断信号转入相应的中断处理程序
4.恢复原进程的CPU环境并推出推出中断,返回原进程继续往下执行
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/5fda823a99fb78cafbdc5ce57f7326eb.png#pic_center)