存储器管理
- 确保计算机有足够的内存处理数据
- 确保程序可以从可用内存中获取一部分内存使用
- 确保程序可以归还使用后的内存以供其他程序使用
分页存储
由于连续分配方式会导致形成许多碎片,而如果总是进行碎片整合进行拼接会有很大的开销,为了解决这个问题,产生了一种离散分配的方式,基本单位是页,称为分页存储管理方式,该方式是将一个进程的逻辑地址空间分成若干个大小相等的页,为各个页进行编号,同样将物理内存空间分成与页相同大小的若干个存储块,称为物理块。以页面为单位把进程空间装进物理内存中分散的物理块
这样分页地址的地址结构就是
分为页号和偏移量,地址长度为32位,其中0~11
位为页内地址,即每页的大小为4K;12~32
位为页号,地址空间最多允许1M页
页面大小一般为512B~8K,过大的话难以分配,过小会导致内存碎片过多
页表
为了使得在内存中找到每个页面多对应的物理块,系统又为每个进程建立了一张页面映像表,简称页表,记录页面在内存中对应的物理块号,页表一般存放在内存中。
进程在执行时,通过查找页表来寻找每页在内存中的物理块号
段式存储
将用户程序地址空间分为若干个大小不等的段,每段可以定义一组 相对完整的逻辑信息。存储分配时,以段为单位,段与段在内存中可以不相邻存储,也实现了离散分配
段表
与分页存储类似,段式存储也需要段表来进行映射
其分为 段号、基址、段长,与页不同的是,每段的大小不等,所以需要加一个段长字段
段页式存储
由于分页存储和段式存储都有自己的优缺点,将两者的优点结合起来形成了段页式存储
- 逻辑空间首先被分为若干个逻辑分段,每段都有自己的段号
- 再将段内空间分为若干个大小相等的页,主存空间也分为大小相等的页,主存的分配以页为单位