中断处理程序
目录
参考资料:
中断在操作系统中有着特殊重要的地位,它是多道程序得以实现的基础。没有中断,就不可能实现多道程序,因为进程之间的切换是通过中断来完成的。另一方面中断也是设备管理的基础,为了提高处理机的用率和实现 CPU 与 I/O 设备并行执行,也必需有中断的支持。中断处理程序是 I/O 系统中最低的一层,它是整个 I/O 系统的基础。
1 中断和陷入
- 中断:是指 CPU 对 I/O 设备发来的中断信号的一种响应。CPU 暂停正在执行的程序,保留 CPU 环境后,自动地转去执行该 I/O 设备的中断处理程序。执行完后,再回到断点,继续执行原来的程序。
- 陷入(trap):由 CPU 内部事件所引起的中断,例如进程在运算中发生了上溢或下溢又如程序出错,如非法指令、地址越界,以及电源故障等。
中断和陷入的主要区别是信号的来源,即是来自 CPU 外部,还是 CPU 内部。
2 中断处理程序的处理过程
当一个进程请求 I/O 操作时,该进程将被挂起,直到 I/O 设备完成 I/O 操作后,设备控制器便向 CPU 发送一个中断请求,CPU 响应后便转向中断处理程序,中断处理程序执行相应的处理,处理完后解除相应进程的阻塞状态。
中断处理程序的处理过程可分成以下几个步骤:
- 测定是否有未响应的中断信号。
- 保护被中断进程的 CPU 环境。
- 转入相应的设备处理序。
- 中断处理。
- 恢复 CPU 的现场并退出中断。
中断的处理流程: