页缺失

✍ dations ◷ 2025-08-21 09:49:52 #计算机错误,虚拟内存

页缺失(英语:Page fault,又名硬错误、硬中断、分页错误、寻页缺失、缺页中断、页故障等)指的是当软件试图访问已映射在虚拟地址空间中,但是目前并未被加载在物理内存中的一个分页时,由中央处理器的内存管理单元所发出的中断。

通常情况下,用于处理此中断的程序是操作系统的一部分。如果操作系统判断此次访问是有效的,那么操作系统会尝试将相关的分页从硬盘上的虚拟内存文件中调入内存。而如果访问是不被允许的,那么操作系统通常会结束相关的进程。

虽然其名为“页缺失”错误,但实际上这并不一定是一种错误。而且这一机制对于利用虚拟内存来增加程序可用内存空间的操作系统(比如Microsoft Windows和各种类Unix系统)中都是常见且有必要的。

微软在较新版Windows的资源监视器中使用“硬错误”(Windows Vista及以上)、“硬中断”(Windows 8及以上)这一术语来指代“页缺失”。

软性页缺失指页缺失发生时,相关的页已经被加载进内存,但是没有向MMU注册的情况。操作系统只需要在MMU中注册相关页对应的物理地址即可。

发生这种情况的可能性之一,是一块物理内存被两个或多个程序共享,操作系统已经为其中的一个装载并注册了相应的页,但是没有为另一个程序注册。

可能性之二,是该页已被从CPU的工作集中移除,但是尚未被交换到磁盘上。比如OpenVMS这样的使用次级页缓存的系统,就有可能会在工作集过大的情况下,将某页从工作集中去除,但是不写入硬盘也不擦除(比如说这一页被读出硬盘后没被修改过),只是放入空闲页表。除非有其他程序需要,导致这一页被分配出去了,不然这一页的内容不会被修改。当原程序再次需要该页内的数据时,如果这一页确实没有被分配出去,那么系统只需要重新为该页在MMU内注册映射即可。

与软性页缺失相反,硬性页缺失是指相关的页在页缺失发生时未被加载进内存的情况。这时操作系统需要:

硬性页缺失导致的性能损失是很大的。以一块7200rpm的主流机械硬盘为例,其平均寻道时间为8.5毫秒,读入内存需要0.05毫秒。相对的,DDR3内存的访问延迟通常在数十到100纳秒之间,性能差距可能会达到8万到22万倍。

另外,有些操作系统会将程序的一部分延迟到需要使用的时候再加载入内存执行,以此来提升性能。这一特性也是通过捕获硬性页缺失达到的。

当硬性页缺失过于频繁的发生时,称发生系统颠簸。

当程序访问的虚拟地址是不存在于虚拟地址空间内的时候,则发生无效页缺失。一般来说这是个软件问题,但是也不排除硬件可能,比如因为内存故障而损坏了一个正确的指针。

具体动作与所使用的操作系统有关,比如Windows会使用异常机制向程序报告,而类Unix系统则会使用信号机制。如果程序未处理相关问题,那么操作系统会执行默认处理方式,通常是转储内存、终止相关的程序,然后向用户报告。

相关

  • 哈雷迪哈雷迪犹太教(希伯来语:.mw-parser-output .script-hebrew,.mw-parser-output .script-Hebr{font-size:1.15em;font-family:"Ezra SIL","Ezra SIL SR","Keter Aram Tsova","Ta
  • 奥沙利铂奥沙利铂(Oxaliplatin),呈白色或类白色冻干疏松块状物,常用于转移性结直肠癌治疗,或辅助治疗原发性肿瘤完全切除后三期(Dukes C)结肠癌。与顺铂类似,水解后脱去草酸生成活性产物,然后
  • 有机有机化合物(德语:Organische Verbindung;英语:organic compound、organic chemical),简称有机物,是含碳化合物,但是碳氧化物(如一氧化碳、二氧化碳)、碳酸、碳酸盐、碳酸氢盐、氢氰酸
  • 马约特岛马约特大区(法语:Mayotte;斯马奥莱语:Maore;马拉加斯语:Mahori) 通称马约特,位于莫桑比克海峡,与大科摩罗岛、昂儒昂岛、莫埃利岛共同组成科摩罗群岛。面积为374平方公里,经济以农业为
  • 格劳伯罗伊·杰·格劳伯(英语:Roy Jay Glauber,1925年9月1日-2018年12月26日),美国物理学家,哈佛大学物理学教授和亚利桑那大学光学科学兼职教授,出生于纽约市。他因“对光学相干性的量子
  • 太宗朝鲜太宗(朝鲜语:조선 태종/朝鮮 太宗 Joseon Taejong;1367年-1422年),即朝鲜太宗恭定大王、朝鲜恭定国王,朝鲜王朝的第三位国王,1400年至1418年在王位,1418年至1422年在太上王位。名
  • 节点在电信网络中,一个节点(英语:node,拉丁语:nodus)是一个连接点,表示一个再分发点(redistribution point)或一个通信端点(一些终端设备)。节点的定义依赖于所提及的网络和协议层。一个物
  • 布鲁克县布鲁克县(Brooke County, West Virginia)是美国西维吉尼亚州北部的一个县,西邻俄亥俄州,东邻宾夕法尼亚州。面积239平方公里。根据美国2000年人口普查,共有人口25,447人。县治韦
  • 流行禁区(2001年)布兰妮2001(2003年)(2004年)妮裳神话-精选+新曲2004《流行禁区》(英语:In the Zone)为美国歌手布兰妮·斯皮尔斯于2003年11月16日发行的第四张录音室专辑。其歌曲风格包括舞
  • 永盛镇永盛镇,是中华人民共和国四川省成都市温江区下辖的一个乡镇级行政单位。2019年12月,撤销永盛镇、金马镇,设立金马街道。永盛镇下辖以下地区:永盛场社区、石磊社区、团结社区、尚