摘要:
自己创建的内核线程,当把模块加载到内核之后,可以通过:ps –ef 命令来查看线程运行的情况。通过该命令可以看到该线程的pid和ppid等。也可以通过使用kill –s 9 pid 来杀死对应pid的线程。如果要支持kill命令自己创建的线程里面需要能接受kill信号。这里我们就来举一个例,支持kill命令,同时rmmod的时候也能杀死线程。#include <linux/kernel.h>#include <linux/module.h>#include <linux/init.h>#include <linux/param.h>#includ 阅读全文
摘要:
接上 一篇文章,这里介绍另一种线程间通信的方式:completion机制。Completion机制是线程间通信的一种轻量级机制:允许一个线程告诉另一个线程工作已经完成。为使用 completion, 需要包含头文件 <linux/completion.h>。可以通过以下方式来创建一个 completion :DECLARE_COMPLETION(my_completion);或者, 动态创建和初始化:struct completion my_completion;init_completion(&my_completion);等待 completion 是一个简单事来调用: 阅读全文