首页 > 其他 > 详细

虚拟内存

时间:2018-06-26 22:29:28      阅读:207      评论:0      收藏:0      [点我收藏+]

在一个系统中,进程与其他进程是共享cpu和内存的。如果一个进程不小心写了另一个进程所使用的内存,那么可能会引起令人迷惑的错误。为了更加有效的管理内存并减少出错,现代系统提出了虚拟内存的概念。虚拟内存是硬件异常、硬件地址翻译、主存、磁盘和内核的完美交互,为每个进程提供了一个等同的私有的地址空间。

那么是怎么通过虚拟内存来进行内存管理的呢?总的来说就是一个地址的转换工作:将虚拟地址转换为物理地址。概念上而言,虚拟内存是被组织在磁盘上的N个连续的字节单元。为了更好的进行内存管理,将内存看成磁盘的一个缓存,将虚拟内存分割成块,每块大小相同,并且物理内存也进行相应的分割,每个小块成为一页,即虚拟页、物理页。同时提出了页表的概念来方便管理。页表存放在物理内存中,每个进程有单独的页表。如图索示,每个进程的页表位置可以有页表基址寄存器(PTBR)得到,由虚拟地址的虚拟页号可以得到相应页表条目(PTE),从而可以得到对应的物理页号,物理页号加上虚拟页偏移量就是所求的物理地址。当然,有可能引起缺页,此时会引发一个缺页异常。值得说明的是,页面命中完全是由硬件来处理的,缺页异常则要求硬件和内核协作完成。

 

虚拟内存

原文:https://www.cnblogs.com/coderht/p/9231382.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!