中断和异常

Posted 杀手不太冷!

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了中断和异常相关的知识,希望对你有一定的参考价值。

中断和异常

中断机制的诞生

早期的计算机是用打孔纸带作为输入输出的,每次只能有一道程序运行,CPU的利用率非常低,为了解决这个问题,人们发明了操作系统(作为计算机的管理者),引入中断机制,实现了多道程序并发执行。

中断机制的概念和作用

中断的本质:只要发生中断,就意味着需要操作系统介入,开展管理工作。

举个例子:现在有A,B,C三道程序并发运行,刚开始程序A在用户态的状态下运行,运行了一段时间之后,CPU可能会收到计时部件发出的中断信号,CPU会切换为核心态,把CPU的使用权限交给操作系统,操作系统内核对中断信号进行处理,操作系统内核发现刚才的中断信号是告诉他时间片已到,那么操作系统就发现程序A的时间片已经用完了,现在该换程序B运行了。在操作系统完成这一系列的管理工作之后,操作系统会把CPU的使用权交给用户进程,接着程序B就会在用户态下开始执行。

1.当中断发生时,CPU会立即进入核心态。

2.当中断发生后,当前运行的进程暂停运行,并由操作系统内核对中断进行处理。

3.对于不同的中断信号,会进行不同的处理。

发生了中断,就意味着需要操作系统介入,开展管理工作。由于操作系统的管理工作,比如进程切换、分配I/O设备等都需要使用特权指令,因此CPU要从用户态转为核心态。中断可以是CPU从用户态切换为核心态,是操作系统获得计算机的控制权。有了中断,才能实现多道程序并发执行。

CPU用户态和核心态是怎么切换的?

答:CPU的用户态和核心态的切换,是通过中断实现的。并且中断是唯一的途径。

中断的分类和异常

如果中断信号的来源来自于CPU的内部,那么这种中断就叫做内中断,比如整数除0之后,操作系统得到CPU的中断信号之后,内核程序就会得到CPU的使用权,中断程序的运行,这种中断信号是来源于CPU的内部的,因此被称为内中断;如果是外部的输入输出设备已经完成操作,它会向操作系统发送一个中断信号,操作系统会中断I/O操作,把CPU的使用权交给程序,这种中断信号是来自于CPU外部,因此这种中断被称为是外中断。

img

内中断又被称为异常。

外中断的处理过程

img

以上是关于中断和异常的主要内容,如果未能解决你的问题,请参考以下文章

中断和异常

操作系统学习(十三) 中断和异常

中断和异常

中断和异常的再总结

中断,异常和系统调用

软件生成的中断和软件生成的异常有啥区别?