操作系统 段页式存储管理

一、引入

  • ★分页系统是以页面作为内存分配的基本单位,能有效地提高内存利用率,但信息共享等不方便;
  • ★分段系统是以段作为内存分配的基本单位,它能够更好地满足用户多方面的需要(信息共享、动态链接等),但采用分区方式管理物理内存,仍然存在碎片问题;
  • ★段页式存储管理方式是对两种存储管理方式的“各取所长”,既具有分段系统的便于实现、分段可共享、易于保护、可动态链接等一系列优点,又能像分页系统那样,很好地解决内存的外部碎片问题。

二、基本思想——先分段,再分页

  • 地址空间划分:作业的地址空间仍按其逻辑结构分段。每个段又被进一步分成若干大小相同的页面。内存空间则分成与页面大小相等的物理块。
  • 作业装入:在作业装入内存时,一个页面装入内存一个块中。各个段的页面装入内存时可以占用互不连续的内存块
  • 采用虚拟存储技术:作业的页面不必一次全部装入内存,而采用请求页式管理的方法,当要访问的页面不在内存时,就产生缺页中断

问题:说明请求分段系统中的缺页中断处理过程

  • 程序请求访问一页–>页号>页表长度?–是–>越界中断
  • 程序请求访问一页–>页号>页表长度?–否–>cpu检索块表–>页表项在块表中?–否–>访问页表–>页在内存?–否–>保留cpu现场–>从外存中找到缺页–>内存满否–否–>os命令cpu从外存读缺页–>启动I/o硬件–>将一页从外存换入内存–修改页表。
  • 程序请求访问一页–>页号>页表长度?–否–>cpu检索块表–>页表项在块表中?–否–>访问页表–>页在内存?–否–>保留cpu现场–>从外存中找到缺页–>内存满否–是–>选择一页换出–>该页被修改否?–是–>将该页写回外存–>os命令cpu从外存读缺页–>启动I/o硬件–>将一页从外存换入内存–修改页表。

三、作业地址空间和地址结构(虚拟地址)
在这里插入图片描述
四、段表和页表
在这里插入图片描述
五、地址变换过程

  • 逻辑地址中的段号和段表长度比较,看是否越界,是就执行中断程序
  • 没有越界,利用段号+段表始址=对应段号的地址,读取地址中的数据,也就是这个段的页表始址
  • 利用逻辑地址中的页号+页表始址=对应页的页表项位置,也就是找到这个页号
  • 通过这个页号找到对应的物理块号
  • 物理块号+页内地址w=物理地址
    在这里插入图片描述

举一个例子:每页大小4KB,计算逻辑地址 (0,2,500)的物理地址?
在这里插入图片描述
逻辑地址 (0,2,500)所在段为第0段,页表是第0段页表,页号是2,对应的物理块号是19,因此
物理地址 PA=19*4K+500= 78324

六、总结段页存储管理的碎片问题

  • 结论:段页存储不会产生外部碎片,但是会产生内部碎片
    • 首先是程序会先进行分段,再对每一段进行分页,称为页面,对于内存,是按照页面的长度划分为若干的内存块,在存储的时候,每一个页面存储在一个内存块中,所以自然不会产生外部碎片
    • 但是不是每一个段都刚好可以切分成满足内存块大小的若干块,所以段页式存储是会产生内部碎片的
  • 4
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
1. 连续分配管理方式 工作原理:将内存划分为若干个固定大小的区域,每个进程分配一段连续的内存空间。 逻辑地址构成:由一个基地址和一个偏移量构成。 地址转换机构:通过基地址加上偏移量得到物理地址。 访问内存次数:一次访问。 优点:实现简单,效率高。 缺点:浪费内存空间,无法处理动态变化的内存需求。 地址维数:一维。 2. 分页存储管理方式 工作原理:将物理内存划分为若干个固定大小的页框,将进程分为若干个固定大小的页面,将页面映射到页框上。 逻辑地址构成:由一个页号和一个页内偏移量构成。 地址转换机构:通过页表将逻辑地址转换为物理地址。 访问内存次数:两次访问。 优点:充分利用内存空间,处理动态变化的内存需求。 缺点:页表占用内存空间,页表访问的时间开销较大。 地址维数:二维。 3. 分段存储管理方式 工作原理:将进程分为若干个逻辑段,每个段分配一段不连续的内存空间。 逻辑地址构成:由一个段号和一个段内偏移量构成。 地址转换机构:通过段表将逻辑地址转换为物理地址。 访问内存次数:两次访问。 优点:更好地满足了程序员对内存空间的管理需求。 缺点:浪费内存空间,段表访问的时间开销较大。 地址维数:二维。 4. 段页存储管理方式 工作原理:将进程分为若干个逻辑段,每个段分配若干个固定大小的页面,将页面映射到页框上。 逻辑地址构成:由一个段号、一个页号和一个页内偏移量构成。 地址转换机构:先通过段表将逻辑地址转换为物理地址的页表基址,再通过页表将逻辑地址转换为物理地址。 访问内存次数:三次访问。 优点:充分利用内存空间,更好地满足了程序员对内存空间的管理需求。 缺点:段表和页表访问的时间开销较大。 地址维数:三维。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值