2016 - 2024

感恩一路有你

段页式存储管理地址转换例题 在操作系统中,如何理解分页、分段的定义?两者之间的区别又是什么?

浏览量:1171 时间:2021-03-12 10:36:24 作者:admin

在操作系统中,如何理解分页、分段的定义?两者之间的区别又是什么?

分页是将进程的逻辑地址空间划分为几个大小相等的片(即页),然后将它们加载到内存中。

分段意味着用户可以根据逻辑关系将其作业划分为多个分段。每个段从0开始寻址,并有自己的名称和长度。这相当于主功能段、子功能段、数据段、堆栈段等。

您应该知道,在引入分页和分段之前,内存是通过连续分配来管理的,也就是说,一个进程是连续存储在内存中的。

可以理解,内存中有进程1、2、3。进程2首先执行,然后释放它占用的内存空间。之后,

如果新传输的进程的内存需求大于前2个进程的内存需求,则无法使用此内存。与内存需求较大的进程相比,前两个进程占用的内存空间是一个无法使用的碎片,如果新传输的进程的内存需求小于前两个进程的内存需求,前两个进程占用的空间将留下间隙并带来碎片。

虽然“紧凑”的方法可以用于碎片整理,但是成本很高,这导致了离散分配模式,与连续分配模式相反,分页和分段存储管理也相继引入。

所以相同的一点是,它们都属于内存管理模式中的离散分配模式。它们都需要通过地址映射机制实现地址转换。

区别在于离散分配的基本单位是页或段。

页是信息的物理单位,段是信息的逻辑单位。

分页作业地址空间是一维和线性的,程序员只需要使用助记符来表示地址;分段作业地址空间是二维的,程序员在表示地址时需要同时给出段名称和段中的地址。其中,段名可以理解为函数名,段中的地址可以理解为程序变量的地址。

值得一提的是,页面大小应与物理块或页面帧相同,并且物理块由操作系统设置。也就是说,在安装操作系统之后,物理块的大小是固定的,因此页的大小也是固定的。段的长度是可变的。

引入分页存储管理的目的是提高内存利用率,而引入分段存储的目的是满足用户(程序员)编程和使用的需求。还有一个将两者结合起来的段页系统。

在具有块表的段页式存储管理方式中,如何实现地址变换?

实现方案如下:首先设置段表寄存器,其中存储段表起始地址和段长SL。在地址转换过程中,段号s用于与段长sl进行比较。如果s<SL,则表示它没有越过边界,则段表起始地址和段号用于找出段表中与段相对应的段表条目的位置,页表从该位置开始获取该段的起始地址,利用逻辑地址中的页码P获取相应页的页表条目位置,从中读出页所在的物理块号b,然后由块号b和页地址构成物理地址。在带fast表的段页存储管理模式中,段表和页表放在fast表中。每次访问快速表时,使用段号和页码访问快速表。如果找到匹配项,则可以从中获得相应的物理块号,用于与行业地址一起生成物理地址。如果找不到匹配项,则需要访问内存三次以获取物理块号,并将其复制到速度表中。当fast表已满时,最长时间未被访问的项将被适当的算法替换。

段页式存储管理地址转换例题 分页系统物理地址多少位 页式存储管理地址转换图

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。