zoukankan      html  css  js  c++  java
  • 内存管理:分页,分段,段页结合

    进程如何使用内存


    进程是操作系统资源分配的最小单元。操作系统分配给进程的内存空间中包含五种段:数据段、代码段、BSS、堆、栈。

    数据段:存放程序中的静态变量和已初始化且不为零的全局变量。

    代码段:存放可执行文件的操作指令,代码段是只读的,不可进行写操作。这部分的区域在运行前已知其大小。

    BSS段( Block Started By Symbol):存放未初始化的全局变量,在变量使用前由运行时初始化为零。

    :存放进程运行中被动态分配的内存,其大小不固定。

    :存放程序中的临时的局部变量和函数的参数值。


    内存区域中以上五个段的组织形式:



    逻辑地址、相对地址与物理地址


    逻辑地址与当前数据在内存中的物理分配地址无关的访问地址,在执行对内存的访问之前必须转化为物理地址。

    相对地址 特殊的逻辑地址,相对于某些已知点的存储单元。
    物理地址:数据在主存中的实际位置

    内存管理技术


    几种内存管理技术整理


    技术

    简要说明

    优点

    缺点

    固定分区

    主存被分为很多大小固定的分区,进程可以装载到大于等于自身大小的分区。

    实现简单

    1.有内部碎片

    2.活动进程的数目是固定的

    动态分区

    分区是被动态创建的,进程可以装载到正好等于自身大小的分区。

    没有内部碎片,内存使用更完全

    有外部碎片,需要压缩外部碎片

    简单分页

    主存被分为很多大小相同的帧,进程被分为很多与帧大小相同的页。要装入一个进程,需要将进程所有的页装入主存,可以是不连续的帧中。

    没有外部碎片

    有很少的内部碎片(仅出现在进程的最后一页)

    简单分段

    进程被分为很多的段,要装入一个进程,需要将进程所有的段装入主存中不一定连续的动态分区。

    没有内部碎片,比较与动态分区,内存利用率更高,开销小

    有外部碎片,需要压缩外部碎片

    虚拟内存分页

    与简单分页相比,不需要将进程的所有页装入主存

    1. 没有外部碎片
    2. 巨大的虚拟内存空间
    3. 更高程度的多到程序设计

    复杂的内存管理开销

    虚拟内存分段

    与简单分段相比,不需要将进程所有的段都装入主存

    具有虚拟内存分页的三个优点,并且支持保护和共享

    复杂的内存管理开销


    分页


    逻辑地址到物理地址的映射过程

     

    1. 提取页号,即逻辑地址最左的n位

    2. 以这个页号为索引,查找该进程页表中相应的帧号k

    3. 该帧的起始物理地址为k*2^m,被访问字节的物理地址是这个数加上偏移量




    举个例子

    腾讯今年的实习生笔试的某个选择题


    根据上面的三个步骤可以很容易得到结果:物理地址 = 3 * 8 * 1024 + 9612 % 8192 = 25996



    分段


    逻辑地址到物理地址的映射过程

     

    1. 提取段号,即逻辑地址最左的n位s

    2. 以这个段号为索引,查找该进程段表中该段的起始物理地址

    3. 最右m位表示偏移量,偏移量和段长度比较,如果偏移量大于该长度,则该地址失效

    4. 物理地址为该段的起始物理地址加上偏移量的和




     

    分页、分段的特点


    1. 进程的所有存储器访问的都是逻辑地址,在运行时动态地转换为物理地址。

    2. 一个进程可以划分为许多块,在执行的过程中,这些块不需要连续的存在主存中。

    段页式结合


     

    对于每一个虚拟地址,处理器使用段号检索进程段表来寻找该段的页表;页号用来检索页表并查找到帧号。






  • 相关阅读:
    AI换脸必备知识:如何查看显卡型号以及显存大小!
    DeepFaceLab620稳定版使用过程详解!
    DeepFaceLab错误:DLL Load failed 找不到指定模块!
    DeepFaceLab进阶:H128,DF,SAE模型有何不同?哪个最好?
    J2EE与EJB
    Servlet与JSP
    Java网络编程详解
    Java多线程详解
    Java数据库操作
    Java多线程
  • 原文地址:https://www.cnblogs.com/javawebsoa/p/3052202.html
Copyright © 2011-2022 走看看