前回との接続——「起動」の正体を見る

前回との接続——「起動」の正体を見る

B-01では、CPU・メモリ・ストレージ・OS・アプリケーションという5つの層の役割を見ました。今回はその中でも、ストレージとメモリの間で何が起きているのかに注目します。アプリを「起動する」とは、具体的に何が起きることなのでしょうか。その答えが、プログラムとプロセスという2つの言葉の違いにあります。

このスライドのポイント

  • B-01で学んだのは、CPU・メモリ・ストレージ・OS・アプリケーションの5層
  • 今回はストレージとメモリの間で起きること=「起動」に注目する
  • 「アプリを起動する」とは具体的に何が起きるのか、を明らかにする

プログラムとプロセスの定義

プログラムとプロセスの定義

まず言葉を定義します。プログラムとは、ストレージに保存された命令の集まり、つまりファイルのことです。プロセスとは、そのプログラムがメモリ上に読み込まれ、CPUで実行されている状態を指します。そして起動とは、プログラムからプロセスを作ることです。B-01で見たとおり、ストレージは保存の棚、メモリは作業台でした。棚に置かれた命令書がプログラム、それを作業台に広げて実際に動かしている状態がプロセスだと考えると分かりやすいです。

このスライドのポイント

  • プログラム=ストレージに保存された命令の集まり(ファイル)
  • プロセス=そのプログラムがメモリ上に読み込まれ、CPUで実行されている状態
  • 起動=プログラムからプロセスを作ること

なぜこの区別が必要か

なぜこの区別が必要か

この区別を知らないと、身近なトラブルが謎のままになります。たとえば、アプリを閉じたはずなのに裏で動き続けている。同じアプリを二重に起動してしまい、設定が競合する。開発中に、前回の開発サーバーがまだ残っていて新しく起動できない。これらはすべて、プログラムとプロセスの関係を知っていれば説明できる現象です。逆に言えば、この関係を押さえるだけで、対処の見当がつくようになります。

このスライドのポイント

  • 知らないと説明できない頻出トラブル

構造——1つのプログラム、複数のプロセス

構造——1つのプログラム、複数のプロセス

構造で見てみましょう。左側に、ストレージ上にあるプログラム。これはファイルなので、基本的に1つです。右側に、メモリ上のプロセス。ここが大事な点で、1つのプログラムから複数のプロセスを作ることができます。両者は起動という矢印でつながっています。プログラムは台本、プロセスはその台本を使って実際に進行している上演だとイメージすると、1つの台本から複数の上演があり得ることも腑に落ちます。

このスライドのポイント

  • 左: プログラム(ストレージ上のファイル・基本は1つ)
  • 右: プロセス(メモリ上・同じプログラムから複数作れる)
  • 両者を「起動」の矢印でつなぐ

処理の流れ——身近な具体例

処理の流れ——身近な具体例

具体例です。ブラウザを2つの窓で開くと、1つのプログラムから2つ以上のプロセスが生まれています。プログラムは1つでも、実行中の状態は複数あり得るわけです。また、開発中に「ポートが使用中です」と言われることがあります。これは、前回のプロセスがまだ生きていることが原因の一つです。ポートそのものの正式な話はカテゴリCで扱いますが、ここでは「終了したつもりのプロセスが残っている」という現象として押さえておいてください。

このスライドのポイント

  • ブラウザを2つの窓で開く=1つのプログラムから2つ以上のプロセス
  • 開発中「ポートが使用中」=前回のプロセスがまだ生きている
  • ポート自体の正式な話はカテゴリCで扱う

技術サンプル——プログラムとプロセスの構成図

技術サンプル——プログラムとプロセスの構成図

サンプルを見ます。種別は構成図で、目的はプログラムとプロセスの関係を図で確認することです。ストレージ上のprogram.appというプログラムから、起動という矢印でメモリ上にプロセス#1とプロセス#2が作られる、という形です。読み方のポイントは2つ。プログラムは1つでもプロセスは複数になり得ること。そして、アプリを閉じるとは、このプロセスを終了させることだという点です。AIへの質問例は「開発サーバーが起動できません。前回のプロセスが残っていないか確認する方法を教えてください」です。

混同しやすい概念——閉じたと終了したは別

混同しやすい概念——閉じたと終了したは別

混同しやすいのは、「ウィンドウを閉じた」ことと「プロセスが終了した」ことです。画面上の窓を閉じても、プロセスが裏で動き続けることがあります。見た目が消えたことと、実行状態が終わったことは、必ずしも一致しません。だからこそ、閉じたはずのアプリがメモリを使い続ける、という現象が起こるのです。窓を閉じる操作と、プロセスを終わらせる操作は、別のものだと覚えておいてください。

このスライドのポイント

  • 「ウィンドウを閉じた」vs「プロセスが終了した」
  • 画面(見た目)が消えても、プロセスは裏で動き続けることがある

バイブコーディングでの確認点

バイブコーディングでの確認点

バイブコーディングでの確認点です。AIに「再起動してください」と言われたとき、何を再起動するのかを確認しましょう。アプリのプロセスなのか、PCそのものなのかで、やることは大きく変わります。曖昧なまま従わず、「再起動する対象は何ですか」と一度聞き返す習慣をつけてください。何を止めて何を作り直すのかが分かっていれば、指示の意味を理解したうえで実行できます。

このスライドのポイント

  • AIに「再起動してください」と言われたら、何を再起動するのかを確認する
  • アプリのプロセスか、PCそのものかで、やることが変わる
  • 曖昧なまま従わない

一問一答とまとめ

一問一答とまとめ

一問一答です。メモリ上で実行中の状態を何と呼ぶでしょうか。……答えは、プロセスです。30秒でまとめます。プログラムは保存された命令、プロセスは実行中の状態、起動はプログラムからプロセスを作ることでした。1つのプログラムから複数のプロセスが生まれ、閉じたつもりでも残ることがある、というのが要点です。次回は、そのメモリと保存先ストレージの性質の違いをさらに掘り下げます。関連資料は「非エンジニアが最初に覚えるべき開発概念30」と「エラー文の読み方」です。

このスライドのポイント

  • 一問一答: メモリ上で実行中の状態を何と呼ぶ? → プロセス
  • 30秒まとめ: プログラム=保存された命令/プロセス=実行中の状態/起動=プログラムからプロセスを作る
  • 次回: メモリとストレージの性質の違いを掘り下げる(B-03)
  • 関連資料: 「非エンジニアが最初に覚えるべき開発概念30」「エラー文の読み方」