第三章 内存
文章目录
进程运行基本原理
- 编译:高级语言 -> 机器语言
- 链接:把编译后的一组模块+库函数 链接在一起
- 装入:把链接后的装入模块 装入内存
覆盖与交换
- 覆盖:覆盖区、固定区(不会调入调出)
- 交换:对换区(更快,离散分配)、文件区(连续分配)
分页存储
把进程分页,离散放到内存块
- 页表:页号+块号。记录进程页面和实际内存块对应关系
- 快表(TLB):局部性原理,高速缓存,存放当前访问的页表
- 多级页表:页表过大时需要连续空间和常驻内存
虚拟内存
- 局部性原理:时间、空间、高速缓存
- 特征:多次(调入)性、对换性、虚拟性
- 页表机制:状态位(是否在内存)、访问字段(供置换算法参考)、修改位(写回外存)、外存地址
置换算法
- OPT:最长时间不会被访问。发生在未来,无法实现
- FIFO:先进先出
- LRU:最近最久未访问
- CLOCK(NRU):循环扫描,淘汰访问位=0的,其他的改为1
- 改CLOCK,循环扫描
- 淘汰访问0、修改0
- 淘汰访问0、修改1,其他页面访问改为0