ChinaUnix.net
相关文章推荐:

suse cfs调度介绍

本人想通过修改cfs调度器问题来阻止某一个进程的运行, 内核版本:2.6.24 目前修改代码如下: 649 static struct sched_entity *pick_next_entity(struct cfs_rq *cfs_rq) 650 { 651 struct sched_entity *se = NULL; +++ struct task_struct *tp; 653 if (first_fair(cfs_rq)) { 654 se = __pick_next_entity(cfs_rq); +++ tp = task_of(se); +++ if(tp->comm =...

by donghaitad - 内核源码 - 2013-10-28 21:15:57 阅读(1938) 回复(12)

相关讨论

总结了篇关于cfs调度器的文档 喜欢pdf的可以查看档案~ cfs 调度器 --wxc200 大家好哈, 兄弟最近在学习调度器,有点儿心得,更多得是迷惑,写出心得来与大家分享,贴出迷惑来请大家解答。呵呵    linux自2.6.23后引入了一种新的调度器,叫'Completely Fair Sched...

by wxc200 - 内核源码 - 2011-01-24 08:41:56 阅读(19355) 回复(17)

Linux® 2.6.23 内核附带了一个模块化调度程序内核和一个被实现为调度模块的完全公平调度程序(Completely Fair Scheduler,cfs)。本文将介绍 cfs 的主要特性和工作原理,并提前预览 2.6.24 版本中的预期变动。® Linux 2.6.23 内核的调度程序为其他调度模块并行处理内核打好了基础(这里所说的 “模块化” 并不意味着将调度程序分解为若干可加载的模块,而是指代码本身模块化)。有关调度程序工作原理的更多细节,请参考 ...

by nqdgj2007 - 内核源码 - 2008-12-31 19:26:52 阅读(4594) 回复(4)

本帖最后由 donghaitad 于 2013-11-02 20:32 编辑 本人想通过修改cfs调度器问题来阻止某一个进程的运行。 内核版本:2.6.24 通过与大家的讨论和调试,目前修改代码如下: 其基本想法是:修改从就绪队列中选择下一个进程。 static struct sched_entity *pick_next_entity(struct cfs_rq *cfs_rq) { struct sched_entity *se = NULL; struct task_struct *tp; if (first_fair(cfs_rq)) { se = __pick_next_entity...

by donghaitad - 内核源码 - 2013-11-21 09:02:07 阅读(2228) 回复(16)

static struct sched_entity *pick_next_entity(struct cfs_rq *cfs_rq) { struct sched_entity *se = NULL; if (first_fair(cfs_rq)) { se = __pick_next_entity(cfs_rq); printk("XXXXXXXXX!\n"); set_next_entity(cfs_rq, se); } return se; } 本人仅加了一个printk()函数,单CPU环境下系统就卡住了,但多CPU环境下系统却可以正常运行。 想请大家指教!非常感谢!

by donghaitad - 内核源码 - 2013-11-01 20:38:34 阅读(1143) 回复(5)

cfs进程的出入队列操作是基本function.这里细细地分析下这两个小东西做什么事情. enqueue_task_fair and dequeue_task_fair 是sched_class的两个hook.在诸如唤醒,设置nice level等操作时, 会调用到这两个函数. 唤醒抢占: check_preempt_wakeup:检测被唤醒的进程是否能抢占当前的进程,一旦当前进程满足被抢占的条件,立即置调度标志. tick中断抢占: check_preempt_tick:在时间中断scheduler_tick()里,检测当前runqu...

by wangxingchao201 - Linux文档专区 - 2010-01-24 21:52:02 阅读(938) 回复(0)

RT,他们两都是基于优先级的,至于cfs的公平相对于O1到底在哪里?求指导。

by f22jay - 内核源码 - 2013-09-04 11:09:43 阅读(2729) 回复(19)

近来辅导本科生的操作系统实验课程,勾起了我对linux内核的无限兴趣。 其中有一个实验是要求修改Linux的内核调度算法为随机调度算法,当然不要求性能怎么样,只是作为熟悉调度算法的实验而已。 在2.6.22版本的内核之前(包含2.6.22),Linux主调度算法采用的是O(1)调度算法,这个算法修改成为随机调度算法相对简单,我已经在2.6.22内核上实现了。 大致就在linux/kernel/sched.c中的schedule(void)函数中增加一些代码: asmlinkage ...

by qqingweihao - 内核源码 - 2013-03-27 17:07:00 阅读(1343) 回复(0)

调度 先说一下提纲 1 关于group schedule的文档 2 关于组调度的认识 3 一些与组调度相关的数组结构 4 组调度结构图 5 具体的操作函数 6 后记 1 按照文档的解释,完全公平调度并不仅仅针对单一进程,也应该对组调度。例如有两 个用户wxc1,wxc2,以用户userid来分,调度器分配给两 个组的时间是公平的,wxc1 and wxc2各有50%的CPU,,组内也实现公平调度。 几个宏: CONFIG_GROUP_SCHED :打开组调度 CONFIG_RT_GROUP_SCHED 实时...

by wangxingchao201 - Linux文档专区 - 2010-01-24 21:50:20 阅读(1147) 回复(0)

6)静悄悄地过来,看看这个经常调用的函数,到底做了啥捏? static inline void __update_curr(struct cfs_rq *cfs_rq, struct sched_entity *curr, unsigned long delta_exec) 传进来的执行时间 { unsigned long delta_exec_weighted; schedstat_set(curr->exec_max, max((u64)delta_exec, curr->exec_max)); curr->sum_exec_runtime += delta_exec; 直接加到总运行时间变量里去, schedstat_add(cfs...

by wangxingchao201 - Linux文档专区 - 2010-01-24 21:48:35 阅读(872) 回复(0)

总结了篇关于cfs调度器的文档 喜欢pdf的可以查看档案~ http://linux.chinaunix.net/bbs/attachment.php?aid=229473 帖子最早发布在 http://linux.chinaunix.net/bbs/viewthread.php?tid=1063798 cfs 调度器 --wxc200 大家好哈, 兄弟最近在学习调度器,有点儿心得...

by wangxingchao201 - Linux文档专区 - 2010-01-24 21:47:12 阅读(1142) 回复(0)