计算机操作系统:3内存管理-学习笔记

3.1 内存管理概念

内存管理功能

  • 内存空间分配和回收
  • 地址转换
  • 内存空间扩充
  • 存储保护

程序的装入和链接

  • 编译
  • 链接
    • 静态链接:链接成一个完整可执行程序,不再拆开
    • 装入时动态链接:边装入边链接?
    • 运行时动态链接:运行时动态链接,方便修改更新和共享
  • 装入
    • 绝对装入:装入固定位置,仅适用于单道系统
    • 可重定位装入:装入时加一个偏移
    • 运行时装入:在执行时采取计算物理地址

逻辑地址和物理地址转换

  • 地址重定位:将逻辑地址转换成物理地址

内存保护

  • 界地址寄存器 与 重定位寄存器

内存替换方式(为节约内存)

  • 覆盖
    • 对单进程分部分调入内存,并覆盖暂不需要的部分,已弃用
  • 交换
    • 调入需要的进程,调出部分等待的进程
    • 注意点
      • 换出的进程须处于空闲状态,I/O 时不能换出
      • 仅在内存吃紧时启动交换,否则暂停

内存分配方式

  • 连续分配管理方式
    • 分区方式
      • 单一连续分配
      • 固定分区分配
      • 动态分区分配
    • 分区算法
      • First Fit:首次适应算法,通常最简单且最好
      • Best Fit:最佳适应算法
      • Worst Fit:最差适应算法
      • Next Fit:邻近适应算法
  • 非连续分配管理方式
    • 分页存储管理方式
      • 组成
        • 页面和页面大小
        • 地址结构
        • 页表
        • 基本地址变化机构
      • 扩展
        • 快表
        • 多级页表
    • 分段存储管理方式
      • 组成
        • 分段
        • 段表
        • 地址变换机构
      • 扩展
        • 段的共享和保护
    • 段页式管理方式
      • 一个进程对应一张段表,每个段对应一个页表(也可能是多级页表)

3.2 虚拟内存管理

与传统存储管理方式对比

  • 传统内存管理
    • 一次性
    • 驻留性
  • 虚拟内存
    • 多次性
    • 对换性
    • 虚拟性

虚拟内存技术实现

  • 虚拟内存实现方式
    • 请求分页存储管理
    • 请求分段存储管理
    • 请求段页式存储管理
  • 硬件支持
    • 一定容量的内存和外存
    • 页表机制或段表机制
    • 中断机构
    • 地址变换机构

请求分页管理方式

  • 页表机制
    • 组成
      • 状态位 P :用于指示是否已调入内存,程序访问时可以参考
      • 访问字段 A :记录本页一段时间内的访问次数,或多久没被访问,供置换算法参考
      • 修改位 M :标示是否有修改
      • 外存地址
  • 缺页中断机构
    • 访存时,如果目标页不在内存中,则产生缺页中断
  • 地址变换机构

页面置换算法

  • OPT:最佳置换算法
    • 选择之后最长时间不被访问的页面
  • FIFO:先进先出置换算法
    • 选择最早进的页面换出
    • 可能有 Belady异常
  • LRU(Least Recently Used):最近最久未使用置换算法
    • 性能较好
  • CLOCK:时钟置换算法
    • 简单时钟置换算法:用一个循环链表将每一页链上,如果有使用则置使用标志为1,剔除时顺当前指针往下找到第一个为0的,且将找到的1置0
    • 改进型时钟置换算法:再加一个修改位,优先剔除既没被修改也没被访问的页

页面分配策略

  • 术语
    • 驻留集:分配给一个进程的物理页
    • 抖动:同一页被频繁地换进换出
  • 分配策略
    • 固定分配局部置换
    • 可变分配局部置换
    • 可变分配全局置换
  • 调入页面时机
    • 预调页策略:顺带调入几页
    • 请求调页策略:一次只调入请求的一页
  • 调入的来源
    • 当对换区足够时:先复制文件至对换区,再从对换区调入内存
    • 当对换区不足时:只读不改的文件直接调入内存,要修改的文件还得从对换区调入
    • UNIX 方式:未运行的页面全在文件区,换出的页面才放对换区
  • 工作集模型
    • 工作集由固定的历史窗口中不重复的页集决定,驻留集通常需要大于工作集
  • 地址翻译
    • 由虚拟地址到最终获得对应数据
      • 需考虑:TLB,Cache,内存,外存,页表,甚至段表

Leave a Comment