1
do_fork()是否免於搶佔?換句話說,在獲得將新任務結構插入就緒隊列之前,父進程是否可以分配一個新的任務結構並獲取先佔權?內核:執行do_fork()時可以搶佔嗎?
do_fork()是否免於搶佔?換句話說,在獲得將新任務結構插入就緒隊列之前,父進程是否可以分配一個新的任務結構並獲取先佔權?內核:執行do_fork()時可以搶佔嗎?
這是不安全的,從搶先。
do_fork
調用copy_process
,後者又執行初始化任務的sched_fork
。之後,do_fork
調用wake_up_new_task
以將其放到運行隊列中。
這是分開的,以便能夠在計劃之前終止或終止進程。
sched_fork
禁用搶佔,但在其完成工作後啓用它,使內核在調用wake_up_new_task
並將其放入運行隊列之前搶先成爲可能。
這是基於我對2.6內核的瞭解。