2010-10-30 107 views
0

首先,我承认我会问的所有事情都是关于我们的作业,但我向你保证,如果不挣扎至少两个小时,我不会问。Linux内核进程管理

描述:我们应该为task_struct数据类型添加一个名为max_cpu_percent的字段并操作进程调度算法,以便进程不能使用更高比例的cpu。

例如,如果我将max_cpu_percent字段设置为20为firefox进程,firefox将无法使用超过20%的cpu。

我们写了一个系统调用来设置max_cpu_percent字段。现在我们需要查看系统调用是否有效,但是我们无法从用户间隔程序中获取max_cpu_percent字段的值。 我们可以这样做吗?如何?

我们试过proc/pid/etc我们可以使用这个util得到值吗?

顺便说一句,这里我们可以添加更多的问题,如果我们不能摆脱别的东西

感谢所有

解决方案:

的原因是,我们没有修改代码块的写入输出到proc查询。 在array.c文件(fs/proc/array.c)中有一些方法,我们修改了函数,以便也打印新添加的字段值。内核现正整理约一小时后,我们会看到结果=)

它的工作...

+0

你说你尝试使用/ proc/pid。你发现了什么? – Khaled 2010-10-30 16:11:14

+0

字段的列表,但不是cpu_max_percent,我们尝试了列表中的某些内容,比如/ proc/pid/attr,但这并没有帮助。我仍在阅读/ proc,但还找不到。 – mehmet6parmak 2010-10-30 16:17:42

回答

0

(如果你简单地扩展getrlimit/setrlimit,那么你会完事了......)

已经有一个机制,其中task_struct的相似部分被暴露:/proc/$PID/stat(和/proc/$PID/$TID/stat)。寻找功能proc_tgid_statproc_tid_stat。您可以将新字段添加到这些文件的末尾。