页式存储管理

最后更新于:2022-04-02 04:05:31

[TOC] ## 概述 - 主存的字,字块是相对物理设备的定义 - 页面则是相对逻辑空间的定义 ## 页式存储管理 - 将进程逻辑空间等分成若千大小的页面 - 相应的把物理内存空间分成与页面大小的物理块 - 以页面为单位把进程空间装进物理内存中分散的物理块 >[warning] 有一段连续的逻辑分布在多个页面中,将大大降低执行效率 ![](https://cdn.jsdelivr.net/gh/idcpj/imgs/1599980995844-12A5CD1E-59E7-459C-8854-9016D3FA7D71.png) **页面大小通常是512B~8K** >[warning] 页面大小应该适中,过大难以分配,过小内存碎片过多 ### 页表 页表记录进程逻辑空间与物理空间的映射 ![EEF09D61-D543-4925-8177-67913DB6C622.png](http://img04.sogoucdn.com/app/a/100520146/03266f9ffe0f1aff06b0645e028ecf88) **缺点** 现代计算机系统中,可以支持非常大的逻辑地址空间(2^32~2^64),这样,页表就变得非常大,要占用非常大的内存空间,如,具有32位逻辑地址空间的分页系统,规定页面大小为4KB,则在每个进程页表中的页表项可达1M(2^20)个,如果每个页表项占用1Byte,故每个进程仅仅页表就要占用1MB的内存空间。 **解决方案:多级页表** ![D633921E-4FD2-415B-A6A5-B72BECD6C4B0.png](http://img02.sogoucdn.com/app/a/100520146/8ff411d33bed907a59765597835f7498) ## 段式存储管理 - 将进程逻辑空间划分成若千段(非等分) - 段的长度由连续逻辑的长度决定 - 主函数MAN、子程序段X、子函数Y等 ![BD4E9039-E357-4AC2-B7E9-856C55EF089A.png](http://img02.sogoucdn.com/app/a/100520146/471023d35c16895fc3d88f9de919f333) 段式与页式 1. 段式存储和页式存储都离散地管理了进程的逻辑空间 1. 页是物理单位,段是逻辑单位 2. 分页是为了合理利用空间,分段是满足用户要求 3. 页大小由硬件固定,段长度可动态变化 4. 页表信息是一维的,段表信息是二维的 ## 段页式存储管理 1. 分页可以有效提高内存利用率(虽然说存在页内碎片) 2. 分段可以更好满足用户需求 3. 两者结合,形成段页式存储管理 **方法** 1. 先将逻辑空间按段式管理分成若千段 2. 再把段内空间按页式管理等分成若干页 3. 结合两个地址来形成段页地址 ![703C21E8-4462-439D-BC9A-5C0FDC557954.png](http://img04.sogoucdn.com/app/a/100520146/3dfdaddb532462a00776dc8b79f38663) ## 对比三种方式分配内存的情况 ![7B0AADA8-A5F5-4C5B-B40D-E911A07156D0.png](http://img03.sogoucdn.com/app/a/100520146/9fc0fbc84e7adb3d255cee45b63e461b)
';