gpt4 book ai didi

linux - 如何计算内核中的活跃用户数

转载 作者:IT王子 更新时间:2023-10-29 00:15:11 28 4
gpt4 key购买 nike

我们使用的是内核版本 2.4-20,我们需要计算内核模式下的活跃用户数。目标是更改调度程序,所以我们在 sched.c 中,修改 schedule() 函数。

我们做的是统计list_for_each宏中的用户。

list_for_each(tmp, &runqueue_head) {
p = list_entry(tmp, struct task_struct, run_list);
if (can_schedule(p, this_cpu)) {
if (unique(p->uid)) add_new_user(p->uid);
int weight = goodness(p, this_cpu, prev->active_mm);
if (weight > c)
c = weight, next = p;
}
}

这基本上是将唯一用户添加到列表中。但是,我们得到随机结果。有解决这个问题的具体方法吗?

谢谢。

最佳答案

您可能想尝试计算 for_each_task 宏中的用户数。这会导致对具有因 I/O 或任何其他原因而被阻止的任务的用户进行计数。这应该会提供更好的结果,因为如果您使用运行队列,您不能保证能够计算运行交互式进程的用户数。

关于linux - 如何计算内核中的活跃用户数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10623781/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com