操作系统中断和异常

这一生的挚爱 提交于 2020-03-07 23:58:03

1. 中断和异常1

1.1 中断机制的诞生

早期的计算机:只能串行执行,系统资源利用率低。
为了解决资源利用率低的问题,人们发明了操作系统(作为计算机的管理者),引入中断机制,实现了多道程序的并发执行。

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

在用户态下,CPU收到计时部件发出的中断信号,切换为核心态对中断进行处理。
核心态下,操作系统内核负责对中断信号进行处理

  • 中断的特点
    • 当中断发生时,CPU立即进入核心态
    • 当中断发生后,当前运行的进程暂停运行,并由操作系统内核对中断进行处理
    • 对于不同的中断信号,会进行不同的处理

遗留的问题:用户态、核心态之间的切换是如何实现的
答:“用户态–>核心态”是通过中断实现的。并且中断唯一途径。
核心态–>用户态”的切换是通过执行一个特权指令,将程序状态字(PSW)的标志位设置为“用户态”。

1.2 中断2的分类

  • 内中断(也称为“异常”)
    • 自愿中断——指令中断
      如:系统调用时使用的访管指令(又叫陷入指令、trap指令)
    • 强迫中断
      • 硬件故障
        如:缺页
      • 软件中断
        如:整数除0
  • 外中断(中断3):
    • 外设请求
      如:I/O 操作完成发出的中断信号
    • 人工干预
      如:用户强行终止一个进程

内中断与外中断的区别*
.
内中断(也称异常、例外、陷入)
信号的来源:CPU内部与当前执行的指令有关
.
外中断(狭义的中断)
信号的来源:CPU外部与当前执行的指令无关

另一种分类方式:

  • 内中断(内部中断)
    1. 陷阱、陷入(trap)
    如:有意而为之的异常,如系统调用
    2. 故障(fault)
    如:有错误条件引起的,可能被故障处理程序修复,如缺页
    3. 终止(abort)
    如:不可恢复的致命错误造成的结果,终止处理程序不再将控制返回给引发终止的应用程序,如整数除0
  • 外中断
  1. I/O 中断请求
  2. 人工干预

1.3 外中断的处理过程

  1. 每条指令执行结束后,CPU检查是否有外部中断信号
  2. 若有外部中断信号,则需要保护被中断进程的CPU环境
  3. 根据中断信号类型转入相应的中断处理程序
  4. 恢复原进程的CPU环境并退出中断,返回原进程继续往下执行

  1. 以上笔记均整理自王道考研 ↩︎

  2. 广义的中断 ↩︎

  3. 狭义的中断 ↩︎

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!