gpt4 book ai didi

exception - 精确异常

转载 作者:行者123 更新时间:2023-12-02 20:07:09 24 4
gpt4 key购买 nike

我正在阅读《FreeBSD 操作系统的设计与实现》一书,我发现了这一点:

This ability to restart an instruction is called a precise exception. The CPU may implement restarting by saving enough state when an instruction begins that the state can be restored when a fault is discovered. Alternatively, instructions could delay any modifications or side effects until after any faults would be discovered so that the instruction execution does not need to back up before restarting.

我不明白什么是

modification or side effects

引用文章中的内容。谁能详细说明一下吗?

最佳答案

FreeBSD 书中的描述非常以操作系统为中心。我什至不同意它的定义,这种重新启动指令的能力称为精确异常。电源故障异常后,您不会重新启动指令。因此,我建议不要试图弄清楚 McKusick 的意思,而是去其他地方更好地描述异常。

顺便说一句,我更喜欢史密斯的定义:

An interrupt is precise if the saved process state corresponds with the sequential model of program execution where one instruction completes before the next begins.

https://lagunita.stanford.edu/c4x/Engineering/CS316/asset/smith.precise_exceptions.pdf

几乎所有现代处理器都支持精确异常。所以艰苦的工作已经完成了。操作系统必须做的是为硬件发生的异常注册一个陷阱处理程序。例如,将会有一个页面错误处理程序、浮点......要弄清楚这些处理程序需要什么,您必须阅读处理器操作理论。

尽管系统细节看起来很粗糙,但它的水平相当高。它没有说明硬件正在做什么,因此 FreeBSD 的描述非常简短。

要真正理解精确的异常,您需要在计算机体系结构书籍中阅读有关管道、无序、超标量等的内容。我推荐计算机体系结构定量方法第 6 版。第 C-38 页处理异常一节介绍了不同类型异常的分类。 FreeBSD 的描述仅描述了一些异常(exception)情况。然后介绍管道如何处理每种异常类型。

此外,Linux 编程接口(interface)有 3 个关于 POSIX 信号接口(interface)的长章。我知道它不是 FreeBSD,但它涵盖了应用程序将看到的内容,例如,发生浮点异常并向进程发送 SIGFPE 信号时。

关于exception - 精确异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54418963/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com