» 您尚未登录:请 登录 | 注册 | 标签 | 帮助 | 小黑屋 |


发新话题
打印

[其他] 不知道什么是“虚拟内存”,我就来教育下。(Update)

战区果然是喷子的天下……
1)虚拟内存不是为了把内存放硬盘里头的一种技术……
2)虚拟内存技术其实只是有开发方便和对RAM空间使用效率高的优势,其实和性能没什么关系
3)为什么影响性能的是因为虚拟内存认为这数据暂时就不用丢硬盘去了,结果被命中了
4)算法才是性能的关键,内存再快,与L1,L2比也只是蜗牛……

虚拟内存
维基百科,自由的百科全书
跳转到: 导航, 搜索

虚拟内存是计算机系统的一种技术。它使得应用程序认为它拥有连续的可用的内存(一个地址空间),而实际上,它可能是被分隔成多个碎片,甚至被交换到磁盘存储器上的。与没有使用虚拟内存技术的系统相比,使用这种技术的系统使得大型程序的编写变得更容易,对真正的物理内存(例如RAM)的使用也更有效率

注意:虚拟内存不只是用磁盘空间来扩展物理内存的意思——这只是扩充内存级别以使其包含硬盘驱动器而已。把内存扩展到磁盘只是使用虚拟内存技术的一个结果,它的作用也可以通过覆盖或者把处于不活动状态的程序以及它们的数据全部交换到磁盘上等方式来实现。对虚拟内存的定义是基于对地址空间的重定义的,即把地址空间定义为连续的虚拟内存地址,以借此欺骗程序,使它们以为自己正在使用一大块的连续地址。

现代所有用于一般应用的操作系统都对普通的应用程序使用虚拟内存技术,例如字处理软件,电子制表软件,多媒体播放器等等。老一些的操作系统,如DOS和1980年代的Windows,或者那些1960年代的大型机,一般都没有虚拟内存的功能——但是Atlas,B5000和苹果公司的Lisa都是很值得注意的例外。[1]

那些需要快速一致响应的嵌入式系统和其他的特殊应用的计算机系统可能会因为决定论而选择不使用虚拟内存。

目录 [隐藏]
1 Windows操作系统下虚拟内存的实现
2 Linux操作系统下虚拟内存实现
3 页面文件与磁盘碎片
4 参见
5 参考资料



[编辑] Windows操作系统下虚拟内存的实现
此章節的准确性有争议。
掛上此模板的編輯者需在对话页說明本文准确性有爭議的原因,以便讓各編輯者討論和改善。

在Windows 9x时代,例如Windows 98,用于实现虚拟内存的文件存放在系统分区的根目录下。通常是系统分区根目录下的win386.swp(具有隐藏、系统属性)。有关虚拟内存设置则存放在系统目录中的system.ini中,其中形似“PagingDrive=C:\Win386.swp”的一行就是虚拟内存文件路径、文件名的设置。
在Windows NT系列中,例如Windows XP,用于实现虚拟内存的文件则以系统分区根目录下的页面文件 pagefile.sys(具有隐藏、系统属性)形式来保存。这些文件的大小——即pagefile.sys文件大小的默认值是物理内存的1.5倍。同时,页面文件可以设置一个比平常值大的最大值,当物理内存与页面文件皆不够用时,系统会自动生成temppf.sys(意为temporary pagefile,临时页面文件)进行补足,temppf.sys的大小在页面文件的大小和最大值之间。

[编辑] Linux操作系统下虚拟内存实现
此章節的准确性有争议。
掛上此模板的編輯者需在对话页說明本文准确性有爭議的原因,以便讓各編輯者討論和改善。

在Linux操作系统支持两种形式的交换空间:交换分区和交换文件。 交换分区:在磁盘中专门分出一个磁盘分区用于交换 交换文件:创建一个文件用于交换 交换空间大小没有规定特定的值,如果物理内存较小(小于512M字节)时,一般设置为物理内存的1.5倍到2倍。

Linux支持同时使用多个交换设备,还能为它们分配给不同的优先级。当需要交换出物理内存中页时,操作系统根据优先级顺序选择可用的交换设备。如果有多个交换设备优先级相同,那么它们是按照类似level 0 RAID的方式分配使用的。如果能够并行地访问这些交换设备的话,给他们分配相同的优先级就能够使系统性能得到提供。因此,分配优先级的时候还应该特别注意一些问题。例如,在同一物理磁盘上的多个交换分区就不应该被并行地使用,而应该以访问速度从高到底的顺序使用。所以在只有一块物理磁盘的时候,设置多个交换分区,并不能提高性能,反而可能会使性能下降。


[编辑] 页面文件与磁盘碎片
此章節的准确性有争议。
掛上此模板的編輯者需在对话页說明本文准确性有爭議的原因,以便讓各編輯者討論和改善。

由于虚拟内存使用了硬盘,硬盘上非连续写入的文件会产生磁盘碎片,因此一旦用于实现虚拟内存的文件或分区过于零碎,会加长硬盘的寻道时间,影响系统性能。有观点误认为Windows系统频繁读写pagefile.sys就会产生磁盘碎片,实则不然。因为pagefile.sys文件一旦创立,在分区中的分布连续形式就固定下来,文件内部读写并不增加或减少pagefile.sys的文件大小。仅当页面文件告罄后系统创建的temppf.sys会带来磁盘碎片。 而在Linux系统中,将用于虚拟内存的部分置于单独的分区中,不影响其他的分区或文件,则基本杜绝了磁盘碎片带来的影响。


[编辑] 参见
高速緩存文件置換機制

[编辑] 参考资料
^ Windows Version History.Microsoft(Last Review: July 19, 2005).於2008年12月3日查閱.
Windows NT的虚拟内存管理
Windows XP的虚拟内存与性能
微软官方内存管理白皮书
Linux下内存管理
来自“http://zh.wikipedia.org/wiki/%E8%99%9A%E6%8B%9F%E5%86%85%E5%AD%98


TOP

发新话题
     
官方公众号及微博