页面错误
页面错误指当软件试图读取或写入标记为“不存在”的虚拟内存位置时发生的中断。页面错误记录了一个进程必须从硬盘上恢复的次数。
在“任务管理器”中,页面错误是进程中当数据不在内存而必须从磁盘检索的次数。页面错误值从进程启动的时间开始累计。
页面错误增量
在“任务管理器”中,自上一次更新开始的页面错误次数的变化。
具体参见: 帮助--任务管理器--使用进程--进程计数器列标题--页面错误
页面错误不表示程序存在错误。不管内存多大,WINDOWS都离不开虚拟内存(利用磁盘),多少都会利用虚拟内存来存入一些数据,比如程序被最小化。
页面错误任务管理器主要检测内存情况的。
转载地址:/s/blog_51396f890100qjtb.html
内存监控
view plaincopy to clipboardprint? BOOL
view plaincopy to clipboardprint? BOOL
页面交换
使用技巧
对于虚拟内存如何设置的问题,微软已经给我们提供了官方的解决办法,对于一般情况下,我们推荐采用如下的设置方法: 页面文件,文件的大小由你对系统的设置决定。具体设置方法如下:打开"我的电脑"的"属性"设置窗口,切换到"高级"选项卡,在"启动和故障恢复"窗口的"写入调试信息"栏,如果你采用的是试和错误报告了。所以折中的办法是在系统盘设置较小的页面文件,只要够用就行了。 内存,其最小值设置为物理内存的1.5倍,最大值设置为物理内存的3倍,该分区专门用来存储页面文件,不要再存放其它任何文件。之所以单独划分一个分区用来设置虚拟内存,主要是基于两点考虑:其一,由于该分区上没有其它文件,这样分区不会产生磁盘碎片,这样能保证页面文件的数据读写不受磁盘碎片的干扰;其二,按照Windows对内存的管理技术,Windows会优先使用不经常访问的分区上的页面文件,这样也减少了读取系统盘里的页面文件的机会,减轻了系统盘的压力。 页面文件,则其它硬盘分区不设置任何页面文件。因为过多的分区设置页面文件,这样会导致,硬盘磁头反复的在不同的分区来回读取。这样既耽误了系统速率,也会减少硬盘的寿命。当然,如果你有多个硬盘,则可以为每个硬盘都创建一个页面文件。当信息分布在多个页面文件上时,硬盘控制器可以同时在多个硬盘上执行读取和写入操作。这样系统性能将得到提高。换页错误
换页错误,即Page fault。 Page Fault 是在进程尝试执行代码指导,或者引用进程所映射物理内存中并不存在的数据页时,操作系统记录的事件。换句话说,进程需要的内存页实际上可能还处于物理内存中,但是由于它无法再分配到进程中,所以当进程将此页读取回到它的内存页时,就发生了Page Fault。在开发上,我认为主要是优化内存读取方式,如果存在大量的文件读取,虚拟内存也就多,换页次数就多,自然也很多,不作为主要的评测指标。
现在内存都是分页的, 如果你要读或者写的页还没分在内存里, 就出现缺页错了。 这种事情在程序启动的时候可能非常频繁, 但是也不用你自己处理, 一般系统会自己搞定这事的, 搞不定就直接死机。。
转载:/wiki/Page_fault
页缺失 (计算机科学)
维基百科,自由的百科全书 (重定向自Page fault)页缺失(英语:Page fault,又名硬错误、分页错误、寻页缺失、缺页中断、页故障等)指的是当软件试图访问已映射在虚拟地址空间中,但是目前并未被加载在物理内存中的一个分页时,由中央处理器的内存管理单元所发出的中断。
通常情况下,用于处理此中断的程序是操作系统的一部分。如果操作系统判断此次访问是有效的,那么操作系统会尝试将相关的分页从硬盘上的虚拟内存文件中调入内存。而如果访问是不被允许的,那么操作系统通常会结束相关的进程。[1]
虽然其名为“页缺失”错误,但实际上这并不一定是一种错误。而且这一机制对于利用虚拟内存来增加程序可用内存空间的操作系统(比如Microsoft Windows和各种类Unix系统)中都是常见且有必要的。
微软在较新版Windows(Windows Vista及以上)的资源监视器中使用“硬错误”这一术语来指代“页缺失”。[2]
[编辑]分类
[编辑]软性
软性页缺失指页缺失发生时,相关的页已经被加载进内存,但是没有向MMU注册的情况。操作系统只需要在MMU中注册相关页对应的物理地址即可。[1]
发生这种情况的可能性之一,是一块物理内存被两个或多个程序共享,操作系统已经为其中的一个装载并注册了相应的页,但是没有为另一个程序注册。
可能性之二,是该页已被从CPU的工作集中移除,但是尚未被交换到磁盘上。比如OpenVMS这样的使用次级页缓存的系统,就有可能会在工作集过大的情况下,将某页从工作集中去除,但是不写入硬盘也不擦除(比如说这一页被读出硬盘后没被修改过),只是放入空闲页表。除非有其他程序需要,导致这一页被分配出去了,不然这一页的内容不会被修改。当原程序再次需要该页内的数据时,如果这一页确实没有被分配出去,那么系统只需要重新为该页在MMU内注册映射即可。[3]
[编辑]硬性
与软性页缺失相反,硬性页缺失是指相关的页在页缺失发生时未被加载进内存的情况。这时操作系统需要:[4]
寻找到一个空闲的页。或者把另外一个使用中的页写到磁盘上(如果其在最后一次写入后发生了变化的话),并注销在MMU内的记录将数据读入被选定的页向MMU注册该页
硬性页缺失导致的性能损失是很大的。以一块7200rpm的主流机械硬盘为例,其平均寻道时间为8.5毫秒,读入内存需要0.05毫秒。相对的,DDR3内存的访问延迟通常在数十到100纳秒之间,性能差距可能会达到8万到22万倍。
另外,有些操作系统会将程序的一部分延迟到需要使用的时候再加载入内存执行,以此来提升性能。这一特性也是通过捕获硬性页缺失达到的。[5]
当硬性页缺失过于频繁的发生时,称发生系统颠簸。
[编辑]无效
当程序访问的虚拟地址是不存在于虚拟地址空间内的时候,则发生无效页缺失。一般来说这是个软件问题,但是也不排除硬件可能,比如因为内存故障而损坏了一个正确的指针。
具体动作与所使用的操作系统有关,比如Windows会使用异常机制向程序报告,而类Unix系统则会使用信号机制。如果程序未处理相关问题,那么操作系统会执行默认处理方式,通常是转储内存、终止相关的程序,然后向用户报告。[4][6]
[编辑]参考与延伸阅读
^1.01.1Red Hat Enterprise Linux 3: Introduction to System Administration,4.4. Virtual Memory: The Details. RedHat[-02-11].^参见资源监视器帮助^HP OpenVMS Systems Documentation,Chapter 7 Evaluating the Memory Resource. HP[-02-11].^4.04.1So What Is A Page Fault?. OSR Online. -05-07[-02-11].^Red Hat Enterprise Linux 3: Introduction to System Administration,4.5. Virtual Memory Performance Implications. RedHat[-02-11].See note.^UnhandledExceptionFilter function. Microsoft MSDN[-02-11]. John L. Hennessy, David A. Patterson,Computer Architecture, A Quantitative Approach(ISBN 1-55860-724-2)Tanenbaum, Andrew S.Operating Systems: Design and Implementation (Second Edition). New Jersey: Prentice-Hall 1997.Intel Architecture Software Developer's Manual–Volume 3: System Programming非法访问和无效页错误处理
非法访问和无效页错误可能会导致程序崩溃,分割错误,总线错误或核心转储的操作系统环境。这些问题通常是由于软件缺陷,但可能会损坏硬件内存错误,如由超频所引起的,指针和正确的软件故障。
如Windows和UNIX的操作系统(以及其他类UNIX系统)提供不同的页故障引起的错误报告机制。Windows使用结构化异常处理报告故障无效的存取访问冲突异常,UNIX(UNIX-like)的系统通常使用信号,如SIGSEGV,报告这些错误条件的方案。
如果收到错误的程序不处理,操作系统执行的默认操作,一般涉及终止正在运行的过程中导致错误的条件,并通知用户,该计划已发生了故障。最新版本的Windows中经常报道这样的问题,就类似“这个程序必须关闭”(有经验的用户或程序员提供一个调试器仍然可以获取详细信息)。最新的Windows版本UNIX和类UNIX操作系统报告这些条件的用户提供的错误信息,如“分割违反”或“巴士,也可以编写一个小型转储(类似的原则,以一个核心转储)描述的状态崩溃的过程。错误“,也可能产生核心转储。
[编辑]性能
页故障,由于其本身的性质,一个程序或操作系统的性能降低和退化的情况可能会导致颠簸。优化程序和操作系统数量减少的页面错误,提高程序性能,甚至整个系统。的两个主要侧重的优化工作,降低整体内存使用率和改善记忆的地方。为了减少页面系统中的故障,程序员必须使用适当的页面置换算法,适合当前需求和最大限度地提高了页面的点击。许多人都被提出,如实施启发式算法,以减少发病的页面错误。一般情况下,提供更多的物理内存,也减少了页面错误。
主要页错误的传统(硬盘)计算机上可以有一个显着的性能影响。平均的硬盘具有的平均旋转等待时间为3ms,寻道时间为5ms,和转印时间为0.05毫秒/页。因此,总的寻呼时间是8ms的(8 000我们)附近。如果内存访问时间为0.2,那么页面故障,使操作约40,000倍的速度。
MMU
求助编辑百科名片
MMU是Memory Management Unit的缩写,中文名是内存管理单元,它是中央处理器(CPU)中用来管理虚拟存储器、物理存储器的控制线路,同时也负责虚拟地址映射为物理地址,以及提供硬件机制的内存访问授权。目录
历史 相关概念 功能 MMU和CPU 展开 历史 相关概念 功能 MMU和CPU 展开