37得票5回答
无法理解贝拉迪异常现象

Belady的反常现象指出,在使用FIFO页面替换策略时,当增加更多的页面空间时,会导致更多的页面故障。 我的直觉认为,随着增加页面空间,我们应该少或者至多相同数量的页面故障。 如果我们将FIFO队列视为一个管道,则增加更多的页面空间就像是让管道变得更大: ____ O____O siz...

36得票3回答
分段错误与页错误

我想知道分段错误和页面错误之间的区别和关系是什么? 分段错误只属于分段存储器模型吗? 页面错误只属于分页存储器模型吗? 如果两者都是,由于大多数计算机系统(如x86和Linux)使用分页存储器模型而不是分段存储器模型,为什么GCC C编译器有时会报告分段错误? 谢谢和问候!

18得票3回答
当页面错误发生时,操作系统从哪里获取所需的磁盘地址?

当一个页表项(PTE)没有被标记为有效时,意味着所需数据不在内存中,而在磁盘上。因此现在发生了页面错误,操作系统负责将该数据页从磁盘加载到内存中。 我的问题是,操作系统如何知道确切的磁盘地址?

17得票4回答
计算二维数组的页面错误次数

我正在为一场考试学习...我找到了这个例子,但是不明白他们是如何得出答案的。请问有人能解释一下吗? 问题: 考虑二维数组A: int A [] [] = new int [100] [100]; 其中A [0] [0]位于具有大小为200的页面式存储系统中的位置200处。操作矩阵...

16得票2回答
当x86上的mov指令因禁用中断而导致页面错误时会发生什么?

最近在一个自定义的Linux内核(2.6.31.5,x86)驱动程序中遇到了一个问题,即copy_to_user有时候不会将任何字节复制到用户空间。该函数返回传递给它的字节数,表明它没有复制任何东西。经过代码检查,我们发现调用copy_to_user时代码禁用了中断,这违反了它的约定。纠正后,...

13得票3回答
从C程序中测量页面错误。

我正在比较几个系统调用,其中我从/向内存读写。是否有定义的API来测量C中的页面错误(页面进出)? 我找到了这个库libperfstat.a,但它是为AIX而设计的,我找不到任何适用于Linux的东西。 编辑: 我知道在Linux中有time和perf-stat命令,只是探索是否有任何可供...

11得票1回答
Linux,会在第一次读取或第一次写入时清空页面吗?

我的问题与Linux有关,需要了解内核、虚拟内存、mmap和pagefaults。我有一个带有大型静态数组的C程序,它将进入bss段(内存初始化为零)。当程序启动时,此内存尚未被物理分配,仅存在虚拟内存,并且每个虚拟内存页面都映射到特殊的零页(所有零的页面)。当应用程序访问此页面时,将生成页面...

10得票2回答
Linux内核能否使用可分页(可交换)内存来存储自己的缓冲区?

如果问题的答案是否定的,为什么这样做不是一个好主意?内核不能处理并修复在内核模式下发生的页面错误吗?如果使用可分页内存的代码仅作为中断底半部分的一部分执行,答案是否改变? 谢谢!

9得票2回答
Linux中的堆栈预取-需要单个还是多个故障?

在Linux中,当进程请求系统提供一些(虚拟)内存时,它会在VMA(进程虚拟内存描述符)中注册,但每个虚拟内存的物理页面并未在调用时预留。稍后,当进程访问此页面时,将发生故障(访问将生成页故障中断),PF#处理程序将分配物理页面并更新进程页表。 有两种情况:读取时发生错误可能会变成链接到零页...

8得票1回答
Delphi + Indy导致页面错误和内存使用率高

我遇到了一个奇怪的问题。 我使用Delphi和Indy上传和备份一些文件,在许多计算机上(Win7 64位,WinXP)都可以正常运行。CPU使用率少于1%,RAM最大为20MB。 但是在一个计算机上(Win 2008 R2),它存在问题,我找不出原因。CPU使用率为5-20%,占用100...