动态分区涉及到的分配算法

960 阅读1分钟

小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。

分区的三种算法

最先适应算法:要求可用表或自由链按起始地址的递增顺序排列。找到符合要求的第一个分区进行分配。该算法的分配和释放的时间性能较好,较大的空闲分区可以被保留在内存高端。但随着低端分区不断划分会产生较多小分区,每次分配时查找时间开销便会增大。

最佳适应算法:可用表从小到大次序排列,找到其大小与要求相差最小的空闲分区进行分配。从个别来看,外碎片较小;但从整体来看,会形成较多外碎片优点是较大的空闲分区可以被保留。

最坏适应算法:可用表从大到小次序排列,找到最大的空闲分区进行分配。基本不留下小空闲分区,不易形成外碎片。但由于较大的空闲分区不被保留,当对内存需求较大的进程需要运行时,其要求不易被满足。

根据效率、空间、公平性分析三个算法

效率:

最先适应算法:2

最佳适应算法:3

最坏适应算法:1

空间:

最先适应算法:2

最佳适应算法:

最坏适应算法:1

公平性:

最先适应算法:1

最佳适应算法:2

最坏适应算法:2

根据以上的分析我们可以发现最先适应算法的综合能力最好。