2017-02-05 4 views
-1
for(i=0;i<5;i++) 
for(i=0;i<5;i++) 
fork(); 

上記のコードで作成される子プロセスの数はいくつですか?作成される子プロセスの数はいくつですか?


私の試み:

を私が最初に内側のループを解決し、そして31は、子プロセスと1つの親プロセスである、合計32個のプロセスを得ました。

次に、5回ループする外側ループのために、31 * 5 = 155個の子プロセスを生成しました。


私はこの権利を得ていますか?状況のような種類作成したプロセスの合計がないために

+0

なぜこれをやっていますか? – byxor

答えて

0
for(int i=0; i<n; i++) 
    fork(); 

n時間によって呼び出されます2^n - 1fork()として常にあります。

このダブル for-loopのために
for(int i=0; i<n; i++) 
for(int j=0; j<n; j++) 
    fork(); 

fork()n^2倍に呼び出されます。したがって、作成したプロセスのノー合計となり、

2^(n^2) - 1 

何な質問のために重要なのは時間の無いあなたfork()を計算することです呼び出される。

ケースn=5の場合、子プロセスの合計数は2^25 - 1になります。

関連する問題