Alex_McAvoy

想要成为渔夫的猎手

中断机构与中断处理程序

【中断】

概述

中断是 I/O 系统最低层,也是设备管理的基础,其在 OS 中有特殊而重要的地位,没有它就不可能实现多道程序

中断,是指 CPU 对 I/O 设备发来的中断信号的一种响应,是由外部设备引起的,因此又称外中断

陷入,是指 CPU 内部事件所引起的中断,因此又称内中断

为处理上的方便,通常为每种设备配以相应的中断处理程序,并将该程序的入口地址放在中断向量表的一个表项中,同时为每一个设备的中断请求,规定一个中断号,它直接对应于中断向量表的一个表项中

但实际上,经常会有多个中断信号源,每个中断源对服务要求的紧急程度不同,因此,系统就服务要求的紧急程度为他们规定不同的中断优先级

多中断源的处理

对于多中断信号源来说,当处理机正在处理一个中断时,又来了一个新的中断请求,这时有两种处理方式:

  • 屏蔽中断:将所有的中断都按顺序依次处理,当处理机正在处理一个中断时,屏蔽掉所有新到的中断,让它们等待,直到处理机已完成本次中断的处理后,处理机再去检查并处理
  • 嵌套中断:当同时有多个不同优先级的中断请求时,CPU 优先响应最高优先级的中断请求,高优先级的中断请求,可以抢占正在运行低优先级中断的处理机,该方式类似于基于优先级的抢占式进程调度

【中断处理程序】

当一个进程请求 I/O 操作时,该进程会被挂起,直到 I/O 设备完成 I/O 操作后,设备控制器便向 CPU 发送一个中断请求,CPU 响应后便转向中断处理程序进行相应处理,处理完后解除相应进程的阻塞状态

因此,中断处理程序的主要工作有:进行进程上下文的切换、对处理中断信号源进行测试、读取设备状态、修改进程状态

其处理流程可分为以下五个步骤:

  1. 测定是否有未响应的中断信号
  2. 保护被中断进程的 CPU 现场
  3. 转入相应的设备处理程序
  4. 中断处理
  5. 恢复 CPU 现场

感谢您对我的支持,让我继续努力分享有用的技术与知识点!