文章目录
非连续分配管理
- 支持多道程序的两种连续分配方式的缺点
- 固定分区分配 : 缺乏灵活性, 产生了许多无法利用的内部碎片
- 动态分区分配 : 当产生了许多外部碎片时, 需要采用"紧凑"技术, 时间代价高
如果允许将一个进程分散地装入到许多不相邻的分区中, 便可充分利用内存, 而无需再进行“紧凑” ---- 分连续分配方式
基本分页存储管理
- 思想 : 把内存划分为一个个
相等的小分区
, 然后按照分区大小将进程拆分成一个个小部分.
- 页框 : 内存空间划分的一个个大小相等的分区
- 页框号 : 每个页框的编号, 从0开始 (低地址开始)
- 页面 : 将用户进程的地址空间划分为和页框大小相等的一个个区域
- 页号 : 页面的编号, 从0开始
- 进程的最后一个页面可能没有页框大, 因此
页框不能太大, 否则可能产生过大的内部碎片
进程的页面, 和内存的页框一一对应
, 页面不必连续存放, 也不必按先后顺序.
如何实现地址转换
-
采用分页技术后, 进程的地址空间会被分为一个个页面, 这些页面离散的, 不按顺序地放入内存的各个页框当中. 因此逻辑地址->物理地址的转换, 成了需要解决的第一个问题
-
连续分配中采用动态重定位进行地址转换
- 运行时进行地址转换, 一个重定位寄存器记录进程的物理首地址. 实际地址 = 逻辑地址 + 重定位寄存器中的物理首地址
- 模块在内存中的
起始地址
+ 目标内存单元相对于起始位置的偏移量
-
前20位对应页号, 后12位对应页内偏移量