[解決済み] OS:プログラムによって生成されるプロセスはいくつですか?
2022-02-27 23:08:20
質問
#include<stdio.h>
#include<unistd.h>
int main()
{
int i;
for(i=0;i<4;i++)
fork();
return 0;
}
私の質問:最初の親プロセスを含めて、プログラムによって作成されたプロセスはいくつですか?
この答えは、1+4=5 、1つの親プロセスと4つの子プロセスだと思うのですが、正しいですか?
サンクス
解決方法は?
for(i=0;i<4;i++)
fork();
このコード片は等価である。
fork();
fork();
fork();
fork();
p0から始まるプロセスがあるとします。プロセスグラフは次のようになります。
<イグ
上の画像が全てを物語っています。最初のfork()が実行されると、新しいプロセスが作成され、3つのfork()が実行されることになります。ここで、親スレッドと子スレッドが存在し、さらに3つのfork()ステートメントを実行します。そこで、子プロセス p1 が p5, p6, p7 を作成し、親プロセスが p2, p3, p4 を作成します。 p2 が生成された後、2回目の fork() を実行した後に生成されたこの子スレッド p2 に対して、さらに2回の fork() を実行する必要があります。 このようにして、親子プロセスが生成されます。
関連
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン