物理内存管理
1 连续内存分配
1.1 固定分区分配
说明
在系统初始化阶段,内存被划分为许多静态分区,进程可以被装入大于或等于自身的分区中。
评价
操作简单,但缺乏灵活性,会产生大量内部碎片,并且当程序太大时,一个分区不足以装入。
1.2 动态分区分配
说明
为把一个进程装入内存,按照一定的分配算法(首次适应,最佳适应,最坏适应,伙伴系统等),从空闲分区中选出一分区分配给该进程;分区是动态创建的,每个进程都能正好被装入与自身大小相等的分区中。
评价
没有内部碎片,但会产生大量的外部碎片,需要压缩外部碎片,处理器利用率低。
2 非连续内存分配
2.1 简单分页
说明
使用分页技术,内存被分成了许多大小相等且相等的页帧,每个进程被划分许多的页面,页面可以根据页表查找页帧,因此进程被划分到的页面对应的页帧不需要是连续的,且不会产生外部碎片,只会在进程划分到的最后一面产生少量内部碎片。
评价
没有外部碎片,会产生少量内部碎片。
2.2 简单分段
说明
将程序及其相关的数据划分到几个段中,为执行一个程序需要将所有段装入内存,一个程序可以占用多个分区,且分区不要求是连续的。类似于动态分区,消除了内部碎片,且由于进程被分为多个小块,因此外部碎片也会很小。
评价
没有内部碎片,相对于动态分区,提高了内存的利用率,减少了开销,存在一些外部碎片。