高效的离线内存分配算法

时间:2018-12-08 19:33:31

标签: arrays algorithm memory-management compiler-construction

我有一个固定大小的数组N和三个可能的操作ALLOC(numBytes)FREE(block),它们在给定的数组上分配和释放连续的内存块(间隔)(类似于malloc ()和free()),以及执行COMPACT操作以压缩分配的块(重新排列数组中从偏移量0开始的块,以使块之间没有间隙)。

ALLOCFREE操作的预定义列表,这些操作必须在数组上顺序执行(顺序不能更改)。问题在于数组可能变得非常分散,ALLOC将失败,并且每次发生这种情况时,都需要执行COMPACT操作。

我需要一种方法来执行操作列表(对于每个ALLOC操作,以找到数组中的最佳偏移量),以使所需的COMPACT操作的数量减至最少。请注意,目前对于优化峰值内存使用情况并不重要。

有关如何解决此问题的任何指示?我觉得这可能是NP难题,但我不知道那是什么。

0 个答案:

没有答案