中断和异常

2020-07-03  本文已影响0人  Epimenides

中断和异常

早期计算机,各个程序只能串行的执行,一个程序放入计算机移入内存之后,要等待IO设备输出结束,这个程序才能从内存中移出。

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

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

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

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

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

遗留问题-------用户态、核心态的切换是怎么实现的 ?:

"用户态->核心态"是通过中断实现的,并且中断唯一途径

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

中断的分类
外部中断的处理过程:
外中断的过程

Step1: 执行完每一个指令后,CPU都要检查当前是否有外部中断信号。

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

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


总结
上一篇下一篇

猜你喜欢

热点阅读