【问题标题】:What's the purpose of `on_rq` field in `task_struct`?`task_struct` 中的 `on_rq` 字段的用途是什么?
【发布时间】:2015-06-23 16:47:20
【问题描述】:

我现在正在阅读Linux Kernel的try_to_wake_up()函数的源码。这个函数做了很多,包括:return p->on_rq == TASK_ON_RQ_QUEUED

那么,task_structon_rq 字段的实际用途是什么。

顺便说一句,是否有一些手册或阅读材料来介绍task_struct 中的所有字段?我认为对这些领域的全面了解有助于理清Linux的进程调度机制。

【问题讨论】:

  • 有些资源记录了 linux 调度,但据我所知,它们不是最新的。 task_struct 更改并添加到其中,并非所有字段都与调度相关

标签: linux linux-kernel scheduling


【解决方案1】:

Linux 支持系统中每个 CPU 的单独运行队列。 Task 或 task_struct 可能在运行队列中。还有task_struct 可以迁移beatween cpu的。 p->on_rq 表示 task_struct 正在两个运行队列之间迁移。 如果 p->on_rq == TASK_ON_RQ_MIGRATING 任务正在迁移并且 其他具有此任务的调度程序无法工作,它应该忙于等待。 在它设置为 TASK_ON_RQ_QUEUED 之后。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-06
    • 2010-10-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-03
    相关资源
    最近更新 更多