现在的位置: 首页 > 综合 > 正文

生产者-消费者模型(使用内核线程实现)

2014年03月10日 ⁄ 综合 ⁄ 共 425字 ⁄ 字号 评论关闭

在IPC系列文章当中,利用信号量集实现的是用户态下生产者-消费者模型的模型。本文以内核模块的方式,通过创建内核线程来为大家演示内核态下的生产者消费者模型。本模型属于np-nc-nb,即多个生产者多个消费着多个缓冲区。

在加载函数中,完成一些初始化的工作,并分别创建了5个生产者线程和消费者线程。kernel_thread函数的第一个参数是所所创建线程要做的动作;通过第二个参数传递i变量。

01 static int __init
np_nc_init(
void)
02 {
03     int i;
04  
05     printk("np_nc
module is working..\n"
);
06     in=out=0;
07     cflag=0;
08     init_MUTEX(&mutex);
09     sema_init(&s1,BUF_NUM);
10     sema_init(&s2,0);
11  
12     for(i=0;i<
N;i++)
13     {
<

抱歉!评论已关闭.