本文主要是介绍段页式管理方式,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
一、分段、分页的优缺点
1.分页管理:内存空间利用率高,无外部碎片,只有少量页内碎片,以物理结构划分,不便于按逻辑方式实现信息共享和保护
2.分段管理:为段长过大分配连续空间会很不方便,会产生外部碎片,以逻辑结构划分,便于按逻辑方式实现信息共享和保护
二、原理-分段与分页的结合
将进程按逻辑模块分段——>再将各段分页,相应将内存空间分为大小相同的内存块/物理块——>最后将各页面装入各内存块中。
逻辑地址=段号+段内地址(页号+页内偏移量)
其中,分段是由程序员编程时显式给出的,而各段分页是系统根据段内地址自动划分的。其地址结构是二维的。
每段对应一个段表项(段号+页表长度+页表存放块号),段表项长度相等,段号是隐含的。
每个页面也对应一个页表项(页号+页面存放内存块号),页表项长度相等,页号是隐含的。
三、实现地址变换
设置一个段表寄存器(装段表起始地址+段表长度)
第一次访存-找段表项;第二次访存-找页表项;第三次访存-访问目标内存单元;
引入快表(段号+页号),命中则可直接访问目标内存单元
这篇关于段页式管理方式的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!