打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
窥探 kernel,just for fun --- 内核线程
http://long-yu2.iteye.com/blog/1492429
由于内核对进程和线程不做区分,所以内核线程(kernel thread)又称为内核进程(kernel process)。注意不能把普通进程中的线程理解为进程。
内核线程和普通进程的区别:
1、内核线程只运行在内核态,普通进程可以运行在内核态和用户态。
2、内核线程只能调用内核函数,普通进程可以通过系统调用调用内核函数。
3、内核线程只能运行在大于PAGE_OFFSET的地址空间,而普通进程可以4G的地址空间(除了访问用户空间的3G,通过系统调用可以访问内核空间的1G空间)。
由于内核线程不受用户态上下文的拖累,常被内核用于执行一些重要的任务,如刷新磁盘高速缓存,交换不同的页面。
在linux系统中用ps –ef命令看到的带“d”结尾的进程就是内核线程。
内核线程由kernel_thread在内核态被创建。
Java代码
在linux2.6.xxx/arch/arm/include/asm/processor.h
/*
* Create a new kernel thread
*/
extern intkernel_thread(int (*fn)(void *), void *arg, unsigned long flags);
参数说明:fn:新创建的内核线程要执行的函数。
arg:fn的参数。
flags:和do_fork中的clone_flags作用相似。在kernel_thread中do_fork缺省使用了CLONE_VM.
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
关于kernel_thread的补充说明
Linux启动流程
linux内核启动过程学习总结
内核线程
Linux 2.6内核抢占和spinlock|linux 2.6,内核抢占,spinloc...
linux的0号进程和1号进程
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服