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) + 物理内存

  • 相关阅读:
    每日记载内容总结33
    华为机试-尼科彻斯定理
    华为机试-求最大连续bit数
    华为机试-合法IP
    华为机试-票数统计
    华为机试-等差数列
    华为机试-自守数
    中序表达式转后序表式式
    华为机考 给你一个N*M的矩阵,每个位置的值是0或1,求一个面积最大的子矩阵,这个矩阵必须是一个正方形,且里面只能由1构成,输出最大的正方形边长。其中n,m<=400;
    华为机试-求解立方根
  • 原文地址:https://www.cnblogs.com/zpchcbd/p/12253713.html
Copyright © 2011-2022 走看看