物理内存和虚拟内存是什么意思-

别妄想泡我
505次浏览
2020年08月04日 02:46
最佳经验
本文由作者推荐

以桥为话题的作文-幼儿园圣诞节活动方案




物理内存和虚拟内存是什么意思?

篇一:物理内存与虚拟内存
物理内存与虚拟内存
组装电脑,内存是大家比较关 注的电脑硬件,如今内存的价格与
容量都比较大,内存目前2G也仅100元左右,内存知识方面我们常
听说的“虚拟内存”和 “物理内存”是不能混为一谈的。下面我们
主要从以下方面对电脑物理内存与虚拟内存之间的关系。
物理内存是真正的内存,在应用中顾名思义,物理上,真实的插
在板子上的内存是多大就是 多大了。看机器配置的时候,看的就是这
个物理内存。
虚拟内存是为了满足系统对超出 物理内存容量的需求时在外存
(如硬盘)上开辟的存储空间。由于虚拟内存其实是放在外存上,因
而与物理内存相比读写速度比较慢。那么虚拟内存有什么作用呢?
我们知道, 32位CPU ,有32根地址线,那么它的寻址空间就是
4GB。也就是说,如果没有其它的限制,我们的主板上最大 可以安装
4GB的物理内存。但是一般的机器是不会装那么多物理内存,而有时
软件应用时所需 内存确大大超过了物理内存,这怎么办?总不能不用
那些程序了吧。OS就提出了一个虚拟内存的概念。 就是进程、用户、
不必考虑实际上物理内存的限制,而直接对 4GB的进程空间进行寻
址。如 果所寻址的数据实际上不在物理内存中,那就从“虚拟内存”
中来获取。一般情况下,虚拟内存的大小, 各个OS也进行了限制(比
2016全新精品资料-全新公文范文-全程指导写作 –独家原创
1 8



如linux的swap分区的大小,win下也可以调 整虚拟内存文件的大
小和位置)。所以,我们程序所能使用的存储空间大小就是:物理内
存+虚 拟内存
篇二:虚拟内存与物理内存的地址映射解析
在进入正题前先来谈谈操作系 统内存管理机制的发展历程,了解
这些有利于我们更好的理解目前操作系统的内存管理机制。 一 早
期的内存分配机制
在 早期的计算机中,要运行一个程序,会把这些程序全都装入< br>内存,程序都是直接运行在内存上的,也就是说程序中访问的内存地
址都是实际的物理内存地址。 当计算机同时运行多个程序时,必须保
证这些程序用到的内存总量要小于计算机实际物理内存的大小。那 当
程序同时运行多个程序时,操作系统是如何为这些程序分配内存 的
呢?下面通过实例来说明当时的内存分配方法:
某台计算机总的内存大小是 128M ,现在同时运行两个程序 A
和 B , A 需占用内存 10M , B 需占用内存 110 。计算机在给程
序分配内存时会采取这样的方法:先将内存中的前 10M 分配给程序
A ,接着再从内存中剩余的 118M 中划分出 110M 分配给程序 B 。
这种分配方法可以保证程序 A 和程序 B 都能运行,但是这种简单的
内存分配策略问题很多。
图一 早期的内存分配方法
问题 1 :进程地址空间不隔离。由于程序都是直接访问物理内
存,所以恶意程序可以随 意修改别的进程的内存数据,以达到破坏的
2016全新精品资料-全新公文范文-全程指导写作 –独家原创
2 8



