我看起来像分页用于页面到页面框架的转换,这就是虚拟地址的实现方式。但是在内存中进行非法访问时,我们会出现分段错误而不是页面错误?
http://www.cs.umd.edu/class/sum2003/cmsc311/Notes/Memory/virtual.html
答案 0 :(得分:0)
当引用当前不在内存中的页面时发生页面错误,并且必须中断硬件以从外部存储器获取页面,而不是所有页面都可以同时在内存中。对于程序员来说,页面错误是透明的,因为MMU,内存管理单元负责中断处理。
当应用程序尝试访问无法访问的内存部分时,会发生分段错误或seg错误,尤其是在使用指针时。
a.out如何存储在内存中取决于页面大小,以及编译应用程序运行时的引用位置。页面是来自堆栈,堆,bss还是文本部分并不重要。