【问题标题】:Linux process and threads schedulingLinux进程和线程调度
【发布时间】:2012-10-25 10:02:55
【问题描述】:

我正在使用 sched.h 进行 linux 调度并遇到一些问题。

据我所知,Linux 调度程序在调度时不会区别对待线程和进程。线程就像共享公共资源的进程。

好的,假设我有 Process-A,它被设置为 CPU core 0 并且 SCHED_FIFO 属性被设置;它将一直运行,直到另一个更高优先级的任务启动。如果 Process-A 创建一个新线程,该线程会继承相同的属性吗? (即使用 SCHED_FIFO 属性绑定到 CPU 0 还是默认?)

谢谢!

【问题讨论】:

    标签: linux multithreading process scheduling


    【解决方案1】:

    您实际上可以使用一个简单的程序进行测试,但可以通过各种手册页进行测试:

    sched_setaffinity:

    通过 fork(2) 创建的子代会继承其父代的 CPU 关联掩码。 关联掩码在 execve(2) 中保留。

    pthread_create:

    新线程继承调用线程能力集的副本 (看 能力(7))和 CPU 亲和性掩码(参见 sched_setaffinity(2))。

    sched_setscheduler:

    子进程继承调度策略和参数 叉子(2)。 调度策略和参数在 execve(2) 中保留。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-01-17
      • 2013-03-14
      • 2012-04-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多