蓝盟it小贴士,来喽!
只有处于这种状态的进程才能在CPU上运行。同时,在可执行状态下可以有多个进程。这些进程的task_struct结构放置在相应CPU的可执行队列中(一个进程只能出现在最大CPU的可执行队列中)。流程计划者的任务是从每个CPU的可执行队列中选择一个流程,以在该CPU上运行。
许多操作系统教科书将在CPU上运行的进程定义为RUNNING状态,将可执行但尚未安排执行的进程定义为READY状态。在Linux上,这两个状态统一为TASK_RUNNING状态。
在退出过程中,该过程处于TASK_DEAD状态。在此退出过程中,该过程保留的所有资源都将被回收,除了task_struct结构(和某些资源)。因此,该进程只有一个空的壳task_struct壳,因此称为僵尸。之所以要维护task_struct是因为task_struct包含进程退出代码和一些统计信息。而且您的主要流程可能会担心此信息。例如,在外壳中,变量$?它包含最后一个出现的前台进程的退出代码,并且该退出代码通常用作if语句的判断条件。