获取Linux中进程的详细信息(指令大小,读/写访问权限,内存,核心负载)

时间:2016-12-10 15:21:49

标签: linux process linux-kernel graph-theory

我一直在尝试开发一个使用图论来建模系统的应用程序(参见[1])基本上,可以使用图论来建模可运行的程序,以便找出它们的分区(分组可运行)和可用于将它们映射到核心。

为了实现这一目标,我们需要许多信息。由于我不知道linux(特别是我们的Raspbian)操作系统如何详细安排所有内容,而且我有兴趣了解我们的算法如何提高核心利用率,我想我可以获取进程的信息并尝试自己建模

为此目的,我们需要:

  • 指令大小,CPU运行完成任务的指令数量(非常重要)
  • 进程,物理内存和虚拟内存所需的内存
  • 用于调试进程的核心负载。
  • 读/写访问,与之通信的进程,是读取还是写入访问,它是什么类型的接口,以及读取和/或写入所需的指令大小和内存。

我想我可以在linux中使用'top'命令来提取一些这些信息。它提供核心负载,内存使用,虚拟和物理内存。我还想我应该提一下,我打算使用'taskset'来将进程放到核心来查看它们的信息(参见[2])。

现在第一个问题我是如何有效地获取指令大小,r / w访问以及我上面列出的内容?

第二个问题是否有任何可能的方法来查看进程的runnables,即它运行的简单函数。还有他们的信息和r / w相互访问?这个问题只是找到一种方法来模拟一个过程本身,而不是过程的相互作用?

非常感谢任何帮助,因为它将有助于我们的开源多核平台研究。

非常感谢

[1] http://math.tut.fi/~ruohonen/GT_English.pdf

[2]要将进程放入核心,我使用:

pid = $(pgrep -u root -f $process_name -n)
sudo taskset -pc $core $pid &&
echo "Process $process_name with PID=$pid has been placed on core $core"

0 个答案:

没有答案