目的。有些非恶意的,但是有 bug 的程序也可能不小心修改了其它
程序的内存数据,就会 导致其它程序的运行出现异常。这种情况对用
户来说是无法容忍的,因为用户希望使用计算机的时候,其 中一个任
务失败了,至少不能影响其它的任务。
问题 2 :内存使用效率低。在 A 和 B 都运行的情况下,如果
用户又运行了程序 C ,而程序 C 需要 20M 大小的内存才能运行,
而此时系统只剩下 8M 的空间可供使用,所以此时系统必须在已运行
的程序中选择一个将该程序的数据暂时拷贝到硬盘上,释放出部分空
间来
供程序 C 使用,然后再将程序 C 的数据全部装入内存中运行。
可以想象得到,在这个过程中,有大量的数据在 装入装出,导致效率
十分低下。
问题 3 :程序运行的地址不确定。当内存中的剩余空间可以满
足程序 C 的要求后,操作系统会在剩余空间中随机分配一段连续的
20M 大小的空间给程序 C 使用,因为是随机分配的,所以程序运行
的地址是不确定的。
二 分段
为 了解决上述问题,人们想到了一种变通的方法,就是增加一
个中间层,利用一种间接的地址访问方法 访问物理内存。按照这种方
法,程序中访问的内存地址不再是实际的物理内存地址,而是一个虚
拟地址,然后由操作系统将这个虚拟地址映射到适当的物理内存地址
上。这样,只要操作系统处理好虚拟 地址到物理内存地址的映 射,
2016全新精品资料-全新公文范文-全程指导写作 –独家原创
3 8



就可以保证不同的程序最终访问的内存地址位于不同的区 域,彼此没
有重叠,就可以达到内存地址空间隔离的效果。
当创建一个进程时,操作系统会为该进程分配一个 4GB 大小的
虚拟 进程地址空间。之所以是 4GB ,是因为在 32 位的操作系统中,
一个指针长度是 4 字节,而 4 字节指针的寻址能力是从
0x00000000~0xFFFFFFFF ,最大值 0xFFFFFFFF 表示的即为 4GB 大
小的容量。与虚拟地址空间相对的,还有一个物理地址空间,这个地

空间对应的是真实的物理内存。如果你的计算机上安装了 512M
大小的内存,那么这个物理地址空间表示的范围是
0x00000000~0x1FFFFFFF 。当操作系统做虚拟地址到物理地址映
射时,只能映射 到这一范围,操作系统也只会映射到这一范围。当进
程创建时,每个进程都会有一个自己的 4GB 虚拟地址空间。要注意
的是这个 4GB 的地址空间是“虚拟”的,并不是真实存在的,而且
每个进程只能访问自己虚拟地址空间中的数据,无法访问别的进程中
的数据,通过这种方法实现了进程间 的地址隔离。那是不是这 4GB 的
虚拟地址空间应用程序可以随意使用呢?很遗憾,在 Windows 系统
下,这个虚拟地址空间被分成了 4 部分: NULL 指针区、用户区、
64KB 禁入区、内核区。应用程序能使用的只是用户区而已,大约 2GB
左右 ( 最大可以调整到 3GB) 。内核区为 2GB ,内核区保存的是系
统线程调度、内存管理、设备驱 动等数据,这部分数据供所有的进程
共享,但应用程序是不能直接访问的。
2016全新精品资料-全新公文范文-全程指导写作 –独家原创
4 8



人 们之所以要创建一个虚拟地址空间,目的是为了 解决进程地
址空间隔离的问题。但程序要想执行,必须运行在真实的内存上,所
以,必须在虚拟 地址与物理地址间建立一种映射关系。这样,通过映
射机制,当程序访问虚拟地址空间上的某个地址值时 ,就相当于访问
了物理地址空间中的另一个值。人们想到了一种分段
(Sagmentation) 的方法,它的思想是在虚拟地址空间和物理地
址空间之间做一一映射。比如说虚拟地址空间中某个 10M 大小的空
间映射到物理地址空间中某个 10M 大小的空间。这种思想理解起来
并不
难,操作系统保证不同进程的地址空间被映射到物理地址空间中
不同的区域上,这样每个进 程最终访问到的
物理地址空间都是彼此分开的。通过这种方式,就实现了进程间
的地址 隔离。还是以实例说明,假设有两个进程 A 和 B ,进程 A 所
需内存大小为 10M ,其虚拟地址空间分布在 0x00000000 到
0x00A00000 ,进程 B 所需内存为 100M ,其虚拟地址空间分布
为 0x00000000 到 0x06400000 。那么按照分段的映射方法,进程 A
在物理内存上映射区域为 0x00100000 到 0x00B00000 ,,进程 B 在
物理内存上映射区域为 0x00C00000 到 0x07000000 。于是进程 A
和进程 B 分别被映射到了不同的内存区间,彼此互不重叠,实现了
地址隔离。从应用程序的角度看来,进程 A 的地址空间就是分布在
0x00000000 到 0x00A00000 ,在做开发时,开发人员只需访问这段
区间上的地址即可。应用程序并不关心进程 A 究竟被映射到物理内
2016全新精品资料-全新公文范文-全程指导写作 –独家原创
5 8



