Linux中有关数据结构的思维导图,包括与软中断相关的数据结构、与 tasklet相关的数据结构、与 bh 相关的数据结构
树图思维导图提供 数据结构思维导图 在线思维导图免费制作,点击“编辑”按钮,可对 数据结构思维导图 进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:9bdf63eba7641beb3e92962e12d45b2f
数据结构思维导图思维导图模板大纲
是一种机制,同时也是一种基本框架
内核定义的软中断
NET_TX_SOFTIRQ 和 NET_RX_SOFTIRQ两个软中断是专为网络操作而设计的
HI_SOFTIRQ 和 TASKLET_SOFTIRQ 是针对 bh tasklet 而设计的软中断
软中断向量
内核定义了 32 个软中断向量,每个向量指向一个函数
实际上,内核目前只定义了上面的 4 个软中断
软中断控制/状态结构
softirq_vec[]是个全局量,系统中每个 CPU 所看到的是同一个数组
irq_stat[]数组也是一个全局量,但是各个 CPU 可以按其自身的编号访问相应的域
tasklet 是“多序”的 bh 函数
tasklet_struct 是一个链表结构,结构中的函数指针 func 指向其服务程序
对一个 bh 的描述也是tasklet_struct 结构,只不过执行机制有所不同
在不同的 CPU 上可以同时执行不同的tasklet
bh 的组织结构
把所有的 bh 用一个 bh_base[]数组组织在一起,数组的每个元素指向一个 bh 函数
是一个有 32 个元素的数组,但数组的每个元素是一个 tasklet_struct 结构,数组的下标就是上面定义的枚举类型中的序号