LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1442|回复: 5

怎样根据task_struct判断该任务是内核线程还是用户进程?

[复制链接]
发表于 2005-12-21 13:46:02 | 显示全部楼层 |阅读模式
怎样根据task_struct判断该任务是内核线程还是用户进程?
谢谢
发表于 2005-12-22 17:17:30 | 显示全部楼层
看他的mm struct就可以了应该,内核进程没有自己的mm struct
回复 支持 反对

使用道具 举报

发表于 2006-3-7 11:43:54 | 显示全部楼层
你为什么要判断一个认为是否是内核线程,说说你的理由!一般情况下都不需要判断。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-3-7 12:40:18 | 显示全部楼层
掉电保护时用到。
掉电中断产生时向所有task发送信号,给内核线程发我怕会导致内核崩溃。
回复 支持 反对

使用道具 举报

发表于 2006-3-7 18:07:37 | 显示全部楼层
给内核线程发信号,内核线程很有可能收不到。根据posix标准,中断出口处,系统将判断是否需要返回用户态,如果需要才检查是否有信号pending,以处理信号。内核线程没有用户空间,所以永远不可能返回到用户态。也就没有机会检查。不过,有些体系结构却在内核态检查是否存在pending中断。你看看《IA-64 linux内核设计与实现》就明白了。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-3-8 15:03:56 | 显示全部楼层
过于深奥:sleep
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表