也就是说在 sched_core_fork 和 sched_post_fork 之间, 子进程可能已经被调度过?
时间: 2024-02-06 11:04:08 浏览: 78
Linux常见系统调用列表介绍
在 `sched_core_fork` 和 `sched_post_fork` 之间,子进程并不会被调度。具体来说,`sched_core_fork` 函数是用于为子进程创建新的调度实体,并对其进行初始化,它会将子进程的调度实体加入到调度器的任务队列中,但并不会将其加入到对应的运行队列中,因此子进程不会被调度执行。
而 `sched_post_fork` 函数是在子进程 fork 完成后被调用的,它会为子进程重新设置调度策略和优先级等信息,并将其加入到对应的运行队列中,以便可以被调度执行。因此,在 `sched_post_fork` 函数被调用之前,子进程并不会被调度。
需要注意的是,进程的调度是由内核的调度器负责的,调度器会根据进程的优先级、调度策略等信息来进行调度。当进程被调度执行时,调度器会将其从任务队列中取出,并加入到对应的运行队列中,等待被 CPU 执行。因此,在进程被加入到运行队列之前,它并不会被调度执行。
阅读全文