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