亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区
Chinaunix
標(biāo)題:
wait()疑問?
[打印本頁]
作者:
_nosay
時(shí)間:
2018-07-28 13:33
標(biāo)題:
wait()疑問?
本帖最后由 _nosay 于 2018-07-28 13:36 編輯
if ((pid = fork()) == 0) { // 1
exit(0); // 2
}
waitpid(pid, NULL, 0); // 3
假設(shè)執(zhí)行順序是1->2->3,由于2執(zhí)行后,不一定馬上就切換到父進(jìn)程執(zhí)行3,如果這段時(shí)間里,子進(jìn)程的進(jìn)程號被另外一個(gè)死循環(huán)的進(jìn)程復(fù)用了,那3不就得一直等待了?
作者:
amarant
時(shí)間:
2019-03-26 13:29
很有意思的話題,lz 很善于思考呀。想了一想:
1. pid 是單調(diào)遞增的,要用完 32 bit 的 pid ,需要的時(shí)間太長了。
2. exit 調(diào)用后,并不會馬上回收 task struct。所以 pid 也不會被回收。需要等待 wait 完成后, task struct 才會被回收?梢钥 kernel 中的這兩個(gè)函數(shù): do_exit() 和 do_wait() --> wait_task_zombie() --> release_task()
具體邏輯我沒仔細(xì)閱讀,根據(jù)教科書上“僵尸進(jìn)程”內(nèi)容,和大概掃了一眼代碼。邏輯基本是這樣的。LZ 可以仔細(xì)閱讀這些函數(shù),理順了邏輯再分享出來給大伙
作者:
_nosay
時(shí)間:
2019-04-30 15:35
回復(fù)
2#
amarant
好久沒上論壇了,感謝指點(diǎn)
作者:
aweii
時(shí)間:
2021-05-03 18:04
2樓正解,release_task->__exit_signal->__unhash_process->detach_pid
作者:
aweii
時(shí)間:
2021-05-03 18:05
進(jìn)程退出后不會消失無蹤,還有等“收尸”的
歡迎光臨 Chinaunix (http://www.72891.cn/)
Powered by Discuz! X3.2