zoukankan      html  css  js  c++  java
  • 虚拟内存与物理内存

    操作系统有虚拟内存与物理内存的概念。

    问题:32位的操作系统中,每个进程有4GB(不是一定)的内存是真实存在的吗?

    答:不是,是虚拟内存

    问题:32位的操作系统中,每个进程有4GB(不是一定)的内存是物理内存吗?

    答:不是,如果每个进程都存在4GB的话,操作系统根本处理不过来

    如图:当进程A的0x123地址存储的值为3,进程B的0x123地址存储的值为5,并且可以一起运行

    问题:虚拟内存中的值实际存储到哪里?

    答:实际存储在物理内存的某一个地址中

    问题:物理内存和虚拟内存的联系?

    答:如图,当虚拟内存中的值真正需要用的时候,物理内存才会开辟一段地址来存储虚拟内存中的值

    问题:物理内存是什么结构的?

    在interx86结构中,按照4KB大小进行页分配的,4KB/页,页为单位,那么上面的图也可以理解为如下:

    小知识:物理内存与内存条之间还有一层映射,具体我不懂,以后再补上

    问题:每个进程的4GB虚拟内存是如何划分的?

    首先可以划分为低2G,高2G

    低2G(用户空间):0 ~ 7FFFFFFF

    高2G(内核空间):80000000 ~ FFFFFFFF

    用户空间:用户操作的空间都在用户空间中,在用户空间中又分为3部分,分别为 空指针赋值区、用户模式区、64KB禁入区

    内核空间:所有进程都是相同的,都有这么一个相同的内核空间

    用户空间:那么也可以理解为,用户实际操作的空间还要去除上下的64KB大小的物理页

    小知识点:其实空指针赋值区和64KB禁入区想用还是可以使用的!

    问题:当物理内存物理页不够用时,操作系统会怎么操作?

    操作系统有开辟一块硬盘空间作为内存来使用的功能,这个功能默认是开启的。而硬盘毕竟不是内存,所以称为"虚拟内存"。同时,内存的速度远非硬盘所能企及,所以把硬盘当内存使能运行多程序但会降低运行速度。

    如果你的电脑c:pagefile.sys,存在的话,那么就是把磁盘的一部分作为物理内存进行处理,该虚拟内存和上面的虚拟内存含义不一样!

    所以真正能使用的物理内存的大小则为:虚拟内存(pagefile.sys) + 物理内存

  • 相关阅读:
    Windows下Git使用记录03 Git GUI与金山快盘组建私人代码仓库进行项目开发
    windows下GIT使用记录00准备阶段
    setnx分布式锁原理
    Redis 中 bgsave 方式持久化的细节问题
    IOS开发(十一):场景(3)模态切换示例
    Android:TextView属性大全
    Android:ActionBar官方指导+个人整理
    IOS开发(十二):UIDatePicker
    IOS开发(十三):UIDatePicker、场景切换综合示例
    IOS开发(十):场景(2)模态切换示例
  • 原文地址:https://www.cnblogs.com/zpchcbd/p/12253713.html
Copyright © 2011-2022 走看看