操作系统笔记一:中断、异常和陷入机制
中断/异常/陷入机制是操作系统由用户态转为内核态的唯一途径,是操作系统的驱动力。
中断、异常机制有以下特征:
- 随机发生
- 自动处理(硬件完成)
- 可恢复
中断、异常的区别:
- 中断属外部事件,是正在运行的程序所不期望的
- 异常由正在执行的指令引发
在中断、异常过程中,软件和硬件分别担任什么角色:
- 硬件--中断/异常响应
- 软件--中断/异常处理程序
中断/异常的引入目的:
- 中断的引入是为了CPU与设备之间的并行操作
- 异常的引入是为了表示CPU执行指令时本身出现的问题
一个故事:小明在看书,突然来了个电话,接完电话继续看书,这是中断;小明在看书,感觉口渴了,喝了水接着看书,这是异常。
类别 | 原因 | 同步/异步 | 返回行为 | |
中断 | 中断(interrupt) | 来自I/O设备或其他硬件部件 | 异步 | 总是返回到下一条指令 |
异常 |
陷入(trap) |
有意识安排的 | 同步 | 返回到下一条指令 |
故障(fault) | 可恢复的错误 | 同步 | 返回到当前指令 | |
终止(abort) | 不可恢复的错误 | 同步 | 不会返回 |
故障与陷入:
- 缺页异常(page fault),由于是fault,所以当缺页异常处理完成之后,还会去尝试重新执行那条触发异常的指令(那时多半情况是不再缺页)
- 断点处理,用于调试中,遇到断点会停下来等待你的处理,等到你让其重新执行了,就直接执行下一条指令
完、