回答編集履歴
1
プログラムのコメントを直した
answer
CHANGED
@@ -1,5 +1,4 @@
|
|
1
|
-
試しに、Chromeを起動しておき、コンソールで、``` ps ax | grep chrome | wc -l ``` とタイプして、chromeプロセス
|
1
|
+
試しに、Chromeを起動しておき、コンソールで、``` ps ax | grep chrome | wc -l ``` とタイプして、chromeプロセス数の増減を見てみました。新しくタブを開き、どこかページを表示するとchromeプロセスが増えるので、**ひとつのタブを、ひとつのchromeプロセスが担当**していると推測できます。
|
2
|
-
**ひとつのタブを、ひとつのchromeプロセスが担当**していると推測できます。
|
3
2
|
|
4
3
|
さて、Cで書いたソースコードをコンパイルすると、実行形式のファイル、即ちプログラムができます。プログラムは「一連の命令列」がファイルになったものですね。でも、「プログラム=プロセスそのもの」とは言えません。プログラムが「**動作できる・動作している状態」がプロセス**です。
|
5
4
|
|
@@ -23,11 +22,12 @@
|
|
23
22
|
/* ここまで親プロセスだけが走ってきて */
|
24
23
|
id = fork(); /* ここで親子に分かれる */
|
25
24
|
if (id == 0) {
|
26
|
-
/* こちらを走るのは子プロセス
|
25
|
+
/* こちらを走るのは子プロセス。新たなプログラムに変身する事が多い
|
27
|
-
* chromeは
|
26
|
+
* chromeはexecしないかも
|
27
|
+
*/
|
28
28
|
execve(新しいプログラム名, コマンドライン引数の配列, 環境変数の配列);
|
29
29
|
} else {
|
30
|
-
/* こちらを走るのは親
|
30
|
+
/* こちらを走るのは親プロセス */
|
31
31
|
/* wait() で子プロセスの終了を待つのは、ひとつのパターン */
|
32
32
|
}
|
33
33
|
```
|