3 回答

TA貢獻2037條經(jīng)驗 獲得超6個贊
fork
exec
fork
fork
fork
exec
fork
exec
find
find
fork
exec
fork
fork
, exec
wait
fork
fork
fork
exec
exec
是fork
exec
execl
, execle
, execve
exec
fork/exec
bash
ls
+--------+
| pid=7 |
| ppid=4 |
| bash |
+--------+
|
| calls fork
V
+--------+ +--------+
| pid=7 | forks | pid=22 |
| ppid=4 | ----------> | ppid=7 |
| bash | | bash |
+--------+ +--------+
| |
| waits for pid 22 | calls exec to run ls
| V
| +--------+
| | pid=22 |
| | ppid=7 |
| | ls |
V +--------+
+--------+ |
| pid=7 | | exits
| ppid=4 | <---------------+
| bash |
+--------+
|
| continues

TA貢獻1806條經(jīng)驗 獲得超8個贊
fork()
/exec()
CreateProcess()
A 程序
是保存在磁盤上常規(guī)文件中的指令和數(shù)據(jù)的集合。(來自1.1.2程序、進程和線程)
.
為了運行程序,首先要求內(nèi)核創(chuàng)建一個新的 加工過程,這是一個程序執(zhí)行的環(huán)境。(也來自1.1.2程序、進程和線程)
.
如果不完全理解進程和程序之間的區(qū)別,就不可能理解EXEC或FRACK系統(tǒng)調(diào)用。如果這些術(shù)語對您來說是新的,您可能想要返回并檢查第1.1.2節(jié)。如果您現(xiàn)在準備繼續(xù),我們將在一句話中總結(jié)其區(qū)別:流程是一個由指令、用戶數(shù)據(jù)和系統(tǒng)數(shù)據(jù)段以及在運行時獲得的許多其他資源組成的執(zhí)行環(huán)境,而程序是包含用于初始化進程的指令和用戶數(shù)據(jù)段的指令和數(shù)據(jù)的文件。(來自5.3 exec
系統(tǒng)呼叫)
fork()
exec()
fork()
創(chuàng)建當前進程的副本。 exec()
將當前進程中的程序替換為另一個程序。
- 3 回答
- 0 關(guān)注
- 448 瀏覽
添加回答
舉報