我正在尝试学习如何为 linux 编写可加载的内核模块。我想知道是否有人可以告诉我这些功能sleep_on
和作用wake_up
是什么?
在我正在查看的示例中,&WaitQ
总是传递给它们并且
static DECLARE_WAIT_QUEUE_HEAD(WaitQ);
在模块顶部声明。
我正在尝试学习如何为 linux 编写可加载的内核模块。我想知道是否有人可以告诉我这些功能sleep_on
和作用wake_up
是什么?
在我正在查看的示例中,&WaitQ
总是传递给它们并且
static DECLARE_WAIT_QUEUE_HEAD(WaitQ);
在模块顶部声明。
如果内核中的任务到达它想要使用资源的点并且被告知the resource is currently used by another task
,它可以决定进入睡眠状态wake me up when the resource is available again
。这基本上就是sleep_on 和wake_up 的处理。有关详细说明,请参见此处:http ://www.linuxtopia.org/online_books/Linux_Kernel_Module_Programming_Guide/x1032.html