存的那块区域上了,所以程序的运行地址也就是相当于说是确定的
了。 图二显示的是分段方式
的内存映射方法。
篇三:如何设置虚拟内存以及三大误区
内存在计 算机中的作用至关重要,电脑中所有运行的程序都需要
经过内存来执行,如果执行的程序很大或很多,就 会导致内存消耗殆
尽。为了解决这个问题,Windows运用了虚拟内存技术,将一部分硬
盘 空间来充当内存使用,虽然硬盘的运行速度不能与内存相比,可是
容量却要比内存的容量高出许多。其作 用在于可将一些读取到内存中
却暂时不用的数据转移到虚拟内存中,这样便可释放出内存的空间,
将有限的内存空间去继续存放未被读取的数据,以缓解内存的紧张。
网上有很多关于虚拟内存设 置的教程和说明,这里我们要说的是
设置虚拟内存最常见的三个错误,相信大家看后对虚拟内存的设置又
会有不同的理解了。
错误1:虚拟内存不设置在系统盘,应该专门分出一个空白分区< br>专门用来存储页面文件,不要再存放其它任何文件。
因为系统盘含有是系统文件和页面文件 ,是硬盘读写最频繁的分
区,硬盘读写时最耗时的操作是什么呢?是磁头定位!而同一分区内
的 磁头定位无疑要比跨分区的远距离来回定位要节省时间!所以,虚
拟内存设定在系统盘内的才是执行最快 、效率最高的。
错误2:虚拟内存的最佳值为:最小值设置为物理内存的倍,最
大值设置为物理内存的3倍。
2016全新精品资料-全新公文范文-全程指导写作 –独家原创
6 8



要根据实际使用情况来判断。如今随着内存的价格越 来越便宜,
特别是Win7系统普及后,所需的物理内存的容量比以往有了大幅增
加,传统的虚 拟内存设置方法已经不再适用!
一般512MB内存,根据实际使用内存占用,可以设虚拟内存 为
256-768MB(内存+虚拟内存之和一般比正常占用高256MB即可)。
1 GB内存,根据实际使用内存占用情况,可以设虚拟内存为
128-1024MB(内存+虚拟内存之和 一般比正常占用高256-512MB即
可)。平时正常占用为几百MB的人(占多数),甚至可以禁用 虚拟内存
(有软件限制的可以设少量虚拟内存,如16-128MB)。
内存为2G及 以上的,一般可以禁用虚拟内存(有软件限制的可以
设少量虚拟内存,如16-128MB)。部分确实 会使用大量内存的人,如
玩大型3D游戏、制作大幅图片、3D建模等,并收到系统内存不足警
告的,才需要酌情设定虚拟内存。
错误3:虚拟内存越大越好。
虚拟内存过大 ,既浪费了磁盘空间,又增加了磁头定位的时间,
降低了系统执行效率,没有任何好处。正确设置可节省 256MB-4G左

空间(视内存大小)
如何设置虚拟内存?
右键属性我的电脑,然后点击高级系统设置。
系统属性窗口选择高级菜单,并点击性能选项中的设置。 然后
在弹出的性能选项窗口中点击更改。
2016全新精品资料-全新公文范文-全程指导写作 –独家原创
7 8



选择驱动器(一般为C盘),选择自定义大小即可手动修改虚拟内
存的初始、最大值。
推荐一下我的淘宝男鞋店铺:风雅尚行鞋柜




2016全新精品资料-全新公文范文-全程指导写作 –独家原创
8 8

快乐的暑假作文-泥人张读后感


张睿玲-准考证打印入口


道德经翻译-初三物理教学总结


宁波财税-反腐倡廉体会


集美大学美术学院-中国公安大学研究生


联合早报-辽宁海事局


英语常用交际用语-开学典礼主持词


校内网-快乐的新年作文