在早期的操作系统中,是通过简单的分区技术进行内存管理的,内存分区属于连续分配方式。
1、单一连续分配
只能用于单用户、单任务的操作系统。
将内存分为系统区和用户区两部分,系统区仅提供给操作系统使用,通常是放在内存的低地址部分;
用户区是指除系统区以外的全部内存空间,提供给用户使用
2、固定分区分配
系统将这些用户主存空间划分为若干个固定大小的区域,每个区域供一道程序使用,分区大小可以相等也可以不等。
存在两个问题:1)程序可能太大,而放不进任何一个分区。
2)主存利用率低,当程序小于固定分区大小时,易产生内部碎片
3、动态分区分配
在进程进入内存时,根据进程的大小动态的建立分区,使分区的大小正好适合进程的大小
易产生外部碎片(可通过紧凑技术来解决)
动态分区的分配策略:
1)首次适应算法:空闲分区以地址递增的次序链接,分配内存时顺序查找,找到大小能满足要求的第一个空闲分区
2)最佳适应算法:空闲分区按容量递增形成分区链,找到第一个能满足要求的空闲分区
3)最坏适应算法:空闲分区以容量递减的次序链接,找到第一个能满足要求的空闲分区,也就是挑选出最大的分区
4)循环首次适应算法:由首次适应算法演变而来,不同之处是分配内存时从上次查找结束为止开始继续查找
原文地址:http://blog.csdn.net/yxb09501bin/article/details/45027159