分类:
2008-09-20 13:33:42
计算机虚拟内存系统中,页,物理页,虚拟页指一块连续的主存空间,无论是从物理地址空间还是从虚拟地址空间来看都是连续的。页是操作系统执行程序时分配的最小内存单元,并且在主存和辅存之间进行转移。
虚拟内存系统允许未在主存中的页被寻址和使用。如果程序试图存储不在主存中的页时,会产生page fault异常。硬件或OS会从辅存中加载该页到主存。因此,系统可以轻易的允许程序使用大于实际物理内存的地址空间。
一般来说,也得大小是由处理器的体系结构决定的。例如在i386的32位系统结构中,page的大小是4K
如果系统中page的大小比较小,那么意味着系统中会有更多的页。反之,如果系统中page的大小比较大,那么意味着系统中会有较少的页。即页大小与页表大小成反比。比如32位系统中,假设页大小为4K(212),那么页表具有(2(32-12) = 220)个页表入口。假设页大小为32K(215),那么页表具有(2(32-15) = 217)个页表入口。
处理器需要维护一个TLB Cache,用于缓存某个虚拟地址到为物理地址的映射,每次内存存取时都会检查该TLB。TLB的大小是有限制的,如果发生TLB丢失(即内存存取请求的虚拟地址到物理地址的映射关系不在TLB中),那么就必须对页表进行搜索并更正映射关系,这时一个相对耗时较长的过程。如果系统中页大小较大,那么相同大小的TLB cache可以跟踪更多的内存,避免TLB丢失。
当从磁盘进行传输时,磁盘定位会产生延迟。因此,大规模的、次数少的、连续磁盘传输比小规模的、次数多的、非连续的磁盘传输效率高。如果页大小较大,页在磁盘和内存之间的传输相对较快。
操作系统允许程序在运行中决定页大小,这样可以帮助程序合理的使用内存、组织数据结构从而更有效的使用内存。
#include
#include |