作者lemonsheep (軒昂)
看板Grad-ProbAsk
標題Re: [理工] [OS] 99交大資訊聯招 fork() 的問題?
時間Wed Dec 23 16:26:59 2015
※ 引述《compulsory (生既無歡 死又何懼?)》之銘言:
: int main()
: {
: for(i=0;i<3;i++)
: if(fork()==0) [1]
: {
: fork(); [2]
: fork(); [3]
: fork(); [4]
: }
: }
: i=0時
: 父
: ↓
: 子 --------------[1]
: ↓
: 子 --------------[2]
: ↓\
: 子 子-----------[3]
: / ↓ ↓\
: 子 子 子 子-------[4]
: 最開始的parent可以創造出8個child
: i=1的時候進入此loop的process有9個
: 所以可以造出9*8個
: i=2的時候進入此loop的process有9+9*8個
: 所以可以造出(9+9*8)*8
: 以上全部再加起來就是了
: 我的一點看法 有錯請指正
看了之後還是不大了解
請問一下那個樹狀圖是怎麼推出來的 感謝!
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.120.228.196
※ 文章網址: https://www.ptt.cc/bbs/Grad-ProbAsk/M.1450859222.A.BE1.html
推 howard396501: 這樣說好了,父生出if這個子,if這個子就是下面三個 12/23 17:05
→ howard396501: 子的父,以此類推,上面的樹狀圖好像有錯,[2]已經 12/23 17:06
→ howard396501: 生一個子,所以[3]右邊的子應該是從[1]出來 12/23 17:07
→ howard396501: [4]兩側的子應該分別從[1]和[2]再生出來 12/23 17:08
→ lemonsheep: 感謝 所以child是會從parent 在code裡面呼叫他的地方 12/23 18:14
→ lemonsheep: 接著執行下去嗎 12/23 18:14
推 kev72806: 沒有錯! 12/23 18:33
推 howard396501: Yes 12/24 02:05