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