进程运行基本原理

  1. 编译:高级语言 -> 机器语言
  2. 链接:把编译后的一组模块+库函数 链接在一起
  3. 装入:把链接后的装入模块 装入内存

覆盖与交换

  • 覆盖:覆盖区、固定区(不会调入调出)
  • 交换:对换区(更快,离散分配)、文件区(连续分配)

分页存储

把进程分页,离散放到内存块

  • 页表:页号+块号。记录进程页面和实际内存块对应关系
  • 快表(TLB):局部性原理,高速缓存,存放当前访问的页表
  • 多级页表:页表过大时需要连续空间和常驻内存

虚拟内存

  • 局部性原理:时间、空间、高速缓存
  • 特征:多次(调入)性、对换性、虚拟性
  • 页表机制:状态位(是否在内存)、访问字段(供置换算法参考)、修改位(写回外存)、外存地址

置换算法

  • OPT:最长时间不会被访问。发生在未来,无法实现
  • FIFO:先进先出
  • LRU:最近最久未访问
  • CLOCK(NRU):循环扫描,淘汰访问位=0的,其他的改为1
  • 改CLOCK,循环扫描
      1. 淘汰访问0、修改0
      1. 淘汰访问0、修改1,其他页面访问改为0