在Linux中创建新进程时,它会为其normal_prio
继承其父进程的static_prio
值。这实际发生在哪里?
是在dup_task_struct()
函数还是在copy_process()
函数中完成的?
答案 0 :(得分:1)
它实际上发生在由sched_fork
调用的copy_process中父母的优先权最初会转移到孩子身上
p->prio = current->normal_prio;
其中p是孩子的task_struct
,current
指向父母。
然后normal_prio
被修改为
p->prio = p->normal_prio = __normal_prio(p);
__normal_prio(p)
最终归结为类似
return p->static_prio;
查看我添加的2个链接以了解详情。