内核线程和进程的区别
来源:互联网 发布:淘宝1秒拦截软件有哪些 编辑:程序博客网 时间:2024/06/04 00:55
从内核的角度来说,它并没有线程这个概念。Linux把所有线程都当做进程来实现。内核并没有准备特别的调度算法或者定义特别的数据结构来表示线程。相反,线程仅仅被视为一个与其他进程共享某些资源的进程。每个线程都拥有唯一属于自己的task_struct,所以在内核中,它看起来就像是一个普通的进程(只是该进程和其他一些进程共享某些资源,如地址空间)
一.内核线程
1.内核经常需要在后台执行一些操作。这种任务可以通过内核线程 (kernel thread)完成。
2.内核线程和普通的进程间的区别在于内核线程没有独立的地址空间,(实际它的mm指针被设置为NULL)
3.内核线程只在内核空间运行,从来不切换到用户空间去。内核进程和 普通进程一样,可以被调度,也可以被抢占
4.内核线程也只能由其他内核线程创建。在现有内核线程中创建一个新的内核线程的方法如下:
int kernel_thread(int (*fn)(void *),void *arg, unsigned long flags)
新的任务也是通过向普通的clone()系统调用传递特定的flags参数而创建的。在上面的函数返回时,父线程退出,并返回一个指向子线程task_struct的指针。子线程开始运行fn指向的函数,arg是运行时需要用到的参数。
5.一般情况下,内核线程会将它在创建时得到的函数永远执行下去(除非系统重启)。该函数通常由一个循环构成,在需要的时候,这个内核线程就会被唤醒和执行吗,完成了当前任务,它会自行休眠。
阅读全文
0 0
- 内核线程和进程的区别
- 内核 线程和进程的区别
- 内核线程和普通进程的区别
- 内核线程和进程的区别
- 内核线程和进程的区别
- 内核线程、轻量级进程、用户线程的区别和联系
- 内核线程、轻量级进程、用户线程的区别和联系
- Linux内核本身和进程的区别 内核线程、用户进程、用户线程
- Linux内核本身和进程的区别 内核线程、用户进程、用户线程
- 进程.线程,内核线程创建的区别
- 进程,轻量级进程,内核线程,用户线程的区别关系
- 进程,轻量级进程,内核线程,用户线程的区别关系
- 进程,轻量级进程,内核线程,用户线程的区别关系
- 进程,轻量级进程,内核线程,用户线程的区别关系
- 进程,轻量级进程,内核线程,用户线程的区别关系
- 内核线程与普通进程的区别
- 进程内核栈、用户栈及 Linux 进程栈和线程栈的区别
- 进程和线程的区别
- Mac下安装mysql及简单错误处理
- group by 分组查询、分页查询、连表查询
- 迷宫游戏
- WinDbg 小贴士 -- dt命令搜索查看符号
- Windows下配置Redis,并修改密码
- 内核线程和进程的区别
- .properties文件读取及占位符${...}替换源码解析
- js面向对象---组件开发
- 补28号
- 一些绕过waf的笔记 2014-02-27
- Android自定义控件使用declare-styleable进行属性配置
- 理解ES6: 块作用域
- PCA算法原理
- php文字水印和php图片水印实现代码(二种加水印方法)