代码之家  ›  专栏  ›  技术社区  ›  nathan

TASK_运行进程状态

  •  0
  • nathan  · 技术社区  · 7 年前

    我正在读“Linux内核开发”。它有“TASK_RUNNING”的定义

    “TASK_RUNNING–进程是可运行的;它当前正在运行或在运行队列上等待运行 “。我的问题是,为什么我们不为“当前正在运行”和“在运行队列上等待运行”设置两个单独的状态。例如TASK\u running和TASK\u READYTORUN。

    1) 因为当我第一次看到“TASK_RUNNING”这个词时,我认为它只是指一个正在运行的进程状态 2) 更精确的定义可以避免许多麻烦

    那么,我们有充分的理由不这样做吗??

    1 回复  |  直到 7 年前
        1
  •  1
  •   Tsyvarev    7 年前

    过程是 可运行 .

    此外,从该领域用户的角度来看,状态分离没有任何意义。

    由于该状态的用户不与调度器交互,因此不需要知道进程是否已调度 无用的 :在您获得该知识后,调度程序可能会立即更改该属性,因此您的知识无效。


    至于名称 TASK_RUNNING ,只有Linux开发人员知道为什么选择它。这可能是历史原因,也可能是故意的:“想象一下这个过程,就好像它是 跑步 ."