中断和异常
《操作系统》
中断机制的诞生
早期的计算机各程序只能串行执行,执行完这一个才能执行下一个,所以系统资源利用率低。
为了解决上述问题,人们发明了操作系统(作为计算机的管理者),引入中断机制,实现了多道程序并发执行本质:发生中断就意味着需要操作系统介入,开展管理工作。
中断的概念和作用
1.当中断发生时,CPU立即进入核心态
2.当中断发生后,当前运行的进程暂停运行,并由操作系统内核对中断进行处理
3.对于不同的中断信号,会进行不同的处理
发生了中断,就意味着需要操作系统介入,开展管理工作。由于操作系统的管理工作(比如进程切换、分配I/o设备等)需要使用特权指令,因此CPU要从用户态转为核心态。中断可以使CPU从用户态切换为核心态,使操作系统获得计算机的控制权。有了中断,才能实现多道程序并发执行。
用户态、核心态之间的切换是怎么实现的?
“用户态→核心态”是通过中断实现的。并且中断是唯一途径。
“核心态→用户态”的切换是通过执行一个特权指令,将程序状态字(PSW)的标志位设置为“用户态”
中断的分类
![](http://photo.jiajiajia.club/weblog/2021-02-28/d1685602-ebd4-4341-9cc9-5d40effbb368.png)
Step 1:执行完每个指令之后,CPU都要检查当前是否有外部中断信号
Step 2:如果检测到外部中断信号,则需要保护被中断进程的CPU环境(如程序状态字PSw、程序计数器PC、各种通用寄存器)
Step 3:根据中断信号类型转入相应的中断处理程序
Step 4:恢复原进程的CPU环境并退出中断,返回原进程继续往下执行
外中断的处理过程
![](http://photo.jiajiajia.club/weblog/2021-02-28/0aa47772-f90a-427f-9bd9-81225e413775.png)
总结
![](http://photo.jiajiajia.club/weblog/2021-02-28/16b51ba0-12a8-402f-ac54-b727e3c9edaa.png)
fixed
没有一个冬天不可逾越,没有一个春天不会来临。最慢的步伐不是跬步,而是徘徊,最快的脚步不是冲刺,而是坚持。