Linux进程和线程调度

时间:2012-10-25 10:02:56

标签: linux multithreading process scheduling

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

据我所知,Linux调度程序在调度时不会以不同方式处理线程和进程。线程就像共享公共资源的进程一样。

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

谢谢!

1 个答案:

答案 0 :(得分:4)

您实际上可以使用一个简单的程序来测试它,但是可以从各种手册页中进行测试:

sched_setaffinity

  

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

pthread_create

  

新线程继承调用线程的功能集的副本   (看到          capabilities(7))和CPU affinity mask(参见sched_setaffinity(2))。

sched_setscheduler

  

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