作者ybite (小犬)
看板Grad-ProbAsk
標題Re: [理工] [ OS ]fork
時間Fri Jan 21 21:43:25 2011
※ 引述《jameschou (DOG)》之銘言:
: ※ 引述《haha3 (54321)》之銘言:
: main() <= 1個
: 這行if( fork()==0 ) 的fork 1個
: 然後分成
: 父 子
: {}內不做 做{}內:
: 然後最下面的 第一個fork()又分裂成兩個行程
: fork(); / \
: 第二個:fork() fork()
: =>父: 1個 / \ / \
: 這四個再分別做最下面的fork()
: => 子: 1+2+4 = 7個
: 全部就是最上面2個加上父1個加上子7個 => 共10個
: 不確定對不對
: 不過看起來好像有點道理@@
想了一下,跑了一下程式,應該是對的。
先標上行號:
void main() {
1 if( fork() == 0 ) {
2 fork();
3 fork();
}
4 fork();
}
然後這是我的圖解想法,假設A是最初的main process:
A
1的fork() /
↘
/
B
2的fork() ∣
/ ↘
∣
B C
3的fork() ∣
/ ↘ / ↘
A
B D C E
4的fork() /
↘ /↘ /↘ /↘ /↘
A
F B G D H C J E K
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 122.127.176.61
→ skill91002:y大真用心 七彩繽紛啊!! 01/21 21:51
推 christianSK:跟我想的一樣! 有顏色有推XD 01/21 21:52
推 zelkova:紅色紫色藍色灰色~ 綠色白色黑色黃色~ 01/21 22:04
推 skill91002:你的我的他的她的~ 大的小的圓的扁的~ 01/21 22:24