发布时间:2024-03-29 文章来源:深度系统下载 浏览:
一、什么时虚拟内存? 这个虚拟内存空间大小是由什么决定的呢? 虚拟内存的大小,由于CPU的位数决定的,也就是CPU能寻址多少位,虚拟内存就有多大 32位的CPU,虚拟内存的空间就是4GB 64位的CPU,虚拟内存空间就是:4G*4G=16G CPU在处理数据时,都在是虚拟内存中进行读写操作,但是毕竟是虚拟内存,最终的数据还是要存放在真正的物理内存上的。 这时呢还需要内存管理单无MMU和操作系统一起合作,来实现虚拟内存和物理内存之间的映射。 MMU是Memory Management Unit的缩写,中文名是内存管理单元,有时称作分页内存管理单元(英语:paged memory management unit,缩写为PMMU)。它是一种负责处理中央处理器(CPU)的内存访问请求的计算机硬件。 这种虚拟内存与物理内存之前的映射,对用户和程序员是无感的。 二、使用虚拟内存有什么好处呢? 1、简化程序运行条件,虚拟内存为程序加载提供了很大的灵活性。 现在比如一个程序直接跑在物理内存上,有很多时候,很多程序都需要调试,如果都直接跑到物理内存上,现在就要一直占用着实际的物理内存,如果程序调试的多,那么物理内存就会被占用的很大。 现在如果说,所有的程序都在虚拟内存上调试使用,这些程序如果映射到物理内存上,这个是由CPU灵活调用的,不需要我们参与,这样就可以节省很大一部分内存空间。 2、隔离进程 当有一个程序员,或者用户,要使用两个相同的程序进行编译的时候,会出现两个相同的虚拟内存,然后映射到不同的物理内存存储模块内,当有一个程序进程死掉的时候,不影响另外一个进程。 3、有效使用内存 举一个简单的例子,当我们系统开机时,加载的字体文件,直接加载到虚拟内存中,当我们进入系统后,有些程序需要使用到这些字体时,那么就可以共享使用内存中的字体,如果进入系统需要编辑字体文件时,这时就需要这程序自己单独再copy一份字体在内存中进行修改。 4、扩大内存应用 很重要的知识点: swap 假设我们现在的操作系统程序已经全部用完了物理内存,简单起见,我们通过设置页表让虚拟内存页和物理内存页,一一对应,此时,如果还有程序还需要申请一个内存页,这时应该如何处理呢? 为了让程序继续运行下去,操作系统会通过一定的算法,选择某一个内存页,暂时转移到硬盘上,同时更新一下对应的页表的信息,记录一下内存页所在的:硬盘扇区号码,这样就临时腾出了一个空间的内存页,更新一个页表,完成内存映射后,就可以返回给程序使用了 那如果程序需要读取:刚才转移到硬盘上的内存页,那该怎么办呢?显然,这时仍然没有空宋的物理内存可供使用,还是老办法,操作系统再选择一个内存页,将它也暂时转移到硬盘上面,并更新一下页表。 这样就又临时腾出了一个空闲的内存页,此时操作系统,就可以根据页表上的硬盘扇区号码,把存在硬盘上的内存页,读取到刚刚空闲的内存页上了,当然由于改变了位置,页表也需要更新一下,不得不说, 这是一个伟大的功能,重点来了,当你的电脑需要使用swap的时候,这时就需要使用到硬盘的读取,因为swap是需要使用到硬盘的读写速度的,如果是机械硬盘那么电脑就会变慢了,如果是固态盘那还是可以的。 三、虚拟内存如何设置大小 在运行中sysdm.cpl打开系统属性。 找到高级--设置 在性能选项中,找到高级--更改。 我们可以看一下,我电脑物理内存是12G,虚拟内存推荐的大小是2399MB=2.3GB 系统中存放的内存分页文件在哪呢? pagefile.sys即安装过程中创建的虚拟内存页面文件。这个文件的大小是自己系统虚拟内存设置的最小值的大小。假如虚拟内存的设置为800MB-1600MB那么你在自己的设定驱动盘下面就可看到大小为800MB的pagefile.sys文件 Pagefile.sys是用于管理虚拟内存的Windows分页(或交换)文件。它在系统物理内存 RAM 不足时使用。 Windows使用pagefile.sys来存储数据,否则这些数据将位于计算机的随机存取存储器 RAM 中。有时根本没有足够的容量在RAM中保存所有必要的文件,因此pagefile.sys位于您的硬盘驱动器或SSD C:\pagefile.sys 上,随时准备在必要时接收数据,通常是最少使用的文件在RAM中被“分页”到这个文件中。 |