方括号中的进程的调度方式是否与其他进程相同?

方括号中的进程的调度方式是否与其他进程相同?

ps(1),使用该-f选项,将输出方括号中没有关联命令行的进程,如下所示:

UID        PID  PPID  C STIME TTY          TIME CMD
root         1     0  0 Aug28 ?        00:07:42 /sbin/init
root         2     0  0 Aug28 ?        00:00:01 [kthreadd]
root         3     2  0 Aug28 ?        00:00:00 [rcu_gp]
root         4     2  0 Aug28 ?        00:00:00 [rcu_par_gp]
root         6     2  0 Aug28 ?        00:00:00 [kworker/0:0H-kblockd]
root         8     2  0 Aug28 ?        00:00:00 [mm_percpu_wq]
root         9     2  0 Aug28 ?        00:02:14 [ksoftirqd/0]
root        10     2  0 Aug28 ?        00:05:33 [rcu_preempt]
root        11     2  0 Aug28 ?        00:01:36 [rcuc/0]
root        12     2  0 Aug28 ?        00:00:00 [rcub/0]
root        13     2  0 Aug28 ?        00:00:07 [migration/0]
root        14     2  0 Aug28 ?        00:00:00 [idle_inject/0]
root        16     2  0 Aug28 ?        00:00:00 [cpuhp/0]
root        17     2  0 Aug28 ?        00:00:00 [cpuhp/1]
root        18     2  0 Aug28 ?        00:00:00 [idle_inject/1]
root        19     2  0 Aug28 ?        00:00:05 [migration/1]
root        20     2  0 Aug28 ?        00:00:55 [rcuc/1]

这些进程是否像其他进程一样被安排?

答案1

在 Linux 下,对于每个进程,在以 pid 命名的目录中ps处理top内核提供的可用信息。/proc这包括两个文件,comm以及cmdlinecomm是进程的命令名称,cmdline是进程的命令行,IE它所提供的参数(包括它自己的“名称”)。pstop使用方括号来区分两者:如果进程有命令行,则该args字段(也称为CMD)输出该命令行;否则它输出命令名称,并用方括号括起来。

这在联机ps帮助页, 为了args

有时进程参数不可用;发生这种情况时,ps将在括号中打印可执行文件名称。

没有进程参数的进程包括没有进程构造的进程任何命令行(甚至不是argv[0]),例如内核线程和丢失命令行的进程,IE失效进程,也称为僵尸进程(可通过后缀识别<defunct>)。

这些都不会改变调度属性:所有进程都根据其状态、优先级等以相同的方式进行调度。

相关内容