计算机基础-操作系统-操作系统-基本分页存储管理方式
基本分页存储管理的思想:把内存分为一个个相等的小分区,再按照分区大小把进程拆分成一个个小部分
1. 分页思想
将内存空间分为一个个大小相等的分区(比如: 每个分区 4 KB),每个分区就是一个 “页框”,每个页框有一个编号,即 “页框号”,页框号从 0 开始。
将用户进程的地址空间也分为与页框大小相等的一个个区域,称为 “页” 或 “页面” 。每个页面也有一个编号,即“页号”,
页号也是从 0 开始。
注: 进程的最后一个页面可能没有一个页框那么大。因此,页框不能太大,否则可能产生过大的内部碎片
操作系统以页框为单位为各个进程分配内存空间。进程的每个页面分别放入一个页框中。也就是说,进程的页面与内存的页框有一一对应的关系。
各个页面不必连续存放,世不必按先后顺序来,可以放到不相邻的各个页框中。
2. 地址转换
逻辑地址为80 的内存单元: 应该在1号页,该页在内存中的起始位置为 450,逻辑地址为 80 的内存单元相对于该页的起始地址而言,”偏移量” 应该是 30。实际物理地址 = 450 + 30 = 480
- 要算出逻辑地址对应的页号
页号=逻辑地址/页面长度
- 要知道该页号对应页面在内存中的起始地址
页内偏移量=逻辑地址%页面长度
- 要算出逻辑地址在页面内的”偏移量”
操作系统需要用特殊数据结构记录进程各个页面的起始位置。
- 物理地址=页面始址+页内偏移量
为了方便计算机计算页号、页内偏移量,页面大小一般要为2的整数幂,如果每个页面大小为 $2^k B$,用二进制数表示逻辑地址,则未尾 K。位即为页内偏移量,其余部分就是页号
分页存储管理的逻辑地址结构如下所示:
地址结构包含两个部分:前一部分为页号,后一部分为页内偏移量 W。在上图所示的例子中,地址长度为32 位,其中011位 为”页内偏移量”,或称”页内地址”: 1231位为 “页号”。
3. 页表
为了能知道进程的每个页面在内存中存放的位置,操作系统要为每个进程建立一张页表。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Joker!
评论
ValineTwikoo