码迷,mamicode.com
首页 > 其他好文 > 详细

虚拟内存

时间:2017-12-13 23:20:07      阅读:122      评论:0      收藏:0      [点我收藏+]

标签:页面置换   window   使用   com   技术   效果   操作   存储   就是   

 

虚拟内存这个概念,大家都不会陌生。有人会说虚拟内存还不简单,不就是在内存不够的时候,

就把外存当内存来使用,这种说法有一定的道理,但显然不准确。

 

在最开始内存只有128M或者256M时,内存显然是不够的,在这种情况下说内存不够的话,拿外存

来顶替,这种说法还过得去。

但现在8g内存,16g内存,甚至32g内存都很普遍,现在的内存显然是足够用的,但我们仍然需要虚拟内存,

上面那种说法显然站不住脚。

下面开一个游戏,本人电脑内存8G

技术分享图片

可以看到RAM一栏中,3853MB是指内存的消耗,而后面的5408MB则是虚拟内存消耗(更准确的是分页文件),这里内存显然没有超过8G,

那为什么还需要虚拟内存呢?

为了解释虚拟内存,我们首先要弄清楚虚拟地址和真实的物理地址。

虚拟地址也叫逻辑地址:

技术分享图片

上图的程序输出了指针b指向的地址0x6afef8,这是用16进制表示的,但这个并不是真实的地址,只是逻辑上的地址。

作为计算机用户,我们并不能接触真实的物理地址,只能接触到逻辑地址,而逻辑地址到物理地址的映射,是由操作系统

完成的,准确来说是通过分页和分段的技术完成的。逻辑地址的大小是人为确定的,一般会比物理地址大很多,当程序

要访问的资源找不到时,可以将其调入到内存中,没有用的资源调入到外存。这也就是常说的页面置换,这样就好像

我们有很大的’内存‘空间。通过这种方式它使得应用程序认为它拥有连续的可用的内存(一个连续完整的地址空间),

而实际上,它通常是被分隔成多个物理内存碎片,还有部分暂时存储在外部磁盘存储器上,在需要时进行数据交换。

通过这种方式可以加快程序的运行速度,同时又做到了内存容量变大的效果。

目前,大多数操作系统都使用了虚拟内存,如Windows家族的“虚拟内存”;Linux的“交换空间”等。

当然资源频繁的调入和调出,势必会降低运行速度,让系统变得特别卡,这个时候就可以考虑加内存条了。

 

总结:虚拟内存就是逻辑上的内存,它是一种内存管理技术,它管理逻辑地址到物理地址的映射,通过资源的调入和调出

           达到了内存变大的效果。

           

虚拟内存

标签:页面置换   window   使用   com   技术   效果   操作   存储   就是   

原文地址:http://www.cnblogs.com/mlgjb/p/8034447.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!