操作系统: 内存管理

主存管理

  • 地址绑定:将逻辑地址和物理地址绑定

    • 编译时绑定:
    • 装入时绑定(静态重定位):
    • 运行时绑定(动态重定位):
  • 内存分配:为进程分配内存空间(以下管理方式指的是逻辑地址的管理方式)

    • 内存碎片问题:
      • 内部碎片:
      • 外部碎片:
    • 连续内存分配:通过分配连续的物理地址表示连续的逻辑地址
      • 固定分区分配
      • 动态分区分配:
        • First-Fit(首次适配)分配算法:
        • Best-Fit(最佳适配)分配算法:
        • Worst-Fit(最差适配)分配算法:
    • 页式管理及其分配:
      • 定义:逻辑地址分页(一页大小固定,系统确定),物理地址分块(与页大小一致),连续的逻辑页对应的物理地址块不一定连续 并通过页表映射逻辑/物理地址
      • MMU(Memory Management Unit,内存管理单元):为每个进程都分配较大逻辑地址空间(但实际物理地址较小),将虚拟地址通过页表转换为物理地址
      • TLB(Translation Lookaside Buffer,地址转换后援缓冲器):因引入分页机制导致访存效率降低,引入TLB缓存加快翻译速度
      • 多级页表:相比单级页表,可降低页表所占空间 哈希页表:当任务占用较少的虚存时较为合适,但可能造成哈希冲突引起额外处理 反置页表:当逻辑地址空间远大于物理空间时,通过增加翻译花销,降低页表所占空间
    • 段式管理及其分配:
      • 定义:逻辑地址根据程序的逻辑意义(人为管理)分段,物理地址根据段大小分配,连续的逻辑段对应的物理地址段不一定连续
    • 段页式管理:
  • 内存保护:保证一个进程只能访问自己的内存空间、以及对共享内存的保护

  • 内存扩充方式:

    • 覆盖:
    • 交换:例如进程任务的挂起和取消挂起

虚存管理

  • 程序的局部性原理
  • 按需分配
  • 页的置换:
    • FIFO
    • OPT
    • LRU
  • 惰性加载