知识点

处理器异常

定义

处理器异常通常由当前指令执行时的条件同步触发,例如缺页、整数除零或无效指令。异常会把控制交给处理程序;是否能继续执行取决于异常原因、体系结构与操作系统的处理方式。

异常与硬件中断的区别在于触发关系:前者通常与当前指令同步,后者通常是设备或定时器发出的异步请求。

性质

在常见的x86分类中,故障可在处理后重新执行引发它的指令;陷阱通常报告已执行指令后的状态;终止类异常通常不保证能继续执行。具体返回位置和能否恢复仍需看异常类型和系统处理,不能仅凭名称断定某个进程一定结束。

缺页不一定表示必须从磁盘读取:有效地址可能需要建立映射或准备页面,也可能是无法满足的访问。除零通常不能通过原样重试解决。系统调用是应用主动请求内核服务的受控入口;不同体系结构的系统调用指令和异常分类并不完全相同。

交互探索

比较可处理的缺页与除零,注意实际结果取决于异常原因和系统处理。

异常发生后一定会终止程序吗?

比较可处理的缺页与除零异常。

正在准备演示…

题集

练习

  1. 程序执行x / 0触发的除零事件属于哪一类?

    选择答案
    参考解答

    除零由当前指令触发,属于同步异常中的故障。

  2. 缺页异常发生后,假设缺页可以被操作系统处理,页面准备好后通常会?

    选择答案
    参考解答

    可处理的缺页属于故障,页面准备好后可以重新执行触发缺页的指令。