0

我的要求是在实时操作系统(比如带有 RT linux 补丁的 ubuntu)场景中,根据可运行线程(但不运行等待 CPU 可用性的线程)的队列长度在 C 程序中进行动态 cpu 屏蔽。例如,我们可以考虑为系统配置了 SCHED_FIFO 策略。

我找不到任何命令来检索处于等待状态、运行状态、可运行状态等的进程数。

任何帮助深表感谢。

命令“PS -T au”将所有“可运行”和“正在运行”线程的状态显示为“R”。

PS -T au

下面是我从上面的命令得到的结果。在这个 ThreadID-16841 中,16842 和 16843 是由主进程 16840 创建的线程。上面创建的所有线程都显示为 R 状态,表示可运行或正在运行。

相反,我想要一个 linux 命令或 C API 来检索处于可运行状态但未运行的进程数。

USER       PID  SPID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND

root       914   914  0.1  1.3 428324 105804 tty7    Rsl+ Oct23   1:27 /usr/lib/xorg/Xorg -core :0 -seat seat0 -auth /var/run/lightdm/root/:0 -nolisten

root       914   925  0.0  1.3 428324 105804 tty7    Ssl+ Oct23   0:04 /usr/lib/xorg/Xorg -core :0 -seat seat0 -auth /var/run/lightdm/root/:0 -nolisten

root      1170  1170  0.0  0.0  23004  1772 tty1     Ss+  Oct23   0:00 /sbin/agetty --noclear tty1 linux

senthil   1979  1979  0.0  0.0  29532  5056 pts/11   Ss   Oct23   0:00 bash

senthil   2032  2032  0.0  0.0  29552  5212 pts/2    Ss   Oct23   0:00 bash

root     16837 16837  0.0  0.0  62092  4132 pts/2    S+   09:37   0:00 sudo ./sigmain

root     16840 16840  0.0  0.0  31108   796 pts/2    Sl+  09:37   0:00 ./sigmain

root     16840 16841 95.9  0.0  31108   796 pts/2    Rl+  09:37   9:01 ./sigmain

root     16840 16842 95.9  0.0  31108   796 pts/2    Rl+  09:37   9:01 ./sigmain

root     16840 16843 95.9  0.0  31108   796 pts/2    Rl+  09:37   9:01 ./sigmain

senthil  17225 17225  0.0  0.0  44432  3364 pts/11   R+   09:46   0:00 ps -T au
4

0 回答 0