是否有办法知道哪个进程在QNX的哪个核心上运行



我的系统使用QNX6.5,它有4个cpu内核。但我不知道每个内核中运行的是哪个进程,以及所有进程。有办法知道细节吗。提前感谢

进程通常运行多个线程(至少一个-主线程);因此线程实际运行单元,而不是进程(内核亲和性是每个线程可设置的)。因此,您需要知道哪个内核线程正在运行。

有"%l"format选项,告诉你哪个CPU线程正在执行:

# pidin -F "%b %50h %i %l" -p random 
tid thread name                                         cpu
1 1                                                     0
Runmask     : 0x0000007f
Inherit Mask: 0x0000007f
2 Timer Thread                                          1
Runmask     : 0x0000007f
Inherit Mask: 0x0000007f
3 3                                                     6
Runmask     : 0x0000007f
Inherit Mask: 0x0000007f

上面我们打印线程id,线程名称,run/inherit cpu掩码,右上列是当前cpu线程正在运行,进程名为"random"

在QNX中分析进程调度细节的最佳工具是"系统分析工具包",它使用QNX内核的工具特性来提供每个调度事件和消息传递的日志。

对于QNX 6.5,文档可以在这里找到:http://www.qnx.com/developers/docs/6.5.0SP1.update/index.html#./com.qnx.doc.instr_en_instr/about.html

使用以下命令获取详细信息。pidin rmasks

将给出"pid, tid和name"每条线。通过runmask值,我们可以确定它在哪个内核中运行。对我来说,线程细节也很好。

相关内容

  • 没有找到相关文章

最新更新