操作系统 (1)内存管理

操作系统的内存管理功能。分区管理与分页技术摘要。

基本存储管理

  • 内存是唯一可与CPU进行用户信息/代码直接访问的存储设备

  • 虚拟地址与物理地址:
    image-20201104185817186

  • 地址定位:

    • 固定定位:直接指定程序执行时访问的实际存储地址
    • 静态重定位:目标代码为以0为起始地址的相对地址,执行时每个逻辑地址加上基地址得到物理地址
    • 动态重定位:执行期间访问内存前,实时将逻辑地址变换为物理地址,依赖硬件实现
  • 存储管理方法:

    • 单一连续区存储管理:一个作业在运行时独占整个用户区
    • 固定分区存储管理:内存划分为多个固定分区
    • 可变分区存储管理:
      • 各个空闲分区按起始地址由低到高顺次登记在空闲分区表
      • 首次适应法:第一次找到大于等于申请大小的空闲区时就按大小分配给作业
      • 循环首次适应法:空闲表设计为顺序结构或链接结构的循环队列
      • 最佳适应:空闲区从小到大非递减次序排列,在所有大于等于要求分配长度的空闲分区中挑选一个最小分区
      • 最差适应:与最佳适应相反
  • 内存扩充:

    • 覆盖:大程序按照逻辑结构划分为多个程序段,不同时装入内存的程序段分在一组,可分配到同一个称为覆盖区的存储区域
    • 交换:
      • 覆盖用于一个作业内部,交换用于多个作业之间
      • 将作业的一部分保存到辅存中,以后适当的时间里作业移出的部分可装入原来的存储区继续运行
    • 虚拟内存:主存可只装入最近要访问的某些区域的指令和数据,剩余部分暂时不装入,以后访问时再调入内存。来用较小的实际内存满足程序虚拟地址空间的需求

分页与分段管理

  • 均为虚拟内存技术

  • 分页:将作业的虚拟地址空间划分为若干等长度的页,程序装入时,每个页装入主存的一个页架,页架可以不连续

    • 静态页式:运行前将所有的页装入页架
    • 请求分页:不必将所有虚页都装入主存的页架,只要装入当前运行时需要访问的若干页
      • 先入先出淘汰
      • 最近最少使用淘汰
      • 最近未使用淘汰
    • 结合联想存储器和快表的地址变换
      image-20201104191643597
  • 分段:按照逻辑结构将程序分为若干段,各段长短不同,每个段分配一个连续的主存分区,设置段表
    image-20201104191949208

  • 段页式:作业分段,段分页
    image-20201104192027456