gpt4 book ai didi

Linux,将在首次读取或首次写入时将页面错误归零吗?

转载 作者:IT王子 更新时间:2023-10-29 00:20:55 24 4
gpt4 key购买 nike

我的问题是特定于 Linux 的,需要了解内核、虚拟内存、mmap、页面错误。我有一个带有大型静态数组的 C 程序,它将进入 bss 部分(内存,初始化为零)。程序启动时,这 block 内存并没有物理分配,只有虚拟内存,虚拟内存的每一页都映射到特殊的零页(全零页)。当应用程序访问该页面时,将产生pagefault并分配物理页面。

问题是:这种页面错误会在 bss 部分对页面的第一次读访问还是第一次写访问时产生吗?

最佳答案

Linux 为该内存分配一个零页(整个区域一个零页),然后基本上会在该页上执行 COW(写时复制)行为,因为您正在更改内容。所以你不会得到读取错误(除非页面被换出或者它是一个小页面错误,这意味着页面在内存中但没有映射)。

因此只有写入错误才会导致在零页上分配新页的错误。

关于Linux,将在首次读取或首次写入时将页面错误归零吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12115434/

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