段页式内存管理(转载)
转载博客:https://blog.csdn.net/qq_50985215/article/details/127670165
分页、分段的优缺点分析

分页管理它的缺点就是不方便按照逻辑块实现信息的共享和保护
而分段管理,如果段长过大,为其分配很大的连续空间会很不方便,而且还是产生外部碎片
段页式管理=分段+分页

段页式就是先将进程按照逻辑分段,然后再将各段分页,将各个页放入内存空间中的内存块中存储
段页式管理的逻辑地址结构

段号的位数决定了每个进程最多可以分为几个段
页号的位数决定了每个段最大有几个页
页内偏移量 决定了页面大小,内存块大小是多少
段页式存储的段表、页表的地址变换

根据我们的逻辑地址,得到对应的段号,页号,页内偏移量
根据段号跟段表寄存器的段表长度比较,判断是否越界,如果越界就发生越界中断
根据段表始址和段号来查询段表,找到对应的页表存放块,会根据页表长度和页号对比,查询是否越界
找到了对应的页表,根据我们的页号去页表找到对应的内存块号
找到我们的数据的物理内存地址,然后根据页内偏移量找到对应的内存单元
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步