存储管理之段页式存储管理
页式存储管理(等分划分)
- 字块是相对物理设备的定义
- 页面则是相对逻辑空间的定义
- 指的都是大小一样的一块内存
- 页式存储管理是将进程逻辑空间等分成若干大小的页面
- 相应的把物理内存空间分成与页面大小的物理块
- 以页面为单位把进程空间装进物理内存中分散的物理块
就像我们可以在纸(页面)上写字(数据),然后我们可以把这张纸放在档案柜(物理内存)的任何一个抽屉(页框)里。然后我们用一张目录表(页表)记录了每张纸在哪个抽屉里,这样当我们需要找到某一张纸(访问某一块数据)时,我们就可以通过目录表迅速找到它所在的抽屉。这就是页式存储管理的基本原理。
- 页面大小应该适中,过大难以分配,过小内存碎片过多。
- 页面大小通常是512B~8k。
页表
- 页表记录进程逻辑空间与物理空间的映射。
- 就像存放了指向具体位置的指针表一样。
- 二级页表
- 如果有一段连续的逻辑分布在多个页面中,将大大降低执行效率。
段式存储管理(非等分划分)
- 将进程逻辑空间划分成若干段
- 段的长度由连续逻辑的长度决定
- 主函数MAIN、子程序段X、子函数Y等
- 相同点:
段式存储和页式存储都离散地管理了进程的逻辑空间。 - 不同点:
页是物理单位,段是逻辑单位。
分页是为了合理利用空间,分段是满足用户要求。
页大小由硬件固定,段长度可动态变化。
页表信息是一维的,段表信息是二维的。
段页式存储管理
- 分页可以有效提高内存利用率(虽然说存在页内碎片)。
- 分段可以更好满足用户需求。
- 两者结合,形成段页式存储管理。
- 段页式存储管理的逻辑
先将逻辑空间按段式管理分成若干段。
再把段内空间按页式管理等分成若干页。