C++进程
C++進程
- 進程創建
- .fork、vfork、clone
- fork()函數
- vfork()函數
- clone()函數
- 進程切換
- 特殊進程
進程創建
.fork、vfork、clone
三個函數分別調用了sys_fork、sys_vfork、sys_clone,最終都調用了do_fork函數
fork()函數
1.傳統的fork()系統調用在Linux中是用clone()實現的,其中clone()的flags參數指定為SIGCHLD信號及所有清0的clone標志
2.創建的子進程復制了父進程的資源,使用copy-on-write技術,子進程與父進程使用相同的物理頁,只有子進程視圖寫一個物理頁時,才copy這個物理頁到一個新的物理頁,子進程使用新的物理頁,與父進程的內存地址分開,開始獨立運行(fork)
vfork()函數
1.vfork()系統調用在Linux中也是用clone()實現的,其中clone()的參數flags指定為SIGCHLD信號和CLONE_VM和CLONE_VFORK標志,clone
總結
- 上一篇: 民生银行信用卡逾期几天会有不良记录
- 下一篇: 中国航天员大队有多厉害?