Chinaunix

标题: Linux idle进程 [打印本页]

作者: ahutwgs    时间: 2014-03-17 19:07
标题: Linux idle进程
Linux中idle进程是只有核心级线程还是既有核心级线程也有用户级线程 ?
作者: yangPSO    时间: 2014-03-17 22:00
内核线程,每个CPU一个
作者: humjb_1983    时间: 2014-03-18 08:30
内核线程,pid==0,可以理解为kernel自己~
作者: ahutwgs    时间: 2014-03-18 10:38
本帖最后由 ahutwgs 于 2014-03-18 10:39 编辑

我也是这样认为,只有核心级线程,关键是为什么,首先,idle程序设计的目的是什么? 我认为在Linux中,CPU不能空闲,必须执行程序,idle为了方便任务的调度,没有必要用户用户级线程,只要有核心级线程就可以了,实现任务的调度。不知道这样理解,是不是精确的
作者: ahutwgs    时间: 2014-03-18 16:16
pid == 0 的进程应该是init进程吧?回复 3# humjb_1983


   
作者: ahutwgs    时间: 2014-03-18 20:55
确实是0
1是init
作者: humjb_1983    时间: 2014-03-19 08:31
ahutwgs 发表于 2014-03-18 10:38
我也是这样认为,只有核心级线程,关键是为什么,首先,idle程序设计的目的是什么? 我认为在Linux中,CPU不 ...

idle肯定需要是内核线程,CPU也可以空闲,通常idle时,会执行halt或根据PM的策略使CPU进入各种空闲状态。
作者: wth0722    时间: 2014-03-19 22:24
pid=0 是 swapper task  這個就是idle用的
作者: ahutwgs    时间: 2014-03-22 11:48
这个我已经知道了,谢谢回复 8# wth0722


   
作者: ahutwgs    时间: 2014-03-22 11:51
当没有TASK_RUNING的进程的时候,就会调用idle进程,所以CPU是不会空闲的,因为空闲的时候就执行idle进程,前面一个同志说到idle可以理解为内核本身,这个说法很精辟,我很同意这个说法。回复 7# humjb_1983


   
作者: studying_linux    时间: 2014-03-24 21:01
回复 10# ahutwgs


    不知道linux中是否引入了tickless,我了解得其他嵌入式os里是引入了tickless的实现,即CPU在idle时不应该空转,而是应该进入C0状态睡眠.




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2