虚拟内存管理

  • 虚拟内存管理
  • 虚拟内存与物理内存区别
  • 内存分页的概念:
  • 页交换文件逻辑:
  • ```虚拟内存API```


虚拟内存管理

虚拟内存与物理内存区别

一、作用不同

1、虚拟内存:使得应用程序认为拥有连续的可用的内存。

2、物理内存:是在计算机运行时为操作系统和各种程序提供临时储存。

二、特点不同

1、虚拟内存:是被分隔成多个物理内存碎片,还有部分暂时存储在外部磁盘存储器上,在需要时进行数据交换。

2、物理内存:会对系统的虚拟内存限制有影响,虚拟内存的大小等于物理内存容量、再加上所有页面文件的最大容量。

三、主体不同

1、虚拟内存:是计算机系统内存管理的一种技术。是Windows 为作为内存使用的一部分硬盘空间。

2、物理内存:指通过物理内存条而获得的内存空间。

内存分页的概念:

操作系统管理内存是将内存分成一页一页来管理的,每一页的大小是4K也就是Ox10004G的内存共有1M个页

使用了分页机制之后,4G的地址空间被分成了固定大小的页,每一页或者被映射到物理内存,或者被映射到硬盘上的交换文件中,或者没有映射任何东西。对于一般程序来说,4G的地址空间,只有一小部分映射了物理内存,大片大片的部分是没有映射任何东西。CPU用来把虚拟地址转换成物理地址的信息存放在叫做页目录和页表的结构里,

yarn 虚拟内存与物理内存之间的比率 虚拟内存比物理内存大_虚拟内存


yarn 虚拟内存与物理内存之间的比率 虚拟内存比物理内存大_运维_02


Mapped可以多个进程虚拟内存进行映射,映射到物理内存是同一块地址,一个进程修改这一块的内容,其他进程访问也会收到改变的内容,因为是映射,有连带关系。

yarn 虚拟内存与物理内存之间的比率 虚拟内存比物理内存大_yarn 虚拟内存与物理内存之间的比率_03


yarn 虚拟内存与物理内存之间的比率 虚拟内存比物理内存大_linux_04

页交换文件逻辑:

程序访问虚拟内存地址:操作系统判断数据是否在内存中,如果在就从虚拟地址映射到的物理地址,如果不在就判断是否在页交换文件当中,如果在就查看物理内存是否有闲置空间,有的话,就将页交换文件载入到物理内存,如果没有闲置内存,就从物理内存中找到一个可以释放的页,然后将页保存到页交换文件中。

页交换文件在硬盘中,而虚拟内存等于物理内存+分页文件的总和。

yarn 虚拟内存与物理内存之间的比率 虚拟内存比物理内存大_linux_05

虚拟内存API

yarn 虚拟内存与物理内存之间的比率 虚拟内存比物理内存大_windows_06


正常不发修改常量型指针内容,通过API函数VirtualProtect可以修改内容。

yarn 虚拟内存与物理内存之间的比率 虚拟内存比物理内存大_运维_07