• 碎片整理

    利用调整进程占用的分区位置,来减少或避免分区碎片。

    整理策略:

    1.紧凑:通过移动分配给进程的内存分区,合并外部碎片。限制条件:多有应用程序课重定位,整理碎片速度慢。

    2.分区对换:通过抢占并回收处于等待状态的进程分区,增大可用内存空间,将等待状态的进程挂起。

  • 非连续进程分配的需求

    在连续内存分配的过程中,不可避免的要产生内存碎片,从而使得连续内存分配难以实现,并且内存利用效率较低。从而需要对内存碎片进行更好的利用——非连续内存分配。

    非连续内存分配的策略主要有两种:段式和也是,另外一种是两者的结合:段页式。

  • 段式存储管理

    1.段地址空间:将进程分为不同的模块,每个模块对应一个段,分配一段连续的内存地址。段与段之间可以不连续,但是段内必须连续。(图中的12345不一定需要按顺序)

    【OS】非连续内存分配

    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.快表:缓存近期访问的页表项

  • 段页式存储管理

     在段式存储的基础上,给每一个段加上一级页表。段的内存块较大,页的内存块较小。通过指向相同的页表基址,实现进程间的段共享。

相关文章: