美文网首页从汇编到C++
物理内存和虚拟内存的关系

物理内存和虚拟内存的关系

作者: Asura_Luo | 来源:发表于2018-05-04 02:35 被阅读0次

物理内存和虚拟内存的关系

进程容器中4GB空间的内容分布

image

在所谓的4GB空间内,系统内核占据了高2GB的空间,普通进程看不见摸不着,而且高2GB的空间是全局共享。全局就那么一份,各个进程间共享

观察进程内存分布,我们发现进程中真正使用的内存远远不到2gb,而且地址不是连续的。说明操作系统并不是一次性吧内存都给予进程

其实操作系统非常鸡贼,它只分配进程当前需要使用的内存,不需要的一律不分配

image

在进程中有一台地址规则,和物理内存有映射关系

image

内存页

image

私有内存的分配 (相关win32 api)

//申请内存(预定区域/调拨物理页)
LPVOID VirtualAlloc
(
    LPVOID lpAddress,          // 申请虚拟内存的地址 一般情况下填NULL 由系统指定地址
    SIZE_T dwSize,             // 申请内存块的大小 内存分配按照内存页`0x1000` (64k)为最小单位,所以这里最好填写 `0x1000`的整数倍(64k整数倍)
    DWORD flAllocationType,  // 申请内存的状态
    DWORD flProtect            // 申请内存的保护属性
);
//释放内存(释放区域/撤销调拨)
BOOL VirtualFree
(
    LPVOID lpAddress,     // 释放的内存地址
    SIZE_T dwSize,        // 释放的内存大小
    DWORD dwFreeType      // 释放内存的方式
);


//内存块的类型
闲置      FREE
私有      PRIVATE
映象      IMAGE
映射      MAPPED

//内存块的状态
预定      RESERVE
调拨      COMMIT
空闲      FREE

//预定:在我自己的虚拟内存空间中先站住位置,但是并不分配物理内存
//调拨:真正的分配了物理页,物理内存

相关文章

  • 你真的了解虚拟内存和物理内存吗

    在文章开始之前,先说下阅读本文后能学到的知识。 虚拟内存的由来。 虚拟内存和物理内存的关系。 虚拟内存的作用。 如...

  • Linux 内存管理 应用篇

    1、物理内存和虚拟内存 物理内存:物理内存就是系统硬件提供的内存大小,是真正的内存 虚拟内存:为了满足物理内存的不...

  • linux io与zero copy

    1. 物理内存与虚拟内存 1.1 物理内存 物理内存指通过物理内存条而获得的内存空间。 1.2 虚拟内存 虚拟内存...

  • linux内存映射

    关于页表,页表其实仅仅就是保存虚拟内存和物理内存的映射关系的,跟物理内存有没有被使用没关系的。 关于内存管理,物理...

  • iOS 中的虚拟内存和物理内存

    iOS 中的虚拟内存和物理内存 1. 虚拟内存和物理内存 1.1 起源 在早期的计算机中我们使用的都是物理内存。 ...

  • 你不知道的内存管理

    抓主线,三个点: 虚拟内存组织 虚拟内存和物理内存的转换 物理内存组织 虚拟内存组织 平时在进程中,所谓的内存地址...

  • linux 虚拟内存的作用?

    虚拟内存可以用来管理物理内存,进程直接和虚拟内存进行打交道而不是物理内存,为什么这样设计? 什么是虚拟内存? 虚拟...

  • iOS虚拟内存系统

    内存分为虚拟内存(virtual memory)和物理内存(resident memory)。物理内存 指的是设备...

  • 物理内存和虚拟内存的关系

    物理内存和虚拟内存的关系 进程容器中4GB空间的内容分布 在所谓的4GB空间内,系统内核占据了高2GB的空间,普通...

  • 内存

    虚拟内存、物理内存

网友评论

    本文标题:物理内存和虚拟内存的关系

    本文链接:https://www.haomeiwen.com/subject/cgyrrftx.html