如果这篇博客对您有用的话,可以给我点个赞吗,这对我很重要,谢谢!❤️
文章目录
- 1.1.5 中断和异常
- 1.1.5.1 中断机制的诞生
- 1.1.5.2 中断的概念和作用
- 1.1.5.3 中断的分类
- 1.1.5.4 小结
1.1.5 中断和异常
知识总览
1.1.5.1 中断机制的诞生
在早期的计算机中,程序只能在计算机中串行执行,如图:
后一道程序常常得等前一道程序执行完,才能开始下一道。这样的话,由于各程序只能串行执行,系统资源利用率低。
为了解决上述问题,人们发明了操作系统,引入中断机制,实现了多道程序并发执行。随即,时代进入了多道批处理阶段。
那么中断机制是什么呢?有什么用处呢?在开展下面的讲解之前,我们先要知道中断的本质,即:发生中断就意味着需要操作系统介入,开展管理工作。
如下面的例子:
当并发执行的程序中,有些程序需要完成从用户态到核心态之间的切换。那么在CPU收到计时部件发出的中断信号后,操作系统此刻就会介入,完成程序由用户态转为核心态的过程。
所以用上述的例子,你可以简单理解为中断的意思就是:到点了,用现在比较流行的梗就是:三点啦,饮茶先啦!
1.1.5.2 中断的概念和作用
经过前面的讲解,我们大概可以知道这么几件事。
- 当中断发生时,CPU立刻进入核心态。
- 当中断发生后,当前运行的进程暂停运行,并由操作系统内核对中断进行处理。
- 对于不同的中断信号,会进行不同的处理。
发生了中断,就意味着需要操作系统介入,开展管理工作。由于操作系统的管理工作(比如进程切换,分配I/O设备等)需要使用特权指令,因此CPU要从用户态转为核心态。中断可以使CPU从用户态切换为核心态,使操作系统获得计算机的控制权。有了中断,才能实现多道程序并发执行。
所以用户态和核心态是如何实现相互切换的呢?
用户态→核心态的过程中,是通过中断实现的,而且中断是实现的唯一方法。
而核心态→用户态的过程,是通过执行一个特权指令,将程序状态字(PSW)的标志位设置为“用户态”。
1.1.5.3 中断的分类
中断大体可以分为两类:内中断和外中断,外中断一般也叫做“中断”,但是是狭义中断;而我们提到的所有中断是广义上的中断。
如图所示:
内中断和外中断是根据CPU的内外部来判断的,如果和当前执行的指令有关,说明是在CPU内部发生的,属于内中断;而如果和当前执行的指令无关,说明是在CPU外部发生的,属于外中断。
在考试中,主要是给出一个事件,要我们判断属于哪类中断,至于具体的情况,只作为了解。
此外,内中断还有一种分类方式,这里也给出示意图,大家可以自行学习。
1.1.5.4 小结
- 中断的概念和作用
- 中断的分类