uslab:无锁平板分配器空闲列表

时间:2024-05-27 17:08:49
【文件属性】:

文件名称:uslab:无锁平板分配器空闲列表

文件大小:19KB

文件格式:ZIP

更新时间:2024-05-27 17:08:49

C

实验室 Uslab是一个独立的,无锁的slab分配器库,它支持短期分配以及持久性存储。 它有望作为固定大小对象的有界缓冲区而发光。 设计 uslab的两个主要属性使它小巧,简单且无锁。 首先,释放的内存实际上不会真正返回到操作系统。 取而代之的是,任何显式释放的内容都将成为空闲列表的头部(从而实现为堆栈)。 通过重用我们先前分配的区域来维护*列表,这些区域用于存储指向列表中其他项目的指针。 做出一些辅助假设。 内存必须从零开始,因此必须通过MAP_ANONYMOUS进行映射或从RAM支持的磁盘存储中的文件进行映射。 因为内存为零,所以出现在*列表链上且值为0的任何项目都意味着紧邻的“节点”也是空闲的。 由于这种假设,我们不使用偏移量(因此,如果将平板用于持久性存储器存储,则平板必须映射到固定地址)。 slab的设计是安全的,因为它同时包含许多并发分配的线程和许多并发释放的线程。 每


【文件预览】:
uslab-master
----.gitignore(52B)
----Makefile(627B)
----CONTRIBUTORS(33B)
----TODO(362B)
----uslab_test.c(3KB)
----LICENSE(10KB)
----uslab.h(2KB)
----uslab_bench.c(5KB)
----README.md(3KB)
----rdtscp.h(254B)
----tap.h(4KB)
----uslab.c(9KB)
----tap.c(9KB)

网友评论