存储器管理之段页式存储管理

基本思想:

用分段方法来分配和管理虚拟存储器,用分页方法来分配和管理实存储器(即主存)。

地址空间

一个程序首先被划分成若干程序段,每一段给予不同的分段标识符,然后,对每一分段又分成若干个固定大小的页面。
在这里插入图片描述

如上图所示,系统中的一个作业的地址空间结构页面尺寸为4K字节,该作业有三个分段,第一段为 15K字节,占4页,最后一页只有1K未用;其它段同理。未足一页大小的补为一页。
在这里插入图片描述

如上图所示,系统可允许有4096段,每段有256个页面 ,每个页面大小为4K字节。对程序员,编址方式或编译程序给出的目标程序的地址形式仍然是二维的,即段号S和段内相对地址W’;而只是由地址变换机构,把W’ 的高8位解释为页号P,把低12位解释为页内相对地址(位移量)W。

控制寄存器、段表、页表与主存的关系图

在这里插入图片描述

地址变换

地址变换过程如下:

⑴从控制寄存器读取段表始址,找到段表;
⑵段号+段表始址 得到段描述子地址;
⑶从段描述子读取页表始址,找到页表;
⑷页号+页表始址得到页描述子地址;
⑸从页描述子读取物理块号;
⑹物理块号+页内位移量得到物理地址。
在这里插入图片描述

上述的地址变换至少要访问主存三次,这将使执行程序的速度大大降低。为了解决上述问题,可以采取前边讲过的“快表”技术。

段页式存储管理算法

在这里插入图片描述

中断处理模块的主要功能:

链接障碍中断:实现动态链接。其主要工作是:给用符号命名的分段分配一个段号 ;在相应段表及现行调用表中,为其设置表目;利用段号改造链接 间接字。
缺段中断:在系统的现行分段表中建立一个表目(若曾调入过,则只需改变状态) ;为调进的段建立一个页表,并在其段表的相应表目中登记此页表的起始地址。
缺页中断:在主存中找出空闲的存储块。如没有,则调用置换算法,移去主存中的 一页,然后调进所需页面;最后修改相应的页表表目。

注意:在这里,一个分段是每次一页地调入主存的,所以,分段中那些不被访问的页面就不会被调入主存。

欢迎大家加我微信交流讨论(请备注csdn上添加)
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程子的小段

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值