其他分享
首页 > 其他分享> > 存储器管理之段页式存储管理

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

作者:互联网

基本思想:

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

地址空间

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

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

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

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

在这里插入图片描述

地址变换

地址变换过程如下:

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

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

段页式存储管理算法

在这里插入图片描述

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

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

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

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

标签:存储管理,主存,分段,存储器,地址,页表,之段,地址变换,页面
来源: https://blog.csdn.net/weixin_45962068/article/details/120685319