您的位置:首页 > 其它

虚拟内存机制

2015-03-08 11:26 134 查看


 内存页
  为便于管理内存空间,操作系统将内存空间按一定大小分块,以块为单位管理,每一块称为一页。
 页面文件
  硬盘上的用于暂存和置换应用程序内存数据的“虚拟内存”文件
 页面置换
  物理内存中长期未使用的闲置页面被调度到硬盘页面文件以释放物理内存空间,提高效率。

线性地址和映射页表:
系统给程序分配一个虚拟的线性地址,线性地址并未完全映射实际对应的物理内存地址,前2G映射的是操作系统相关的,程序不可申请自用。映射原理则是由系统所维护的一个页表机制来保证的,存于线性地址前2G。系统维护一个页目录,对应线性地址的高10位,即可以通过高10位线性地址+偏移来获取页表信息。每一个页表可以映射4*1024*1024字节空间,对于在这4K的内存页上的寻址可以用线性地址高20位+偏移的方法来实现。而内存页就是实实在在的物理内存了。程序中寻址过程就是通过这一套页表映射机制来锁定具体物理内存地址的。
内存和硬盘协调:
由于内存容量是有限的,但是我们需要运行多个程序,为了能够高效地使用内存,就有了虚拟内存机制,跟按需分配有点类似。每个程序指挥分配一定大小的内存,其中存储实时需要的数据,而其他暂时不用的数据就存储在硬盘的页面文件中。当需要的数据所在的页面未在物理内存页上时,操作系统会将页面文件中的对应页置换到物理内存上,从而使得数据可用。虚拟内存通过映射等机制可为每个程序分配更大的且连续的工作空间,使得运行更多更大的应用程序成为可能,还提高了内存的使用效率。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: