文件名称:好友分配器
文件大小:35KB
文件格式:ZIP
更新时间:2024-03-03 21:09:05
C
矢量地图 介绍 这是使用位图的伙伴分配器的教科书实现。 它首先在[1]中描述,然后在[2]中描述。 存储器被划分为等于2的幂的块数。作为示例,考虑将16 MB的区域划分为每个1 MB的16个块。 分配器构建一个二叉树并分配连续的块来满足需求。 需求四舍五入为2的幂:1024、2048、4096、8192和16384。 在最低级别上,有些节点具有有关1024 KB块的信息。 上一层大约为2048。下一层是4096,依此类推。 在顶层,具有有关整个内存区域信息的节点 有一个名为multipleregions的分支,带有此例程的版本,可以处理内存的多个区域。 使用位图 该实现不使用链接列表,而是将两位与二进制树中的每个节点相关联。 分配相应的区域时,会设置一个称为used的位。 当划分一个块并分配一个从属块时,将设置另一个位split 。 在此代码( buddy.c )中,这些位存储在两个
【文件预览】:
BuddyAllocator-main
----bitvector.h(4KB)
----buddy.c(7KB)
----LICENSE(1KB)
----README.md(3KB)
----Makefile(469B)
----Doxyfile(106KB)
----buddy.h(630B)
----.gitignore(27B)
----testbuddy.c(2KB)