1.5中断和异常

# 中断和异常

image-20210911164455049

一、中断机制的诞生

image-20210911164618338

​ 为了解决上述问题,人们发明了操作系统〈作为计算机的管理者),引入中断机制,实现了多道程序并发执行

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

image-20210911164813217

​ CPU收到计时部件发出的中断信号,切换为核心态对中断进行处理

​ 操作系统内核负责对中断信号进行处理

​ 进程1的时间片已用完,换进程2运行

​ 进程2发出系统调用(内中断信号),请求输出。CPU切换为核心态,对中断进行处理

​ 操作系统内核负责对中断信号进行处理

​ 进程2暂停运行等待I/O完成,换进程3运行

​ l/O完成,设备向CPU发出中断信号

​ CPU收到I/O设备发来的中断信号,切换为核心态对中断进行处理

​ 进程2的I/O操作完成,让进程2恢复运行,以完成后续工作



二、中断的概念和作用

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

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

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

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

问题:用户态、核心态之间的切换是怎么实现的?

​ 答:“用户态→核心态”是通过中断实现的。并且中断唯一途径。

​ “核心态→用户态”的切换是通过执行一个特权指令,将程序状态字(PSW)的标志位设置为“用户态”



三、中断的分类

image-20210911170324060

image-20210911170406539

四、外中断的处理过程

​ Step 1:执行完每个指令之后,CPU都要检查当前是否有外部中断信号

​ Step 2:如果检测到外部中断信号,则需要保护被中断进程的CPU环境(如程序状态字PSW、程序计数器PC、各种通用寄存器)

​ Step 3:根据中断信号类型转入相应的中断处理程序

​ Step 4:恢复原进程的CPU环境并退出中断,返回原进程继续往下执行

image-20210911183320854



Screenshot_5

posted @ 2021-09-11 20:38  Kiritan  阅读(119)  评论(0)    收藏  举报