linux内核中用到红黑树的模块

在linux 5.8内核里grep了一下,罗列了一下使用rbtree的模块:

-- drm使用的mm

-- 网络协议栈中bgp的nethop的管理,nethop

-- ip侦测地址的缓存管理,inet_peer

-- swap, swap_info_struct

-- block queue 上的电梯算法

-- nfs, nfs_inode

-- skbuff, struct skbuff

-- vmap

-- fscache

-- Kerberos/disk encryption 用的key的管理,以可选的双连表、红黑树管理

-- rpc, sturct rpc_rqst - rpc receive queue 以可选的双连表、红黑树管理

-- blkdev的request, 代码注释中提示rb tree只用在io调度内部

-- iommu

-- sched_entity

-- mm_struct

-- 分布式存储ceph

-- kernel fs (什么事kernel fs?)

-- perf event

-- rmap, anon_vma

-- sysctl, struct ctl_node

-- memory policy

-- timerqueue

interval tree, 区间树,一种对动态集合进行维护的扩张红黑树

从上面可以看到内存子系统的管理查找部分都适用了红黑树。内核里很多时候使用链表、红黑树两种方式管理复杂的数据。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容