【发布时间】:2010-10-30 16:06:04
【问题描述】:
首先,我承认我会问的所有问题都是关于我们的作业,但我向你保证,我不会在不努力至少两个小时的情况下问。
说明:我们应该在task_struct数据类型中添加一个名为max_cpu_percent的字段,并操纵进程调度算法,使进程不能使用更高百分比的cpu。
例如,如果我将进程 firefox 的 max_cpu_percent 字段设置为 20,则 firefox 将无法使用超过 20% 的 cpu。
我们编写了一个系统调用来设置 max_cpu_percent 字段。现在我们需要查看系统调用是否有效,但我们无法从用户空间程序中获取 max_cpu_percent 字段的值。 我们可以这样做吗?以及如何?
我们尝试了 proc/pid/ 等,我们可以使用这个工具获取值吗?
顺便说一句,如果我们无法摆脱其他问题,我们可能会在此处添加其他问题
谢谢大家
解决方案:
原因是我们没有修改将输出写入 proc 查询的代码块。 在 array.c 文件 (fs/proc/array.c) 中有一些方法,我们修改了函数,以便也打印新添加的字段值。内核现在正在编译,我们将在大约一个小时后看到结果 =)
成功了……
【问题讨论】:
-
您说您尝试使用 /proc/pid。你发现了什么?
-
一个字段列表,但不是 cpu_max_percent,我们从列表中尝试了一些有意义的东西,例如 /proc/pid/attr,但这也没有帮助。我仍在阅读 /proc 但还没有找到。