分页(英语:Paging),是一种
操作系统里
存储器管理的一种技术,可以使电脑的
主存可以使用存储在
辅助存储器中的数据。操作系统会将辅助存储器(通常是
磁盘)中的数据分区成固定大小的区块,称为“页”(pages)。当不需要时,将分页由主存(通常是
内存)移到
辅助存储器;当需要时,再将数据取回,加载主存中。相对于
分段,分页允许存储器存储于不连续的区块以维持文件系统的整齐。分页是磁盘和内存间传输数据块的最小单位。
分页(英语:Paging),是一种
操作系统里
存储器管理的一种技术,可以使电脑的
主存可以使用存储在
辅助存储器中的数据。操作系统会将辅助存储器(通常是
磁盘)中的数据分区成固定大小的区块,称为“页”。当不需要时,将分页由主存(通常是
内存)移到
辅助存储器;当需要时,再将数据取回,加载主存中。相对于
分段,分页允许存储器存储于不连续的区块以维持文件系统的整齐。分页是磁盘和内存间传输数据块的最小单位。
分页/虚拟内存能有助“大大地”降低整体及额外非必要的 I/O 次数,提高系统整体运作性能。因为这能有助提高 RAM 的读取命中率,也透过其内部的高效率算法来达到 I/O 数据流的预缓存工作,通过与之相关的等等手段也能很好地提高了 CPU 的使用效率,而拥有大物理内存的用户更可能考虑利用如
Ramdisk、
Supercache、SoftPerfect RAM Disk等模拟出硬盘分区来同时将虚拟内存/系统临时文件等设置其上以进一步加强系统性能,及达至保障硬盘的措施。分页是
虚拟内存技术中的重要部分。
分页就是当数据并没有映射在
随机存取存储器上时,操作系统必需控制使程序继续运行所会做的动作。一般来说,操作系统会将运行中程序的数据放至随机存取存储器上空的帧中,将不需要的数据从帧上清除,但如果随机存取存储器没有空的帧可用,操作系统会把一部分的数据存回辅助存储器然后释放。辅助存储器会用分页的方式将文件存在经过平均分配大小的页上,等到随机存取存储器需要使用时再写回。如果在随机存取存储器释放数据过后还需要更新数据,系统必须将数据先写回后更新,再存入辅助存储器中。高性能的系统需要在替换随机存取存储器上的数据时消耗较少的时间,所以一般的系统会采取最近最少使用算法(LRU)来达到较高的效果。
尽管在整个运行过程中程序引用的不同页面总数(也就是虚拟内存大小)可能超出
物理存储器(DRAM)总大小,但是程序常常在较小的活动页面(active page)上活动,这个集合叫作工作集(working set)或常驻集(resident set)。在工作集被缓存后,对它的反复调用将使程序命中提高,从而提高性能。
大部分的程序都可以在存储器获取数据和读取中达到稳定的状态,当程序达到稳定状态时,存储器的使用量通常都不会太大。虚拟内存虽然可以有效率的去
控制存储器的使用,但解决大量的
页缺失还是造成系统迟缓的主要因素。当工作集的大小超过物理存储器大小,程序将发生一种不幸的情况,这种情况被称为“颠簸(Thrashing)”,页面将不停地写入、释放、读取,由于大量的丢失(而非命中)而损失极大性能。用户可以增加
随机存取存储器的大小或是减少同时在系统里运行程序的数量来降低系统颠簸的机率。
在
多任务处理或
多用户的环境下,经常遇到不同的程序需要用到相同的数据,如果采用个别处理的话,很多的存储器会被浪费掉,分享的功用使不同的程序可以使用相同的存储器。分享功能还需注意的是系统必须要分离经过修改过后的数据以防止其他程序需要用到修改前的数据。
第一台支持分页系统的电脑是Atlas,这台电脑有着分区成各250字的分页的
结合存储。
微软为了要使1990年的
Windows 3.x不像
Windows 1.0或
Windows 2.0一样需要大量的硬件资源,因而把分页系统加到
Microsoft Windows内。系统会创造名为386SPART.PAR或WIN386.SWP的隐藏档来跟存储器交换档案,通常可以在
根目录找到,有时候也会生成在WINDOWS文件夹中。此文件的大小决定页面文件的大小(可以在
控制面板中调整),如果用户移动或删除这个文件会在下次引导时出现
蓝屏死机。
在
Windows NT的系统中(如
Windows XP、
Vista、
7、
8等),页面文件名为pagefile.sys并存储在根目录中。有时在
引导扇区会出现系统崩溃并出现存储器倾印的状况,Windows系统会将页面文件作为暂存用途,并在下次重起系统时释放页面文件的空间。
在
Unix及类
Unix系统中,系统会定期更新随机存取存储器与虚拟内存间的数据,其中有些系统会在硬盘上划一块专门的区块作为页面文件交换档案用,称为交换分区(swap partitions),有些系统还可以把这个区块用文件的形式出现。
在
Linux核心2.6以上中,因为系统可以直接绕过其他程序直接跟文件形式的分区交换,分区档的速度已经可以跟交换分区一样快了,且分区档可以自动被存放在硬盘读取最频繁的地方,不过
红帽公司还是建议将硬盘划专门区块做使用。不过使用文件形式的分区的灵活度较高,可以自由存放在任一个磁盘,更改成任一大小,在硬盘划专门区块后除非使用特殊的工具,否则无法更动位置及大小。Linux可以创建无数个分区,并将文件排优先级,硬盘读取越频繁的地方通常越是系统优先使用该分区,因此要谨慎的排好优先级,否则会大大的降低系统的性能。
OS X使用多重的分区文件,虽然它可以存到其他的地方,但默认就会将文件存到硬盘的根目录中。
由于32位的硬件
地址总线最高只能定址到4GB的位置,超过的部分将不能被电脑进行分页使用存储器。