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