因此,作为我正在学习的操作系统课程的一部分,我实现了一个内存分配器(就像 C 中的 malloc 一样)。可用空间存储在链表中。
我接下来的问题是:我将如何测试各种分配策略(例如,首次拟合、最佳拟合和最差拟合)。现在我只是迭代预定义的次数,每次分配一个大小为 1-N 字节的块,其中 N 类似于 20000。基本上我分配一些迭代然后我通过释放一些分配的块。在退出之前,我检查了 freelist 并计算了外部碎片。我不确定这是否是要走的路,还是有更好的方法来做到这一点?
为每种策略选择随机块大小的一个问题是,如果分配的块大小不同,则无法真正比较它们,对吧?所以替代方案是执行相同的测试,只是现在我在测试每个策略时使用相同的分配大小并释放相同的块。
希望这不会令人困惑:)