【问题标题】:linux c: what's the common use case of "sched_setaffinity" function? I don't find it usefullinux c:“sched_setaffinity”函数的常见用例是什么?我觉得没用
【发布时间】:2017-09-22 10:55:49
【问题描述】:

操作系统能够确定如何将不同的进程/线程安排到不同的 cpu 内核上,操作系统调度程序可以很好地完成工作。那么我们什么时候真的需要为进程调用 sched_setafficity() 或 pthread 的 pthread_setaffinity_np() 之类的函数呢?

它似乎并不能显着提高任何性能,如果可以的话,我想我们需要重新编写linux进程调度程序吧?

只是想知道我们什么时候需要在我的应用程序中调用这些函数? 谢谢。

【问题讨论】:

  • 你可以只为你的线程使用一个cpu,没有任务调度。为此,首先将 isocpu 参数放入 grub 文件,然后 Linux 操作系统不使用 CPU,然后使用 sched_setafficity(),您将拥有一个私有 CPU

标签: c linux multithreading process affinity


【解决方案1】:

在一些与 DSP(数字信号处理)相关的计算密集型实时处理中非常有用。 假设一个实时 DSP 相关进程 PROCESS0 正在核心 CPU0 上运行。由于某些调度算法需要 CPU0 抢占,这样 process0 必须在另一个 CPU 上运行。这种实时进程的切换是一种开销。因此有亲和力。我们向内核指示 process0 应该在 CPU0 上运行。

【讨论】:

    猜你喜欢
    • 2011-11-24
    • 1970-01-01
    • 1970-01-01
    • 2011-07-16
    • 1970-01-01
    • 2020-11-27
    • 1970-01-01
    • 2011-05-29
    • 1970-01-01
    相关资源
    最近更新 更多