Table of Contents
1.Linux中工作队列相关的数据结构及其关系
工作队列机制(workqueue)是linux中断中一种最常用的下半部机制,相比tasklet而言,具有更高的实时性.工作队列有两种,带有WQ_UNBOUND标志位的工作队列绑定在每个CPU上,不带WQ_UNBOUND标志的工作队列放在内存节点中. linux内核中有几个和工作队列机制相关的重要数据结构.他们分别是:struct workqueue_struct,struct pool_workqueue,struct worker_pool,struct worker和struct work_struct. 下面用一张图来描述绑定在CPU上的工作队列的数据结构之间的关系:
2.Linux中工作队列的初始化
Linux系统启动时,调用init_workqueues()函数来初始化一些系统默认的工作队列workqueue,下面是init_workqueues()函数的工作流程图: