gpt4 book ai didi

c++ - 什么可能导致 C++ 级别的页面错误

转载 作者:行者123 更新时间:2023-11-30 01:33:07 25 4
gpt4 key购买 nike

我是一名 C++ 开发人员,我想知道什么可能导致 C++ 级别的页面错误。

我读过一些关于页面错误的文章,我认为 fork()malloc/new 会导致页面错误。

是否还有其他原因会导致页面错误?

可执行文件是不是越大越容易导致Page Fault?

逻辑结构非常复杂的可执行文件是否更容易导致Page Fault?

最佳答案

任何一条指令都可能导致页面错误。它可能是当前未加载的带有指令本身的页面。

请注意,该指令不必位于页面的开头,因为程序可能一直在休眠,并且它可能会在任何时候休眠,因为它可能会被抢占。

任何具有内存操作数的指令也可能导致访问该操作数的页面错误。

请注意,现在很多系统都没有swap,所以匿名(用malloc分配)页面无处可卸载,但是包含所有可执行代码的文件支持页面总是可以卸载的,所以第一种情况实际上是更有可能。

正如@eerorika 所正确解释的那样,页面错误由内核处理并且对于 C++ 是完全透明的(除了它们可能导致不确定的时间——你需要一个实时操作系统来获得这些)。

关于c++ - 什么可能导致 C++ 级别的页面错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59088508/

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