我们使用内核版本2.4-20,我们需要在内核模式下计算活动用户的数量。 目标是改变调度器,所以我们在sched.c中修改schedule()函数。
我们所做的是统计list_for_eachmacros中的用户。
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; } }
这基本上是将唯一的用户添加到列表中。 但是,我们得到随机结果。 有没有解决这个问题的具体方法?
谢谢。
有没有一种方法来获取电池信息(状态,插入等),而无需读取Linux上的proc / sys文件?
什么是hrtick_clear(rq); 在Linux调度?
监视内核registry更改
来自task_struct的完整进程名称
在Linux中,属于内核数据段的物理内存页是否可交换?
在Linux中实时调度
糟糕:内核访问不良区域,sig:11 – “swapper” – 查杀中断处理程序
开发没有信息的驱动程序
您可能要尝试对for_each_task宏中的用户进行计数。 这会导致计数由于I / O或任何其他原因而导致任务被阻塞的用户。 这应该会提供更好的结果,因为如果您使用运行队列,则无法保证能够对运行交互式进程的用户进行计数。
这会工作吗? 谁| awk'{print $ 1}'| 排序
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。