动态分区存储管理: 首次适应--最佳适应-最坏适应算法
1.背景
多个应用程序请求主存空间是一个多对多的问题,在分区存储分配方法中由多个空闲区组成了空闲队列。对一个要进入主存的应用程序而言,主存分配程序在多个空闲区中选择那一个给该应用程序这就是一个放置 策略问题。
2.理论分析
空闲区队列的排序原则就体现了选择一个空闲区的策略。这个队列可以是无序的,即按照主存块释放的先后顺序排列。也可以按照某种分类方法进行排序,下面是两种常用的分类方法:
1.按地址增加1或减少的次序分类排序。
2.按区的大小增加或减少的次序排列。
无论哪种策略都应遵循:
1.当分配一个空闲区的时候,按分配块的算法进行分配,而放置策略只是描述空闲区队列的排序原则。
2.当回收一个空闲区时,必须按照队列的排序原则,把空闲区插入到队列适当的位置中以保证队列排序规则不变你。
3.放置策略(算法)比较
关于首次适应算法、最佳适应算法和最差适应算法,先看一下百度百科的解释,已经说出了三者的最大区别。
首次适应算法(first-fit):
从空闲分区表的第一个表目起查找该表,把最先能够满足要求的空闲区分配给作业,这种方法的目的在于减少查找时间。
最佳适应算法(best-fit):
从全部空闲区中找出能满足作业要求的,且大小最小的空闲分区,这种方法能使碎片尽量小。
最差适应算法(worst-fit):
它从全部空闲区中找出能满足作业要求的、且大小最大的空闲分区,从而使链表中的节点大小趋于均匀。
4.案例分析与实现
主存大小为 maxsize (512) 字节
申请过程:
J1申请162,J2申请64,J3申请120,J4申请86,J1完成,J3完成,J5申请72,J6申请100,J2完成,J7申请36,
J8申请60,J4完成,J9申请110,J10申请42。
规则: