Re: [理工] [ OS ]fork
※ 引述《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
→
01/21 21:51, , 1F
01/21 21:51, 1F
推
01/21 21:52, , 2F
01/21 21:52, 2F
推
01/21 22:04, , 3F
01/21 22:04, 3F
推
01/21 22:24, , 4F
01/21 22:24, 4F
討論串 (同標題文章)