当我们创建一个新的进程时,它的优先级是在linux内核的哪个位置分配的?

当我们创建一个新的进程时,它的优先级是在linux内核的哪个位置分配的?

我使用的是Linux 4.19.2 https://elixir.bootlin.com/linux/v4.19.2/ident/

我弄清楚了称为的结构任务结构其中包含进程控制块中的所有信息。当我们创建一个新进程时,叉()函数被调用,而函数又调用类似的函数_do_fork()复制进程()为其中的字段提供值任务结构

但是,我找不到新进程的优先级在哪里。 task_struct结构中用于优先级的字段名称是普里奥。当一个进程启动时,它从哪里获得它的值?

答案1

我尝试从这个链接中找出答案https://elixir.bootlin.com/linux/v4.19.2/ident/

这提供了 Linux 内核交叉引用,我可以阅读。我发现要分叉一个新进程,该函数_do_fork()来电复制进程()它又调用一个名为的函数sched_fork()

这是使用函数初始化进程优先级的地方正常优先级()

相关内容