プロセス管理とは(全体像)
プロセス管理とは、OSが、動いているプログラム(プロセス)の実行を管理する機能のことだ。プロセスとは、「実行中のプログラム1つ」のことだと思えばよい。
ここでカギになるのが、マルチタスク。これは、CPUの時間を細かく分けて(時分割)、複数のプログラムを少しずつ交代で動かし、同時に動いているように見せるしくみだ。
シェフでたとえると分かりやすい。1人のシェフ(CPU 1個)でも、複数の料理を少しずつ交代で作れば、同時進行に見える。これがマルチタスクのイメージだ。
ここで一番のポイント。マルチタスクと、マルチコア(CPUを複数のせること)は別ものだ。「マルチタスクには、必ずマルチコアが必要」と思い込むと誤りで、シングルコア(CPU 1個)でも、時分割でマルチタスクはできる。
詳しく:スケジューリングと、優先度
ここが心臓部。ポイントを表で押さえよう。
プロセス管理のポイント
| 項目 | やさしい意味 |
|---|---|
| プロセス | 実行中のプログラム1つ |
| マルチタスク | 時分割で、複数を同時に動いているように見せる |
| スケジューリング | どのプロセスを、いつ実行するか順番を決める |
| 方式の例 | ラウンドロビン(順番に均等)・優先度(重要度順) |
複数のプロセスを動かすとき、どれを、いつ実行するかの順番を決めることを、スケジューリングという。代表的な方式に、ラウンドロビン(順番に均等に割り当てる)や、優先度(重要度の高いものを先に)などがある。
ここで注意。優先度は、固定とは限らない。状況に応じて、動的に(その場で)調整されることもある。「優先度は、いつも固定で変わらない」と思い込むと誤りになる。
わかりやすく言い換えると
身近なたとえで整理しよう。
マルチタスクは、「1人のシェフが、複数の料理を少しずつ交代で作って、同時進行に見せること」のイメージ。
「シングルコアでもできる」というのは、CPUが1個でも、時間を細かく分けて切り替えれば、複数を同時に動かせること。要するに、マルチコアがなくても、マルチタスクは可能だ。
スケジューリングは、「どのプロセスを、いつ実行するか、順番を決めること」。つまり、限られたCPUの時間を、どう配分するかを決める。
試験のツボ
🔴 一番出る:マルチタスク
①CPUの時間を細かく分けて(時分割)、複数を同時に見せる
②プロセス=実行中のプログラム1つ
🔴 次に出る:マルチタスクとマルチコアは別
①シングルコア(CPU 1個)でも、時分割でマルチタスクできる
②マルチタスク(時分割)とマルチコア(CPU複数)は別の話
🟡 押さえると安定:スケジューリング
①どのプロセスを、いつ実行するか順番を決める
②方式の例:ラウンドロビン・優先度(優先度は動的調整あり)
よくある間違い
①「マルチタスクには、必ずマルチコア(CPU複数)が必要だ」→ ✗ シングルコア(CPU 1個)でも、時分割でマルチタスクはできる。
②「プロセスの優先度は、いつも固定で変わらない」→ ✗ 優先度は、状況に応じて動的に調整されることもある。
③「プロセス管理とは、紙の書類を整理する事務作業のことだ」→ ✗ プロセス管理は、OSが動いているプログラム(プロセス)を管理する機能。
試験での出題パターン
実際の問題でたしかめてみよう。
オリジナル問題1(プロセス管理の正体)
プロセス管理に関する次の記述のうち、最も適切なものはどれか。
- 社員の出退勤を記録して、毎月の給与を計算するためのしくみだ
- 取引先へ毎月の請求書を郵送する、決まった事務作業のことを指す
- OSが、動いているプログラム(プロセス)を管理する機能である
- 完成したシステムを宣伝して、より多く売るための広告活動である
解答は 3 だよ!
プロセス管理は、OSが、動いているプログラム(プロセス)を管理する機能なんだよ!プロセスは、実行中のプログラム1つのことだね!
選択肢1は給与計算、選択肢2は請求書の事務、選択肢4は広告で、どれも違うよ!
| 選択肢 | 判定 | 理由 |
|---|---|---|
| 1 | ✗ | 給与計算のしくみではない |
| 2 | ✗ | 請求書の事務の話 |
| 3 | ✓ | OSがプロセスを管理する機能で正しい |
| 4 | ✗ | 広告活動ではない |
オリジナル問題2(マルチタスク)
マルチタスクに関する次の記述のうち、最も適切なものはどれか。
- 社員の給与を計算するときだけ、使われるものだとされている
- 取引先へ請求書を郵送するときだけ、使われるものだとされる
- 一度に1つのプログラムしか動かせないしくみだとされているのだ
- 時分割で、複数のプログラムを同時に動いているように見せる
解答は 4 だよ!
マルチタスクは、時分割で、複数のプログラムを同時に動いているように見せるんだよ!1人のシェフが複数の料理を交代で作るイメージだね!
選択肢1の給与、選択肢2の請求書、選択肢3の「一度に1つだけ」は、いずれも違うよ!
| 選択肢 | 判定 | 理由 |
|---|---|---|
| 1 | ✗ | 給与計算のときだけではない |
| 2 | ✗ | 請求書のときだけではない |
| 3 | ✗ | 複数を同時に動いているように見せる |
| 4 | ✓ | 時分割で複数を同時に見せるで正しい |
オリジナル問題3(マルチタスクとマルチコア)
マルチタスクとマルチコアの関係に関する次の記述のうち、最も適切なものはどれか。
- シングルコア(CPU 1個)でも、時分割でマルチタスクできる
- 社員の給与を計算するときだけ、関係するとされているものである
- 取引先への請求書の枚数しだいで、決まるとされているものである
- マルチタスクには、必ずマルチコアが必要だとされているのである
解答は 1 だよ!
シングルコア(CPU 1個)でも、時分割でマルチタスクはできるんだよ!マルチタスク(時分割)とマルチコア(CPU複数)は別の話なんだね!
選択肢2の給与、選択肢3の請求書、選択肢4の「必ずマルチコアが必要」は、いずれも違うよ!
| 選択肢 | 判定 | 理由 |
|---|---|---|
| 1 | ✓ | シングルコアでも時分割で可能で正しい |
| 2 | ✗ | 給与計算で関係するのではない |
| 3 | ✗ | 請求書の枚数で決まるのではない |
| 4 | ✗ | マルチコアは必須ではない |
まとめ
押さえどころ
- 🔴 プロセス管理 = OSが、動いているプログラム(プロセス)を管理する機能。
- 🔴 マルチタスク = CPUの時間を時分割して、複数を同時に動いているように見せる。シングルコアでもできる(マルチコアは必須でない)。
- 🟡 スケジューリング = どのプロセスをいつ実行するか順番を決める。ラウンドロビン・優先度などの方式があり、優先度は動的調整もある。
次に学ぶ
- OS(基本ソフト) ── コンピュータの土台。プロセス管理は、そのOSの5大機能の1つ。
- スケジューリング ── 実行する順番の決め方。CPUの時間を、どのプロセスに配分するかを決める。
執筆: SikakuQuest編集部