プロセス管理とは?OSが実行中のプログラム(プロセス)の一生を管理するしくみ

公開: 更新: カテゴリ: テクノロジ系

30秒で結論

プロセス管理とは(全体像)

プロセスとは、実際に動いているプログラムのこと。OSは複数のプロセスを少しずつ順番に動かし、人には同時に動いているように見せる。これを支えるのがプロセス管理だ。

身近にたとえると、工場での仕事の進み方だ。1つの仕事(プロセス)は、指示書を作る→順番待ち→作業中→部品の到着待ち→完了、と状態が移り変わる。OSは作業員(CPU)をうまく割り振り、たくさんの仕事を回していく。

押さえるのは、プロセスが5つの状態を移り変わるということ。「4状態」と覚えるのは誤りで、生成と終了を入れた5状態が正式だ。


詳しく:5状態とfork-execの流れだけ覚えれば戦える

ここが記事の心臓部。まずプロセスの5状態を整理しましょう。

プロセスの5状態

状態意味工場のたとえ
生成(New)作成中。まだ動けない指示書を作成中
実行可能(Ready)CPUの順番待ち作業員の手が空くのを待つ
実行中(Running)CPUで実際に動いている作業中
待機(Blocked)I/Oなどの完了待ち部品の到着を待つ
終了(Terminated)終了処理中完了報告

OSは、これらの状態を移し替えながら複数のプロセスを回します。とくに「実行可能(順番待ち)」と「実行中」を行き来するのが基本の動きです。

次に、Unixでのプロセスの作り方。3つの手順でできています。

Unixのプロセス生成(fork→exec→wait)

手順役割
fork親プロセスをそっくり複製して子を作る
exec子のプログラムを別のものに置き換える
wait親が子の終了を待つ

ここで取り違えやすいのがforkです。forkは「複製」をするだけで、新しいプログラムを動かすのはexecの役目。「fork=新しいプログラムの実行」は誤りで、複製(fork)と置換(exec)は役割が分かれています。

最後にPCB(プロセス制御ブロック)。これはプロセス1つ1つの情報をまとめた管理カードで、PID(番号)・状態・CPUの途中経過(レジスタ)・メモリの位置などを記録します。プロセスを切り替えるとき、このPCBを保存・復元するのがコンテキストスイッチです。

わかりやすく言い換えると

要するに、工場の仕事の流れで覚えるとラクです。

5状態 … 生成→実行可能(順番待ち)→実行中→待機(部品待ち)→終了

fork→exec→wait … 複製(fork)→中身を入れ替え(exec)→終了を待つ(wait)

PCBとコンテキストスイッチ … 仕事ごとの進捗カード(PCB)を引き継ぐ手続き(切替)

つまり、「プロセスは5状態」「forkは複製・execで置換」、この2点が試験の急所です。


試験のツボ

🔴 一番出る:プロセスの5状態

①生成→実行可能(CPU待ち)→実行中→待機(I/O待ち)→終了

②「実行可能」と「実行中」を行き来するのが基本

🔴 次に出る:fork→exec→wait

①fork = 親を複製して子を作る/exec = 子のプログラムを置き換える

②wait = 親が子の終了を待つ(「forkで新プログラム」は誤り)

🟡 押さえると安定:PCBとコンテキストスイッチ

①PCB = プロセスごとの管理カード(PID・状態・レジスタなど)

②コンテキストスイッチ = 切替時にPCBを保存・復元する


よくある間違い

「プロセスは4状態である」→ ✗  生成と終了を入れた5状態が正式。簡略版で4状態とする教材もあるが正式は5状態。

「forkは新しいプログラムを実行する」→ ✗  forkは複製するだけ。新しいプログラムに置き換えるのはexec。

「PCBはプログラムのソースコードそのものである」→ ✗  PCBはプロセスの管理情報(PID・状態・レジスタなど)をまとめたもの。ソースコードではない。


試験での出題パターン

実際の問題でたしかめてみよう。

オリジナル問題1(プロセスの5状態)

📝 オリジナル問題 1 プロセスの5状態

プロセスの状態に関する次の記述のうち、正しいものはどれか。

  1. プロセスは生成・実行可能・実行中・待機・終了という5状態を移り変わるものとされている
  2. プロセスは実行中の1状態しかなく、待ちや終了といった状態は存在しないものとされている
  3. プロセスは紙に印刷された状態だけを指し、CPUでの実行とは無関係なものとされているのだ
  4. プロセスはハードウェアの一種で、状態の移り変わりという考え方はないものとされているのだ
テクマスター
テクマスター 解答・解説

解答は 1 ですよ。

プロセスは生成・実行可能・実行中・待機・終了の5状態を移り変わりますね。4状態ではなく、生成と終了を入れた5状態が正式です。

選択肢2の「1状態だけ」、選択肢3の「紙に印刷」、選択肢4の「ハードウェア」はどれも誤りですよ。

選択肢判定理由
1生成・実行可能・実行中・待機・終了の5状態
2待ちや終了の状態もある
3CPUで実行されるプログラム
4ソフトウェアの概念

オリジナル問題2(fork→exec→wait)

📝 オリジナル問題 2 forkとexecの役割

Unixのプロセス生成に関する次の記述のうち、正しいものはどれか。

  1. forkは新しいプログラムを直接実行し、execは親プロセスを複製する手順とされているのだ
  2. forkもexecもまったく同じ働きで、複製か置換かという役割の違いはないものとされている
  3. forkは親プロセスを複製して子を作り、execは子のプログラムを別のものに置き換えるのだ
  4. forkは紙に印刷する手順で、execは画面に表示する手順とされ、プロセスとは無関係である
テクマスター
テクマスター 解答・解説

解答は 3 ですよ。

forkは親プロセスを複製して子を作りexecは子のプログラムを別のものに置き換える手順ですね。複製と置換は役割が分かれています。

選択肢1のforkとexecが逆、選択肢2の「同じ働き」、選択肢4の「印刷・表示」はどれも誤りですよ。

選択肢判定理由
1forkは複製、新プログラムはexec
2複製と置換で役割が違う
3forkは複製・execは置換
4印刷や表示の手順ではない

オリジナル問題3(PCB)

📝 オリジナル問題 3 PCBとコンテキストスイッチ

PCB(プロセス制御ブロック)に関する次の記述のうち、正しいものはどれか。

  1. PCBは紙に印刷する装置のことで、プロセスの管理とは無関係なものとされているものだ
  2. PCBはプロセスごとのPID・状態・レジスタなどの管理情報をまとめたものとされている
  3. PCBはプログラムのソースコードそのもので、管理情報はいっさい持たないものとされている
  4. PCBはハードウェアの電源装置の一種で、プロセスの情報は記録しないものとされているのだ
テクマスター
テクマスター 解答・解説

解答は 2 ですよ。

PCBはプロセスごとのPID・状態・レジスタなどの管理情報をまとめたものですね。切替のときは、このPCBを保存・復元します(コンテキストスイッチ)。

選択肢1の「印刷する装置」、選択肢3の「ソースコードそのもの」、選択肢4の「電源装置」はどれも誤りですよ。

選択肢判定理由
1印刷装置ではない
2PID・状態・レジスタなどの管理情報
3ソースコードではない
4電源装置ではない

まとめ

押さえどころ

次に学ぶ


執筆: SikakuQuest編集部

勉強は、クエストになった。

資格の勉強を、冒険に変えるRPG学習アプリ

App Storeで見る