基本上我需要有两个列表,其中一个列表通过存储每个孔的起点和大小来保留空的记忆孔列表。另一个,保留有关各种过程的信息(虽然没有实际的过程数据,而只是id和起始位置和大小)。
所以,我明白我需要有两个结构,每个结构都定义了“洞”和“过程”。我需要有两个列表来存储这些对象。
我不明白,是如何“初始化记忆”。例如,如果用户想要初始化(5000字节),初始化方法应该对两个列表做什么?
答案 0 :(得分:1)
您只需清空进程列表(因为没有分配内存)并从地址0到地址4999创建一个单孔(因为这些地址为空)。
答案 1 :(得分:0)
只需使用malloc()和free()等效实现常规内存管理器,并将其扩展为支持额外的控制数据(例如您的进程ID)。或者分配一大块内存,将其分成较小的每个进程块,并在这些内部实现内存管理。例如,请查看Doug Lea's memory allocator。
一般情况另见Wikipedia on Memory Management。关注链接。