我一直在尝试开发一个使用图论来建模系统的应用程序(参见[1])基本上,可以使用图论来建模可运行的程序,以便找出它们的分区(分组可运行)和可用于将它们映射到核心。
为了实现这一目标,我们需要许多信息。由于我不知道linux(特别是我们的Raspbian)操作系统如何详细安排所有内容,而且我有兴趣了解我们的算法如何提高核心利用率,我想我可以获取进程的信息并尝试自己建模
为此目的,我们需要:
我想我可以在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"