【问题标题】:Linux Kernel Changing Default CPU SchedulerLinux 内核更改默认 CPU 调度程序
【发布时间】:2014-05-27 18:51:24
【问题描述】:

我正在尝试破解 Linux 内核,我想知道。如何将默认的 Linux 进程调度程序更改为另一个?我可以将每个进程都设置为实时进程吗?

【问题讨论】:

  • 查看答案以更改调度程序:stackoverflow.com/questions/1009577/…
  • @brokenfoot I/O 调度器和 CPU 调度器一样吗?我相信他们是不同的
  • 你想改变一个进程的调度策略还是完全不同的调度算法?默认调度程序是 CFS。是的,您可以将每个进程设置为实时进程,您可以通过一些更改在内核中强制执行它。
  • @Sasi 我想更改调度策略。我希望每个进程都使用 Round Robin 或 FIFO。我试图更改“sched.c”中的“__sched_setschedueler()”函数,但没有成功。
  • 看看 sched_fork。它具有优先级信息。如果需要,请更改它,否则请使用默认值。在 sched_fork p->prio = current->normal_prio;还要检查不太可能(p->sched_reset_on_fork)的情况

标签: linux linux-kernel kernel scheduler schedule


【解决方案1】:

这篇文章有点过时了,但无论如何我希望这可以帮助...... 我遇到了类似的问题,我对 Linux Kernel 进行了破解,以使 RR 成为默认的 CPU 调度程序。最后,hack 基本上改变了 shed_fork 函数,正如之前的 cmets 所指出的那样。这是我为实现它而编写的代码:https://aelseb.wordpress.com/2016/01/06/change-linux-cpu-default-scheduler/

【讨论】:

  • 嗨,欢迎来到 Stack Overflow。请不要发布链接作为答案,如果更改或离线,它将变得无用。相反,请使用信息和代码来构建您的答案,并将链接仅用作参考。谢谢。
  • 基本上更改必须在 kernel/sched/core.c 中的 sched_fork 函数中完成。您必须相应地修改 p->policy 属性(例如使用 SCHED_RR)和优先级。此更改会将所有进程置于选定的调度域中。您还可以通过修改优先级属性来更改默认进程优先级。
猜你喜欢
  • 2011-09-11
  • 2013-10-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-07-02
  • 1970-01-01
相关资源
最近更新 更多