处理异常后运行哪条指令?

我正在阅读有关HW SW中断的内容,但有些内容对我并不清楚:

当正常流程被异常(“软件中断”)中断时,导致中断的指令地址被保存,然后操作系统给异常处理程序一个机会来处理它。

我不确定的是在处理程序完成后处理哪个指令:

  • 如果再次运行相同的“错误”指令,则可能会导致相同的异常。
  • 如果下一条指令运行,是不是我们失去了前一条指令的影响(这可能导致“正常”异常,如页面错误)?

  • 再次执行导致故障的指令。 这个想法是,处理程序应该进行适当的更改,以便指令能够正确执行。

    例如,如果一条指令因为尝试访问已分页的虚拟内存而导致页面错误,则操作系统将从后备存储中加载页面,更新页表,然后重新启动该指令。 这次它会成功,因为页面在RAM中。

    如果处理程序没有解决问题,重新启动时会得到另一个中断,并且该过程将重复。

    链接地址: http://www.djcxy.com/p/80355.html

    上一篇: Which instruction is run after an exception was handled?

    下一篇: Interrupts, Instruction Pointer, and Instruction Queue in 8086