Chinaunix

标题: 处于“就绪队列”中的进程,是不是处于“运行态”? [打印本页]

作者: liklstar    时间: 2014-05-08 17:36
标题: 处于“就绪队列”中的进程,是不是处于“运行态”?
本帖最后由 liklstar 于 2014-05-08 17:37 编辑

处于“就绪队列”中的进程,是不是处于“运行态”?也就是说:在“就绪队列”中的进程是不是可以认为是在运行着?
作者: 瀚海书香    时间: 2014-05-09 09:33
回复 1# liklstar
处于“就绪队列”中的进程,是不是处于“运行态”?也就是说:在“就绪队列”中的进程是不是可以认为是在运行着?


(1)就绪队列中的进程,并不一定在运行,有可能因为系统繁忙,没有空闲的CPU可用

(2)但是Linux在设计时,并没有区分“就绪状态”和“正在运行状态”,而是把这两种状态统一为TASK_RUNNING状态。

   
作者: humjb_1983    时间: 2014-05-10 12:08
呵呵,同意,就是RUNNING状态,但时间运行需要被调度到才行。
作者: mysky0407    时间: 2014-07-31 11:01
LINUX里面TASK_RUNNING 包括 平常OS书籍里面提到的 运行 和 就绪 两种状态。
作者: chenyu105    时间: 2014-07-31 12:02
我同意楼上各位的讨论,不过,位于就绪队列里的进程,状态可不一定是R哦。
以前我也这么觉得,就绪队列里的都是R,最近在3.10内核上查一个问题时,发现
处于就绪队列的,还可能是PARK状态,例如一个内核线程刚被创建时,会处于PARK,
如果这个时候被主动抢占, spin_unlock_irqrestore->preempt_enable->preempt_schedule,
则可能以PARK状态挂到就绪队列上





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