我正在使用sched.h进行linux调度,并遇到一些问题。
据我所知,Linux调度程序在调度时不会以不同方式处理线程和进程。线程就像共享公共资源的进程一样。
好吧,假设我有Process-A并且它被设置为CPU核心0并且设置了SCHED_FIFO属性;这将运行,直到另一个更高优先级的任务开始。如果Process-A创建一个新线程,该线程将继承相同的属性吗? (即使用SCHED_FIFO属性绑定到CPU 0还是默认值?)
谢谢!
答案 0 :(得分:4)
您实际上可以使用一个简单的程序来测试它,但是可以从各种手册页中进行测试:
通过fork(2)创建的子级继承其父级的CPU关联掩码。 关联掩码保留在execve(2)中。
新线程继承调用线程的功能集的副本 (看到 capabilities(7))和CPU affinity mask(参见sched_setaffinity(2))。
子进程继承了一个调度策略和参数 叉(2)。 调度策略和参数在execve(2)中保留。