交换区与虚拟内存的区别

263 views
Skip to first unread message

licong

unread,
Oct 25, 2010, 9:27:29 PM10/25/10
to xiyoulinuxgroup
什么情况下使用到交换区,什么情况下使用虚拟内存。。。

田康奇

unread,
Oct 26, 2010, 10:20:30 AM10/26/10
to licong, xiyoulinuxgroup
两个概念有区别,虚拟内存是一种技术,详见操作系统内存管理,交换区是内存不够的时候,把暂时内存不活跃的放进去用的。

在 2010-10-26 09:27:29,licong <licon...@gmail.com> 写道:
什么情况下使用到交换区,什么情况下使用虚拟内存。。。

--
要退订此论坛请发邮件至 xiyoulinux-...@googlegroups.com
更多选项: http://groups.google.com/group/xiyoulinux?hl=zh-CN
提问前建议您阅读:http://www.xiyoulinux.cn/blog/?p=64
也请查看我们的FAQ:http://xiyoulinux.cn/wiki/index.php?title=FAQ


zhaoqiao

unread,
Oct 26, 2010, 7:29:33 PM10/26/10
to 田康奇, licong, xiyoulinuxgroup
虚拟内存: 指在硬盘中开辟出的、用于辅助物理内存交换数据的那部分空间。虚拟内存可以是一个专门文件格式的磁盘分区(比如 linux下的swap分区),也可以是硬盘上的某个足够大的文件(比如win下的那个i386文件。  虚拟内存可以调整大小。
交换区:(swap)是存在于高速存储设备上的一块区域(或者是一块硬盘区域),是虚拟内存系统重要的组成部分,可以调整大小。

我的认为是两者本质是一样的,只是叫法不一样。个人看法,有待考证。

Jifeng Chen

unread,
Oct 26, 2010, 11:25:19 PM10/26/10
to 田康奇, licong, xiyoulinuxgroup
虚拟内存跟磁盘没有关系,看看操作系统的书吧。

在 10-10-26,田康奇<asdfg...@126.com> 写道:

--
从我的移动设备发送

zhaoqiao

unread,
Oct 27, 2010, 12:15:40 AM10/27/10
to Jifeng Chen, 田康奇, licong, xiyoulinuxgroup

在书上有这句话:"虚拟内存文件默认是在系统盘中", 能不能解释下这句话:“虚拟内存就是用如硬盘u盘等不是内存的介质来存储内存的信息”

田康奇

unread,
Oct 27, 2010, 4:33:01 AM10/27/10
to zhaoqiao, Jifeng Chen, licong, xiyoulinuxgroup
I think so!


在 2010-10-27 12:15:40,zhaoqiao <qiaoz...@gmail.com> 写道:

在书上有这句话:"虚拟内存文件默认是在系统盘中", 能不能解释下这句话:“虚拟内存就是用如硬盘u盘等不是内存的介质来存储内存的信息”

--

harryxiyou

unread,
Oct 27, 2010, 5:03:41 AM10/27/10
to 西邮Linux兴趣小组, xiyoulinux...@googlegroups.com, licon...@gmail.com
虚拟内存,不是真实的内存,主要用于扩展,和磁盘没关系。
交换区,swap就是典型,从硬盘上开辟,如果内存不够用可以使用他,交换区还有其他用处,类如linux下面有些application也要用他。
--
Do what u like!

zhaoqiao

unread,
Oct 27, 2010, 8:23:14 AM10/27/10
to xiyoulinux...@googlegroups.com, 西邮Linux兴趣小组, licon...@gmail.com
首先,虚拟内存是和磁盘有这密切关系,下面的就是一个很好的解释:
虚拟内存的工作过程:(首先它是一种技术,但是它存储信息的地方是物理磁盘)
1 当物理内存够的时候,当我们再运行一个软件程序时,例如:我们运行的程序占用了215M,此时物理内存绝对够用了,但是不要以为此时系统没有用虚拟内存技 术,系统照样用了虚拟内存技术,当我们打开QQ的时候,系统就为QQ这个程序指定了一个虚拟空间,只是此时这个虚拟空间里面没有信息而已。
2 当物理内存不足的时候,还是举例:假设计算机运行”迅雷”和”IE浏览器”这两个个软件的时候物理内存已经达到512M,我们启动QQ,如果没有虚拟内存 技术,我们此时根本不能启动QQ, 因为QQ不能在内存中写入相关信息,不过现在有了虚拟内存技术,此时系统将会释放一部分物理内存给QQ用,假设释放的是迅雷所占用的物理内存,那么迅雷所 占用的物理内存信息将会保存到硬盘上的一个pagefile.sys(windows)的文件中,当我们想再运行迅雷的时候,此时系统会从 pagefile.sys查找相应的迅雷信息,同时把这些信息重新载入到物理内存里面,并且把QQ的信息释放pagefiles.sys里面。这样一个循 环交换过程就是虚拟内存技术,为什么叫它虚拟呢,因为系统把文件释放到了硬盘上,而这个硬盘可不是内存,只是临时的保存内存信息的地方。一句话,虚拟内存 就是用如硬盘u盘等不是内存的介质来存储内存的信息,所以这种技术还是和磁盘有关的。

zhaoqiao

unread,
Oct 27, 2010, 8:23:52 AM10/27/10
to xiyoulinux, licon...@gmail.com
首先,虚拟内存是和磁盘有这密切关系,下面的就是一个很好的解释:
虚拟内存的工作过程:(首先它是一种技术,但是它存储信息的地方是物理磁盘)
1 当物理内存够的时候,当我们再运行一个软件程序时,例如:我们运行的程序占用了215M,此时物理内存绝对够用了,但是不要以为此时系统没有用虚拟内存技术,系统照样用了虚拟内存技术,当我们打开QQ的时候,系统就为QQ这个程序指定了一个虚拟空间,只是此时这个虚拟空间里面没有信息而已。
2 当物理内存不足的时候,还是举例:假设计算机运行”迅雷”和”IE浏览器”这两个个软件的时候物理内存已经达到512M,我们启动QQ,如果没有虚拟内存技术,我们此时根本不能启动QQ, 因为QQ不能在内存中写入相关信息,不过现在有了虚拟内存技术,此时系统将会释放一部分物理内存给QQ用,假设释放的是迅雷所占用的物理内存,那么迅雷所占用的物理内存信息将会保存到硬盘上的一个pagefile.sys(windows)的文件中,当我们想再运行迅雷的时候,此时系统会从pagefile.sys查找相应的迅雷信息,同时把这些信息重新载入到物理内存里面,并且把QQ的信息释放pagefiles.sys里面。这样一个循环交换过程就是虚拟内存技术,为什么叫它虚拟呢,因为系统把文件释放到了硬盘上,而这个硬盘可不是内存,只是临时的保存内存信息的地方。一句话,虚拟内存就是用如硬盘u盘等不是内存的介质来存储内存的信息。

harryxiyou

unread,
Oct 27, 2010, 12:58:00 PM10/27/10
to zhaoqiao, xiyoulinux, licon...@gmail.com
大概看了你说的,你貌似把交换区和虚拟内存混在一起了。

--
要退订此论坛请发邮件至 xiyoulinux-...@googlegroups.com
更多选项: http://groups.google.com/group/xiyoulinux?hl=zh-CN
提问前建议您阅读:http://www.xiyoulinux.cn/blog/?p=64
也请查看我们的FAQ:http://xiyoulinux.cn/wiki/index.php?title=FAQ

Xuemlling

unread,
Oct 27, 2010, 8:53:53 PM10/27/10
to harryxiyou, zhaoqiao, xiyoulinux, licon...@gmail.com
在 2010年10月28日 上午12:58,harryxiyou <harry...@gmail.com>写道:


在 2010年10月27日 下午8:23,zhaoqiao <qiaoz...@gmail.com>写道:

首先,虚拟内存是和磁盘有这密切关系,下面的就是一个很好的解释:
虚拟内存的工作过程:(首先它是一种技术,但是它存储信息的地方是物理磁盘)
1 当物理内存够的时候,当我们再运行一个软件程序时,例如:我们运行的程序占用了215M,此时物理内存绝对够用了,但是不要以为此时系统没有用虚拟内存技术,系统照样用了虚拟内存技术,当我们打开QQ的时候,系统就为QQ这个程序指定了一个虚拟空间,只是此时这个虚拟空间里面没有信息而已。
2 当物理内存不足的时候,还是举例:假设计算机运行”迅雷”和”IE浏览器”这两个个软件的时候物理内存已经达到512M,我们启动QQ,如果没有虚拟内存技术,我们此时根本不能启动QQ, 因为QQ不能在内存中写入相关信息,不过现在有了虚拟内存技术,此时系统将会释放一部分物理内存给QQ用,假设释放的是迅雷所占用的物理内存,那么迅雷所占用的物理内存信息将会保存到硬盘上的一个pagefile.sys(windows)的文件中,当我们想再运行迅雷的时候,此时系统会从pagefile.sys查找相应的迅雷信息,同时把这些信息重新载入到物理内存里面,并且把QQ的信息释放pagefiles.sys里面。这样一个循环交换过程就是虚拟内存技术,为什么叫它虚拟呢,因为系统把文件释放到了硬盘上,而这个硬盘可不是内存,只是临时的保存内存信息的地方。一句话,虚拟内存就是用如硬盘u盘等不是内存的介质来存储内存的信息。

大概看了你说的,你貌似把交换区和虚拟内存混在一起了。


交换分区 和 虚拟内存 不是同一个概念,首先概念是很重要的,看看操作系统设计时 所提出来的 虚拟存储
 技术 的实现机制

田康奇

unread,
Oct 27, 2010, 10:21:42 PM10/27/10
to zhaoqiao, xiyoulinux, licon...@gmail.com
这个解释很好 顶
--

Amos Kong

unread,
Oct 28, 2010, 7:36:47 PM10/28/10
to 田康奇, zhaoqiao, xiyoulinux, licon...@gmail.com
2010/10/28 田康奇 <asdfg...@126.com>:

> 这个解释很好 顶
>
> 在 2010-10-27 20:23:52,zhaoqiao <qiaoz...@gmail.com> 写道:
>
> 首先,虚拟内存是和磁盘有这密切关系,下面的就是一个很好的解释:
> 虚拟内存的工作过程:(首先它是一种技术,但是它存储信息的地方是物理磁盘)
> 1
> 当物理内存够的时候,当我们再运行一个软件程序时,例如:我们运行的程序占用了215M,此时物理内存绝对够用了,但是不要以为此时系统没有用虚拟内存技术,系统照样用了虚拟内存技术,当我们打开QQ的时候,系统就为QQ这个程序指定了一个虚拟空间,只是此时这个虚拟空间里面没有信息而已。
> 2
> 当物理内存不足的时候,还是举例:假设计算机运行"迅雷"和"IE浏览器"这两个个软件的时候物理内存已经达到512M,我们启动QQ,如果没有虚拟内存技术,我们此时根本不能启动QQ,
> 因为QQ不能在内存中写入相关信息,不过现在有了虚拟内存技术,此时系统将会释放一部分物理内存给QQ用,假设释放的是迅雷所占用的物理内存,那么迅雷所占用的物理内存信息将会保存到硬盘上的一个pagefile.sys(windows)的文件中,当我们想再运行迅雷的时候,此时系统会从pagefile.sys查找相应的迅雷信息,同时把这些信息重新载入到物理内存里面,并且把QQ的信息释放pagefiles.sys里面。这样一个循环交换过程就是虚拟内存技术,为什么叫它虚拟呢,因为系统把文件释放到了硬盘上,而这个硬盘可不是内存,只是临时的保存内存信息的地方。一句话,虚拟内存就是用如硬盘u盘等不是内存的介质来存储内存的信息。


对于'虚拟内存'有两种理解:

1. Linux中的内存管理机制
2. Windows上的虚拟内存,类似Linux下的内存交换分区

所以你们上面说的都是对的。

Reply all
Reply to author
Forward
0 new messages