是否可以判断地址是通过sbrk还是mmap获取的?

问题描述 投票:0回答:1

我正在开发一个基于 Hoard 的堆内存分配器,用于教育目的。我知道如何使用 sbrk 和 mmap 分配内存,并且之前开发过玩具级分配器。

我想使用 mmap 来分配除了隔离的空闲列表之外的大块。我明白如何进行 malloc,但我不明白如何在之后进行 free。 IE。是否将块放入空闲列表或对其进行 munmap。

区分块类型的最基本方法是添加额外的元数据。但是,我想保持元数据最少。

是否可以仅使用地址来确定如何获取块?比如范围比较或者某种系统调用?

linux memory-management heap-memory dynamic-memory-allocation hoard
1个回答
0
投票

我浏览了文档,但没有看到任何关于内存预留的起源。

我认为这不是系统保存的信息,因为它与系统的操作无关。

您需要修补内核以跟踪(*)系统调用;-)

(*)也许一个分析工具可以说明这个主题......

© www.soinside.com 2019 - 2024. All rights reserved.