如何在C中实现内存模拟?

时间:2011-11-13 03:17:29

标签: c data-structures

基本上我需要有两个列表,其中一个列表通过存储每个孔的起点和大小来保留空的记忆孔列表。另一个,保留有关各种过程的信息(虽然没有实际的过程数据,而只是id和起始位置和大小)。

所以,我明白我需要有两个结构,每个结构都定义了“洞”和“过程”。我需要有两个列表来存储这些对象。

我不明白,是如何“初始化记忆”。例如,如果用户想要初始化(5000字节),初始化方法应该对两个列表做什么?

2 个答案:

答案 0 :(得分:1)

您只需清空进程列表(因为没有分配内存)并从地址0到地址4999创建一个单孔(因为这些地址为空)。

答案 1 :(得分:0)

只需使用malloc()和free()等效实现常规内存管理器,并将其扩展为支持额外的控制数据(例如您的进程ID)。或者分配一大块内存,将其分成较小的每个进程块,并在这些内部实现内存管理。例如,请查看Doug Lea's memory allocator

一般情况另见Wikipedia on Memory Management。关注链接。