周志遠教授作業系統_chap08_Operating System Chap8 Memory Management_.pdf

1. 在程序中使用内存—地址绑定

三种方式

  1. Compile Time (编译时指定)
  2. Load Time(load时指定物理地址)
  3. Run Time Address Binding(虚拟内存,需要硬件支持)
    1. MMU硬件-转换CPU传出的虚拟地址到真实地址
      1. 有弹性,方便os调配资源
      2. 方便user编程,管理程序就好,减少系统使用复杂度

2. 把程序加载进内存

逻辑vs物理地址

2.1.动/静态加载

Static Loading 主存预先分配好程序空间

Dynamic Loading

2.2.动/静态链接

Static Linking

所有库都被loader合并进程序(不同程序重复load 库)

Dynamic Linking

链接推迟到执行时

坏处:需要OS支持Dynamic Linking。运行速度慢,需要在runtime时去寻找lib

3. 把一个程序在主存和磁盘间移动—交换

3.1.交换

进程能在Backing Store中被交换出内存,随后再带进内存以继续执行

Backing Store

硬盘上的一块空间。与文件系统不同,由MMU直接管理

3.2.为什么需要交换进程

在Chap 9. 虚拟内存继续讨论如何SWAP

3.3.交换的要点

※4. 分配内存

4.1 连续内存分配

4.1.1.Fixed-partition

每个进程加载进固定大小的分区

多道 数目取决于 分区数量

4.2 Fragmentation—碎片

★4.3 不连续内存分配——分页