首次适应算法从空闲分区表的第一个表目起查找该表,把最先能够满足要求的空闲区分配给作业,这种方法目的在于减少查找时间。
首次适应算法从空闲分区表的第一个表目起查找该表,把最先能够满足要求的空闲区分配给作业,这种方法目的在于减少查找时间。
首次适应算法的特点(First Fit):
该算法倾向于优先利用内存中低址部分的空闲分区,从而保留了高址部分的大空闲区,这为以后到达的大作业分配大的内存空间创造了条件。
缺点
低址部分不断被划分,会留下许多难以利用的,很小的空闲分区,称为碎片。而每次查找又都是从低址部分开始的,这无疑又会增加查找可用空闲分区时的开销。
算法实现过程举例
Question 3: Segment Allocation Algorithms
Given five memory partitions of 100 KB, 500 KB, 200 KB, 300 KB, and 600 KB (in order), how would the first-fit algorithms place processes of 212 KB, 417 KB, 112 KB, and 426 KB (in order)?
对于上述问题,该算法将实现以下操作
为212k分配空间:
依次找寻,找到第一个大于212k的空闲区;
找到第二个空闲区500k>212k,分配给212k,剩余288k空闲区;
为417k分配空间:
依次找寻,找到第一个大于417k的空闲区;
找到第五个空闲区600k>417k,分配给417k,剩余183k空闲区
为112k分配空间:
依次找寻,找到第一个大于112k的空闲区;
找到第二个空闲区288k>112k,分配给112k,剩余176k空闲区
为426k分配空间:
依次找寻,找到第一个大于426k的空闲区;
未找到,此作业将等待释放空间