分页存储只是考虑到了空间利用,可能会将不同的两个程序的片段存放在一个页中,这时就破坏了数据的完整性,并且还需要额外的数据结构来记录那一部分是谁的程序片段。
因此,引入分段存储管理方式。
每个段就是一个函数。
与连续分配管理方式差不多,但是要更好一些,原来是一个程序连续存储在内存中,这会是一个段连续存储在内存中。
计算物理地址要更容易一些,基地址在段表中 直接给出,偏移量在逻辑地址也给出了。
要先找物理地址之前,要判断两次是否越界,段号是否越界,偏移量对比段表长度是否越界。都没有越界,就可以查到段号对应的基地址,加上偏移量就得出物理地址。
分页和分段的主要区别
分页主要的优点是提高内存利用率,一些无法存放的小程序也可以利用碎片存放下来。
分段存储保证了程序的逻辑完整性,满足用户共享,代码复用等需求。
分段的内存利用率也不高。
段页式系统
将两者优点结合,即提高内存利用率又能保证程序逻辑性。
将段划分成若干4k的页,主程序段最后一个页有剩余,也需要给它一个完整的页。
内存还是分成大小相等与页相同的块。
先判断段号是否越界,再判断页号是否越界,找到某段的具体某一页,根据偏移量找到具体的块号,根据块号算出基地址,然后加上偏移量得出物理地址。
表都是存放在内存中的,段表一次,页表一次,找到实际物理地址一次。
4.5分段存储管理方式
最新推荐文章于 2024-02-19 23:17:58 发布