我们如何实现具有以下约束的分配和跟踪内存的数据结构
- 在 O(1) 中分配和释放内存
- 最小碎片。
假设您有 1 KB 的内存单元。您需要在 2kB - 64 KB 内存之间分配
例如
A- 1
B-1
C-4
D-2
0 1 2 3 4 5 6 7 8 9 10
x A x BCCCCDD x
如果我们在释放内存时(如上面的 x 所示)可用的最小地址分配内存,我们将产生碎片。所以在上面的例子中,即使 3 个单元是空闲的,我们也不能分配 3 个连续单元的内存。
我们如何实现具有以下约束的分配和跟踪内存的数据结构
假设您有 1 KB 的内存单元。您需要在 2kB - 64 KB 内存之间分配
例如
A- 1
B-1
C-4
D-2
0 1 2 3 4 5 6 7 8 9 10
x A x BCCCCDD x
如果我们在释放内存时(如上面的 x 所示)可用的最小地址分配内存,我们将产生碎片。所以在上面的例子中,即使 3 个单元是空闲的,我们也不能分配 3 个连续单元的内存。