Chinaunix首页 | 论坛 | 博客
  • 博客访问: 593593
  • 博文数量: 353
  • 博客积分: 1104
  • 博客等级: 少尉
  • 技术积分: 1457
  • 用 户 组: 普通用户
  • 注册时间: 2008-12-23 23:02
个人简介

1、刚工作时做Linux 流控;后来做安全操作系统;再后来做操作系统加固;现在做TCP 加速。唉!没离开过类Unix!!!但是水平有限。。

文章存档

2015年(80)

2013年(4)

2012年(90)

2011年(177)

2010年(1)

2009年(1)

分类:

2011-12-08 13:12:23

kernel thread可以用kernel_thread创建,但是在执行函数里面必须用daemonize释放资源并挂到init下,还需要用completion等待这一过程的完成。
kthread_create是比较正牌的创建函数,这个不必要调用daemonize,用这个创建的kernel thread都挂在了kthread线程下。
从表面上来看,这两个函数非常的类似,但是实现却是相差甚远。

kthread_create是通过work_queue来实现的,kernel_thread是通过do_fork来实现的。

kthread_create:
DECLARE_WORK(work, keventd_create_kthread, &create);
调用keventd_create_kthread,keventd_create_kthread中调用kernel_thread:
    pid = kernel_thread(kthread, create, CLONE_FS | CLONE_FILES | SIGCHLD);

参考:
~frey/linux/kernelthreads.html



阅读(255) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~