Skip to content

Latest commit

 

History

History
131 lines (89 loc) · 4.75 KB

计算机操作系统(二)——中断.md

File metadata and controls

131 lines (89 loc) · 4.75 KB

[TOC]

中断

定义

广义和狭义

  1. 广义:程序执行过程中,遇到急需处理的事件时,暂时中止CPU上现行程序的运行,转去执行相应的事件处理程序,待处理完成后再返回原程序被中断处或调度其他程序执行的过程。
  2. 操作系统是“中断驱动”的,中断是激活操作系统的唯一方式。
  3. 狭义:处理器之外的中断事件,与当前运行指令无关的中断事件。I/O中断、时钟中断、外部信号中断。

异常

  1. 当前运行指令引起的中断事件。地址异常、算术异常、处理器硬件故障。
  2. 系统异常:执行陷入指令而触发系统调用引起的中断事件。请求设备、请求I/O、创建进程。

由处理器、内存储器、总线等硬件故障引起

处理原则:

  1. 保护现场
  2. 停止设备
  3. 停止CPU
  4. 向操作员报告
  5. 等待人工干预

由处理器执行机器指令引起。

  1. 除数为0,操作数溢出等算术异常:简单处理,报告用户;由用户编写中断续元程序处理
  2. 非法程序、用户态使用特权指令、地址越界、非法存取等指令异常:终止程序
  3. 终止进程指令:终止进程
  4. 虚拟地址异常:调整内存后重新执行指令

处理器执行陷入指令请求OS服务引起的;在操作系统中,它一般又被称作系统调用

  1. 请求分配外设、请求I/O等等
  2. 处理流程:陷入OS,保护现场,根据功能号查入口地址,跳转具体处理程序

来源于外围设备报告I/O状态的中断

  1. I/O完成:调整进程状态,释放等待进程
  2. I/O出错:等待人工干预
  3. I/O异常:等待人工干预

由外围设备发出的信号引起的中断事件

  1. 时钟中断、间断时钟中断:记时与时间片处理
  2. 设备报到与结束中断:调整设备表
  3. 键盘/鼠标信号中断:根据信号作出相应反应
  4. 关机/重启动中断:写回文件,停止设备与CPU

过程

发现中断源,提出中断请求

  1. 发现中断寄存器中记录的中断
  2. 决定这些中断是否应该屏蔽
  3. 当有多个要响应的中断源时,根据规定的优先级选择一个

中断当前程序的执行

  1. 保存当前程序的PSW/PC到核心栈

转向操作系统的中断处理程序

中断的处理

中断处理程序

  1. 操作系统处理中断事件的控制程序,主要任务是处理中断事件和恢复正常操作

中断处理过程

  1. 保护未被硬件保护的处理器状态
  2. 通过分被中断进程的PSW中断码字段,识别中断源
  3. 分别处理发生的中断事件
  4. 恢复正常操作
    1. 对于某些中断,在处理完毕后,直接返回刚刚被中断的进程
    2. 对于其他一些中断,需要中断当前进程的运行,调整进程队列,启动进程调度,选择下一个执行的进程并恢复其执行

系统处理流程

  1. 运行进程
  2. 在硬件中,发现中断源,置中断码以备分析,交换新旧PSW
  3. 在操作系统中,保护未被硬件保护的现场信息,分析中断源,分别处理各类中断事件
    1. 调整进程队列,进程调度,恢复处理器现场信息
    2. 恢复处理器现场信息
  4. 在硬件中,恢复PSW
  5. 恢复进程

中断屏蔽

  1. 当计算机检测到中断时,中断装置通过中断屏蔽位决定是否响应已发送的中断
  2. 有选择的响应中断

中断优先级

  1. 当计算机同时检测到多个中断时,中断装置响应中断的顺序
  2. 有优先度的响应中断
  3. 一种可能的处理次序
    1. 处理机硬件故障中断事件、自愿性中断事件、程序性中断事件、时钟中断等外部中断事件、输入输出中断事件、重启动和关机中断事件
  4. 不同类型的操作系统有不同的中断优先级

中断的嵌套处理

  1. 当计算机响应中断后,在中断处理过程中,可以再响应其他中断
  2. 操作系统是性能攸关程序系统,且中断响应处理有硬件要求,考虑系统效率和实现代价问题,中断的嵌套处理应限制在一定层数内,如三层
  3. 中断的嵌套处理改变中断处理次序,先响应的有可能后处理

多中断的响应与处理

决定中断处理次序的因素

  1. 中断屏蔽可以使中断装置不响应某些中断
  2. 中断优先级决定了中断装置响应中断的次序
  3. 中断可以嵌套处理,但嵌套的层数应有限制
  4. 中断的嵌套处理改变了中断处理的次序

案例一

  1. X、Y两个中断同时发生
  2. 先响应X
  3. 因Y被屏蔽,继续处理X
  4. 再响应并处理Y

案例二

  1. X、Y两个中断同时发生
  2. 根据中断优先级,先响应X
  3. 因未屏蔽Y,再响应并处理Y
  4. Y处理完成后,再处理X