- 碎片整理
利用调整进程占用的分区位置,来减少或避免分区碎片。
整理策略:
1.紧凑:通过移动分配给进程的内存分区,合并外部碎片。限制条件:多有应用程序课重定位,整理碎片速度慢。
2.分区对换:通过抢占并回收处于等待状态的进程分区,增大可用内存空间,将等待状态的进程挂起。
- 非连续进程分配的需求
在连续内存分配的过程中,不可避免的要产生内存碎片,从而使得连续内存分配难以实现,并且内存利用效率较低。从而需要对内存碎片进行更好的利用——非连续内存分配。
非连续内存分配的策略主要有两种:段式和也是,另外一种是两者的结合:段页式。
- 段式存储管理
1.段地址空间:将进程分为不同的模块,每个模块对应一个段,分配一段连续的内存地址。段与段之间可以不连续,但是段内必须连续。(图中的12345不一定需要按顺序)
2.段的访问: 逻辑结构(S,addr)——S表示段号,addr表示段内偏移。
- 页式存储管理
1.页帧:把物理地址空间划分为大小相同的基本分配单元。二元组(f,o)——f表示帧号(F位);o表示帧内偏移(S位)。实际物理地址=f * 2^S +o
2.页面:把逻辑地址空间划分为大小相同的基本分配单元。大小为2^n,帧和页的大小必须相同。二元组(p,o)——p表示页号(F位);o表示页内偏移(S位)。
3.例题:假设16bit的地址空间,9bit大小的页帧,物理地址表示为(3,6),求实际地址。
S=9,F=16-9=7,f=3,o=6
实际物理地址=f * 2^S +o=3 * 2^9 + 6=1542
4.页表:保存了逻辑地址与物理地址之间的映射关系
5.多级页表
6.快表:缓存近期访问的页表项
- 段页式存储管理
在段式存储的基础上,给每一个段加上一级页表。段的内存块较大,页的内存块较小。通过指向相同的页表基址,实现进程间的段共享。