• Linux内核 idr机制


    idr机制解决了什么问题?为什么需要idr机制(或者说,idr机制这种解决方案,相对已有的其他方案,有什么优势所在) ?

      idr在linux内核中指的就是整数ID管理机制,从本质上来说,这就是一种将整数ID号和特定指针关联在一起的机制。

      假设我们的代码内需要将一个设备的ID号和描述该设备信息的结构体联系,我们应该怎么做?

      最简单的方法当然是通过数组(在当前场景下准确说,是结构体数组,每个数组元素包含一个ID和一个指针。但是结构体数组,依然是数组!)进行索引,

      但如果ID号的范围很大(比如32位表示的ID号),则用数组索引显然不可能,因为这需要定义很大的数组,消耗很大的内存空间。

      第二种方法是用链表,查找的时候根据ID来遍历链表。但如果实际存在的设备较多,则链表的查询效率会很低。

      遇到上述清况,我们就可以采用idr机制,该机制内部采用radix树实现,可以很方便地将整数和指针关联起来,并且具有很高的搜索效率。

    idr树实现机制,参考:

    https://blog.csdn.net/midion9/article/details/50923095

    .

    /************* 社会的有色眼光是:博士生、研究生、本科生、车间工人; 重点大学高材生、普通院校、二流院校、野鸡大学; 年薪百万、五十万、五万; 这些都只是帽子,可以失败千百次,但我和社会都觉得,人只要成功一次,就能换一顶帽子,只是社会看不见你之前的失败的帽子。 当然,换帽子决不是最终目的,走好自己的路就行。 杭州.大话西游 *******/
  • 相关阅读:
    互联网某些方面代替了朋友的作用
    穷人
    血脉之力
    鹤立鸡群
    如果有了一个进化的机会,你会选择放弃人类这个身份么?
    怎么样的制度才算是好制度
    /etc/fstab 参数详解及如何设置开机自动挂载
    Linux 查看系统硬件信息(实例详解)
    Linux下添加新硬盘,分区及挂载
    Quartz.NET
  • 原文地址:https://www.cnblogs.com/happybirthdaytoyou/p/13592513.html
Copyright © 2020-2023  润新知