操作系统专栏——段页式存储管理


上一节,从物理内存角度讲述了内存管理,这一节,将会从进程的角度来讲述一下存储管理。

所以,我们思考一下,操作系统是怎么去管理进程的内存空间的呢?

一共有三种管理模式,我会一一来介绍:

1. 页式存储管理

首先先明白两个重要的概念:

字块是相对物理设备的定义。
页面是相对逻辑空间的定义。

而我们的页式存储管理,是将进程逻辑空间等分成若干大小的页面,相应的把物理内存空间分成与页面大小相同的物理块,以页面为单位把进程空间装进物理内存中分散的物理块。

在这里插入图片描述

由此可见,我们如果将页面强行塞到空闲节点的话,定会产生空间碎片,所以页面大小塞进去的物理空间应该大小适中。

页面大小通常为512B-8KB。

那么问题就来了,在这么多的字块里,我们如何正确的分配页面的存储地址呢?

这时候就需要我们的页表了。

页表:记录进程逻辑空间与物理空间的映射关系。
在这里插入图片描述
由上图可见,页表可以帮助我们记录页面对应的存储地址。

总结一下,页式存储管理可以做到:

  1. 将进程逻辑空间等分成若干大小的页面。
  2. 相应的把物理内存空间分成与页面大小的物理块。
  3. 以页面为单位把进程空间装进去物理内存中分散的物理块。

它的缺点是:

如果有一段连续的逻辑分布在多个页面中,将大大降低执行效率。

2. 段式存储管理

段式存储管理:

  1. 将进程逻辑空间划分成若干段(非等分)
  2. 段的长度由连续逻辑的长度决定
  3. 拥有主函数MAIN、子程序段X、子函数Y

在这里插入图片描述

然后我们来对比一下段式存储管理和页式存储管理:

相同点是:

  1. 段式存储管理和页式存储管理都离散的管理了进程的逻辑空间。

不同点是:

  1. 页是物理单位,段是逻辑单位。
  2. 分页是为了合理利用空间,分段是满足用户要求
  3. 页大小由硬件固定,段长度可动态变化
  4. 页表信息是一维的,段表信息是二维的。

3. 段页式存储管理

段页式存储管理,集成了前面两种存储管理的优点形成的。

  1. 先将逻辑空间按照段式管理分成若干段。
  2. 再把段内空间按照页式管理等分成若干页。

在这里插入图片描述

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值