操作系统实现了各种算法, 以便找出链表中的漏洞并将其分配给进程。
下面给出有关每种算法的说明。
1.首次拟合算法
First Fit算法将扫描链表, 并在找到第一个足够大的漏洞以存储进程时停止扫描并将进程加载到该漏洞中。此线程将产生两个分区。其中一个分区将是一个洞, 而另一个分区将存储该线程。
First Fit算法根据起始索引的升序维护链表。这是所有算法中最简单的实现方法, 与其他算法相比, 它会产生更大的漏洞。
2.下一个拟合算法
Next Fit算法与First Fit算法相似, 不同之处在于Next Fit从先前为其分配孔的节点扫描链表。
下次试穿不会扫描整个列表, 它会从下一个节点开始扫描列表。下一次拟合的想法是, 列表已被扫描一次, 因此在列表的其余部分中发现孔的可能性更大。
对算法的实验表明, 下一个拟合比第一个拟合更好。因此, 在大多数情况下, 这些天都没有使用它。
3.最佳拟合算法
“最佳拟合”算法尝试在列表中找出可以容纳线程尺寸要求的最小孔。
使用”最适合”有一些缺点。
- 1.较慢, 因为它每次都扫描整个列表并试图找出可以满足要求的最小孔加工线程。
- 由于整个尺寸和工艺尺寸之间的差异非常小, 因此所产生的孔会变得很小, 因为它不能用于装载任何工艺, 因此仍然没有用。
尽管算法的名称最合适, 但它并不是所有算法中最好的。
4.最差拟合算法
最差拟合算法每次都会扫描整个列表, 并尝试找出列表中能够满足线程要求的最大漏洞。
尽管该算法会产生较大的漏洞来加载其他进程, 但由于速度较慢, 因为它会一次又一次地搜索整个列表, 因此它并不是更好的方法。
5.快速拟合算法
快速拟合算法建议维护常用尺寸的不同列表。尽管这实际上不建议使用, 因为该线程需要花费大量时间来创建不同的列表, 然后浪费大量时间来加载线程。
最适合的算法是所有算法中最好的算法, 因为
- 与其他算法相比, 它花费的时间更少。
- 它会产生较大的孔, 以后可用于加载其他线程。
- 这是最容易实现的。
评论前必须登录!
注册