操作系统-中断

1.为什么有中断以及什么事中断

早起的计算机各个程序只能串行运行,系统的资源利用率比较低。为了解决上述问题,就引入了中断的概念,实现了多个程序并行执行,提高了资源的利用率。

线程的挂起和唤醒、进程之间的调度、IO完成、代码异常都是和中断有关。

操作系统的中是指程序执行过程中,遇到紧急的事件时暂时中止CPU上现行的程序运行,转去执行相应的事件处理程序,待处理完成后再返回原来程序或者调度其他程序执行的过程。

2.中断的本质

发生中断意味着需要操作系统介入,开展管理工作(进程切换、分配IO设备),需要特权指令,因此需要从用户态转换为核心态,中断就是使CPU从用户态转换为核心态,使操作体统获得计算机的控制权。因此有了中断,才能实现多个程序并发执行。用户态切换到核心态只能通过中断机制来实现并且是唯一途径。

3.中断的分类

内中断:包括系统调用和异常情况。信号来源于CPU内部,于当前执行的指令有关(如整除0)。

外中断:信号来源于CPU外部,于当前执行的指令无关,比如用户结束一个进程、IO设备完成操作后发生的中断信号。

4.中断的处理过程

执行完威哥指令后,CPU都要检查当前是否有外部中断信号。

如果检测到外部中断信号,则需要保护被中断执行的进程CPU环境(程序状态字、程序计算器、各种通用寄存器)。

根据中断信号类型转入相应的中断处理程序。

恢复进程CPU环境并退出中断,返回原来进程继续往下执行。

原文地址:https://www.cnblogs.com/VARForrest/p/15479499.html