操作系统概念(第八章) 内存管理(二)

分页产生内部碎片,分段产生外部碎片。

分页(paging)

分页(paging)内存管理方案允许进程的物理地址空间可以使非连续的。分页避免了将不同大小的内存块匹配到交换空间上,前面叙述的内存管理方案都有这个问题,当位于内存中的代码和数据需要换出时,必须现在备份存储上找到空间,这是问题就产生了。备份存储也有前面所述的与内存相关的碎片问题,只不过访问更慢。

传统上,分页支持一直是由硬件来处理的。最近的设计是通过将硬件和操作系统相配合来实现分页。

基本方法

实现分页的基本方法设计将物理内存分为固定大小的块,称为帧(frame);而将逻辑内存也分为同样大小的块,称为页(page)。当需要执行进程时,其页从备份存储中调入到可用的内存帧中。备份存储也分为固定大小的块,其大小与帧相同。

这里写图片描述

由CPU生成个每个地址分为两个部分:页号(p)和页位移(d)。页号作为页表的索引。页表包含每页所在物理内存的基地址,这些基地址与页偏移的组合形成物理地址,就可送交物理单元。

这里写图片描述

页大小(与帧大小一样)是由硬件来决定的。通常为2的幂。选择页的大小为2的幂可以方便的将逻辑地址转换为页号和页偏移。如果逻辑地址空间为 2m ,且页大小为 2n 单元,那么逻辑地址的高 mn 位表示页号(页表的索引),而低 n 位表示页偏移。每页大小从512B到16MB不等。

这里写图片描述

设页大小为 a ,根据页号 p 得到基地址 f ,页偏移为 d ,则物理地址为 fa+d

分页是一种动态重定位。每个逻辑地址有分页硬件绑定为一定的物理地址。采用分页类似于使用一组基(重定位)地址寄存器,每个基地址对应这一个内存帧。

采用分页技术不会产生外部碎片:每个帧都可以分配给需要它的进程。不过分页有内部碎片。

每个页表的条目通常为 4 B,不过这是可变的,一个

  • 7
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值