虚拟机内存工作原理-VCP60.docx

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
虚拟机内存工作原理-VCP60

虚拟机内存工作原理Windows环境内存名词释义Windows内存管理概述?在现代计算机系统中,内存是指CPU可以直接访问的随机存储器。在硬件上,CPU通过一组地址线连接到内存上,这组地址线称为内存总线。而在软件上,CPU的许多指令允许用内存单元地址作为指令的操作数,实现直接操纵这些内存单元。内存地址,在Intel x86体系结构中,内存地址有三种类型:?物理地址即内存存储器的索引,CPU操纵内存芯片时,通过地址线管脚加上电信号来读或写相应的内存单元。在Intel x86体系结构上,物理地址是一个32位或36位的无符号整数。虚拟地址:在32位系统上,虚拟地址空间可以达到4GB大小,也就是说,整个空间可以有232=4294967296个字节单元。Intel x86芯片内有专门的电路负责把一个虚拟地址转译成物理地址。逻辑地址。逻辑地址包含两部分:段和偏移。段指定了在整个地址空间中的一个基地址、段空间的大小、属性。与寻址相关的是段的基址和大小。偏移部分指定了一个逻辑地址相对于段基址的偏移量。此偏移量不能超过段的边界。因此,逻辑地址的实际地址是段基址加上偏移量。Intel x86芯片也有专门的电路把逻辑地址转译成一个虚拟地址或物理地址。?把一个地址告诉CPU,让它访问相对应的物理内存单元,这一过程是操作系统和CPU相互协作来完成的。CPU最终需要的是一个物理地址,它必须把软件指令中的地址转译成物理地址,在转译过程中可能会涉及一些数据结构,甚至涉及I/O操作。?从操作系统的角度来看,一方面,它需要有效地管理所有的物理内存,使得当一个进程需要内存时,能够分配足够的内存单元给这一进程;另一方面,正如上一章所讲,进程代表一个相对独立的任务,它有一个逻辑上独立的地址空间。不同进程的地址空间应该是相互隔离的。实现每个进程都有自己的私有地址空间。当系统中进程数量增加以后,所需内存数量往往超过了总的物理内存,在这种情况下,操作系统须合理地安排内存的使用,使得内存紧缺时,既不会波及系统本身的稳定性,同时也不会严重影响系统的性能。当发生这种情况时,一般的做法是把不紧急的进程中的数据或代码先存放到硬盘(pagefile)中,从而把它们占用的物理内存腾出来给紧急的进程使用,或者交给系统使用。当内存紧缺的状况缓解时,系统再把硬盘(pagefile)中的进程数据或代码装回到已经空闲下来的内存单元中,从而使这些进程有机会继续运行。这两个过程称为内存换出和换入。几乎所有的多进程操作系统都支持这种内存管理。内存基本单元总是字节Bytes。每个内存地址指向一个字节,地址值加1以后指向下一个字节。物理内存的地址是固定的,故让进程使用物理地址来访问内存将使得进程的动态分配难以有效实施,因为内存单元与进程将通过物理地址紧密地联系在一起了,从而内存的回收和再分配将受限于特定的进程和物理地址。为打破这种关联关系,思路是让进程使用虚拟地址,而虚拟地址和物理地址之间通过一个映射表来完成转译。1.1 pagefile:即windows安装过程中创建的分页文件,见下图。注:Linux中Swap(/view/1008481.htm交换分区),类似Windows的pagefile,当物理/view/2480679.htm内存不足时,把一部分硬盘空间虚拟成内存使用,解决物理内存容量不足的情况。Android是基于Linux的操作系统,故也可使用/view/418446.htmSwap分区来提升系统运行效率。VMware ESXi上创建的虚拟机会自动根据虚拟机的内存大小创建一个同等大小的swap 文件,这个文件通常和虚拟机镜像文件在同一个目录,文件名:*.vswp。比如创建一个内存为8GB的VM,*.vswap会自动创建,且大小为8GB,保存在同1个 datastore中。1.2虚拟内存:Windows可使用的内存总称,包括物理内存和分页文件。从win NT开始,普通的应用程序已无法直接访问物理内存,只能访问虚拟内存,再由CPU将虚拟内存地址转换为物理内存地址。所以运行软件和游戏,访问的都是虚拟内存。(驱动程序应能直接访问物理内存)应用程序能使用一系列虚拟地址来访问大于可用物理内存的内存缓冲区。当物理内存的供应量变小时,内存管理器会将物理内存页(通常4KB)保存到磁盘文件。数据或代码页会根据需要在物理内存与磁盘之间移动。案例:pagefile的应用(物理内存16G,pagefile 16G)应用程序内存扫描启动物理内存剩余量活跃/闲置PagefileA20GNO   B8GYES8G7G/1G1GC6GYES2G5G/1G1GD4GYES2G+OS回收2GTotal应用占用了32G,应用程序X无法启动。极限之后会出现:蓝屏或重启。VMware虚拟机环境内存利用技术1、透明页共享TPS透明页共享是

文档评论(0)

liudao + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档