非连续分配:
- 允许程序使用非连续的的地址空间
- 允许共享代码和数据
- 支持动态加载和动态链接
实现物理地址和虚拟地址的转换
段式存储管理
目的:更精细的粒度和灵活的分离与共享
程序:
堆
堆栈
数据段
代码段
段 : -
- 表示访问方式和存储数据属性相同的一段地址空间
- 每个段对应一个连续的内存"块"
- 进程的地址空间由若干个段组成
段地址空间 :段地址+段地址偏移
访问
- 先查询段表 存储了基址和长度
- MMU 会根据页表查询是否越界
页式存储管理
页帧 (将物理页面 基本单位) 大小为2的n次方
页面(将逻辑地址划分为逻辑页面 )帧与页大小相同
页面到页帧的转换
假定
16位地址空间 9bit(512b)大小的帧
页帧 > 帧号 + 帧内偏移
页 >页号 +页内偏移
页内偏移 = 页帧偏移
页号与帧号一般不相同