基本情報のOSとスケジューリング|プロセス・スレッドを解説

基本情報のOSとスケジューリングを学ぶための机上イメージ

基本情報技術者試験のOS分野で、プロセス、スレッド、タスク、スケジューリングが急に出てきて混乱する人は多いです。どれも似た言葉に見えますが、試験では「CPUを誰に渡すか」「待ち行列のどこへ戻すか」「どの状態へ遷移するか」を見分けるだけで解ける問題がかなりあります。

特にラウンドロビン方式は、基本情報のOSスケジューリングでよく問われます。名前だけで覚えると選択肢で迷いやすいので、一定時間で交代する方式だとイメージできるようにしておくのが大切です。

この記事では、OSが何を管理しているのか、プロセスとスレッドの違い、実行状態と待ち状態、代表的なスケジューリング方式をまとめて整理します。計算よりも用語の対応関係を押さえたい人向けです。

この記事のポイント
  • OSはCPUやメモリなどの資源を管理する
  • プロセスは実行中のプログラム、スレッドは処理の流れ
  • 実行可能状態と待ち状態の違いが頻出
  • ラウンドロビンは一定時間で交代する方式
無料

基本情報技術者試験 過去問アプリ

本番形式で繰り返し解ける。スキマ時間に1問から

2,000問以上収録
無料で過去問を解く
目次

基本情報のOSスケジューリング基礎

OSがプロセスやスレッドを管理する概念図

OSは資源を管理する

OSは、利用者やアプリケーションがコンピュータを扱いやすくするための基本ソフトウェアです。試験では、画面を表示するソフトというより、CPU、主記憶、補助記憶、入出力装置、ファイル、通信などの資源を管理する役割として押さえると理解しやすくなります。アプリケーションが同時に動いているように見えるのも、OSがCPUやメモリの割当てを調整しているからです。

基本情報技術者試験のシラバスでも、OSはテクノロジ系の「ソフトウェア」に含まれる重要テーマです。出題では、OSの機能名を細かく暗記するだけでなく、なぜCPUを切り替える必要があるのかなぜ待ち状態が発生するのかを問う形で出ることがあります。公式の出題範囲を確認したい場合は、IPAの試験要綱・シラバスも見ておくと安心です。

OSは、複数のプログラムがCPUやメモリを勝手に奪い合わないように、資源の利用順序や利用範囲を管理する役割を持ちます。

管理対象試験での見方
CPUどのタスクを実行するかを決める
メモリ実行に必要な領域を割り当てる
入出力装置低速な装置との待ち時間を調整する
ファイル保存、読込み、アクセス権を管理する

この視点を持っておくと、スケジューリング問題も単なる用語暗記ではなく、「CPUという限られた資源を、どの順番で各タスクへ渡すか」という話に見えてきます。CPU性能やクロック周波数の計算とつなげて理解したい場合は、基本情報のCPU性能計算もあわせて確認すると、CPUを効率よく使う意味がつかみやすいです。

プロセスとスレッドの違い

プロセスは、実行中のプログラムを管理する単位です。たとえば同じアプリを2つ起動すれば、それぞれが別のプロセスとして扱われるイメージです。OSはプロセスごとに、使っているメモリ領域、開いているファイル、CPUの実行状態などを管理します。試験では「プログラムそのもの」ではなく、「実行されている状態のプログラム」と考えると選択肢を切りやすくなります。

スレッドは、プロセスの中にある処理の流れです。1つのプロセスの中で、画面表示、通信、保存処理などを並行して進めたいとき、複数のスレッドを使うことがあります。プロセスよりも軽い単位として説明されることが多く、同じプロセス内のスレッドはメモリ空間の一部を共有します。だからこそ、切替えの負担は小さくなりやすい一方で、共有データの扱いには注意が必要です。

基本情報では、プロセスは「実行中のプログラムの管理単位」、スレッドは「プロセス内の処理単位」とまず押さえると十分です。

用語覚え方試験での注意
プログラム保存されている命令の集まりまだ実行されていない
プロセス実行中のプログラムOSの管理対象になる
スレッドプロセス内の処理の流れ軽量な実行単位として出る

この違いを理解すると、「マルチプロセス」と「マルチスレッド」の説明も迷いにくくなります。マルチプロセスはプロセスを複数動かす考え方で、マルチスレッドは1つのプロセス内に複数の処理の流れを持たせる考え方です。どちらも並行処理に関係しますが、OSが管理する単位と、資源を共有する範囲が違うと見ておくと整理しやすいですね。

タスク状態遷移を覚える

タスクやプロセスは、ずっとCPUを使い続けているわけではありません。実行の準備ができているのにCPUが空くのを待っている状態、CPUを割り当てられて実際に動いている状態、入出力の完了などを待っている状態を行き来します。この状態遷移は、OS分野の中でもかなり出題しやすいところです。

基本は、実行可能状態、実行状態、待ち状態の3つです。実行可能状態は、いつでも実行できるがCPUをまだもらっていない状態です。実行状態は、CPUを割り当てられて命令を処理している状態です。待ち状態は、入出力完了、通信応答、イベント発生など、CPU以外の何かを待っている状態です。ここで大事なのは、待ち状態はCPUが空いてもすぐには実行できない点です。

状態遷移の基本

実行可能状態からCPUを割り当てられると実行状態になります。実行中に入出力待ちが発生すると待ち状態になり、入出力が完了すると実行可能状態へ戻ります。

選択肢で混乱しやすいのは、待ち状態から直接実行状態になると書かれている場合です。通常は、待ち状態の原因が解消されたらいったん実行可能状態へ戻り、スケジューラによってCPUを割り当てられてから実行状態になります。「待ち状態の次は実行可能状態」と意識しておくと、状態遷移図の問題でかなり判断しやすくなります。

ディスパッチの意味

ディスパッチは、実行可能状態にあるタスクの中から、実際にCPUを使わせるタスクを選び、実行状態へ移すことです。スケジューリングが「誰にCPUを渡すかを決める」考え方なら、ディスパッチは「決めた相手へCPUを渡して動かす」動作に近いです。用語としては地味ですが、状態遷移やスケジューリング方式を理解するうえで重要です。

また、タスクを切り替えるときには、現在のタスクの状態を保存し、次に動かすタスクの状態を復元する必要があります。この切替え作業には時間がかかります。これをオーバーヘッドとして意識しておくと、ラウンドロビン方式でタイムクウォンタムを短くしすぎると効率が悪くなる理由も自然に理解できます。試験では「公平に見える方式」だけでなく「切替えが多いと負担が増える」という弱点も問われます。

ディスパッチは、実行可能状態のタスクを実行状態へ移す操作です。スケジューリング方式の名前とセットで覚えると記憶に残りやすいです。

  • スケジューリングはCPUを割り当てる順番の決定
  • ディスパッチは選ばれたタスクを実行状態へ移す操作
  • タスク切替えにはオーバーヘッドがある
  • 切替えが多すぎるとCPUを有効に使いにくい

このあたりは、言葉だけを見ると難しく感じますが、実際には順番待ちの列から次の人を呼び出すイメージで十分です。列に並んでいる状態が実行可能状態、窓口で処理されている状態が実行状態、書類が足りずに別の処理を待っている状態が待ち状態です。試験では、このたとえをCPUと入出力装置に置き換えれば対応できます。

マルチタスクの考え方

マルチタスクは、複数のタスクを見かけ上同時に実行する仕組みです。1つのCPUコアが同じ瞬間に実行できる処理は基本的に1つですが、OSが短い時間で実行対象を切り替えることで、利用者には複数のアプリが同時に動いているように見えます。ブラウザを開きながら音楽を再生し、裏でファイルをダウンロードできるのは、この考え方があるからです。

試験では、マルチタスクを「本当に同時に全部処理している」と捉えると間違えやすくなります。CPU時間を細かく分け、OSが各タスクへ順番に割り当てていると考えるのが正確です。もちろん、マルチコアCPUでは物理的に並列実行できる範囲も増えますが、基本情報の用語問題では、まずOSによるCPU割当ての切替えとして理解しておけば十分です。

マルチタスクは、スケジューリングによってCPU時間を分け合う仕組みです。ラウンドロビン方式や優先度順方式は、その分け方のルールだと考えると整理できます。

用語を覚えたら問題で確認

OSの用語は、過去問の選択肢で何度も見ると定着しやすいです。短い空き時間でも演習しておくと、似た用語の違いが見えてきます。

無料で過去問演習する →

基本情報のOSスケジューリング解法

CPUスケジューリング方式をタイムラインで比較する学習イメージ

到着順方式の特徴

到着順方式は、実行可能状態になった順、または待ち行列に入った順にCPUを割り当てる方式です。FCFS、FIFOといった表現で説明されることもあります。考え方はシンプルで、先に並んだタスクから処理するだけです。基本情報では、もっとも直感的なスケジューリング方式として押さえておくとよいですね。

ただし、到着順方式には弱点があります。先に到着したタスクの処理時間が長いと、後ろに並んでいる短いタスクまで長く待たされます。飲食店で、前の注文がとても時間のかかる料理だと、後ろの簡単な注文まで待つことになるのと似ています。公平そうに見えても、平均待ち時間が長くなりやすい場面があるわけです。

到着順方式は、先に来たものから処理します。選択肢に「発生順」「到着順」「待ち行列の先頭から」とあれば、この方式を疑います。

観点到着順方式
処理順待ち行列に到着した順
長所考え方が単純で管理しやすい
短所長いタスクが先頭にあると後続が待つ
選択肢の目印先着順、発生順、FIFO

問題文で、タスクA、B、Cの到着時刻と処理時間が与えられている場合は、まず到着順なのか、処理時間順なのか、ラウンドロビンなのかを確認します。到着順方式なら、途中で別のタスクへ強制交代する記述は基本的に出てきません。一定時間で交代するならラウンドロビン、短い処理から選ぶなら処理時間順と切り分けましょう。

ラウンドロビン方式

ラウンドロビン方式は、各タスクに一定のCPU時間を順番に割り当てる方式です。一定時間内に処理が終わらなければ、いったんCPUを手放して待ち行列の最後尾に戻ります。この一定時間は、タイムクウォンタム、タイムスライスなどと呼ばれます。基本情報のOSスケジューリングでは、この「一定時間で交代」「終わらなければ最後尾へ戻る」というセットが最重要です。

ラウンドロビン方式は、1つの長いタスクがCPUを占有し続けることを防ぎやすく、複数の利用者や複数のタスクに比較的公平にCPU時間を配れます。そのため、対話型処理やタイムシェアリングシステムと相性がよい方式として説明されます。一方で、タイムクウォンタムを短くしすぎると、タスク切替えが頻繁になり、切替えのオーバーヘッドが大きくなります。

ラウンドロビンは「一定時間」「順番」「終わらなければ最後尾」の3語で覚えると、選択肢をかなり絞れます。

  • 各タスクに同じ長さのCPU時間を割り当てる
  • 時間内に終わらなければ待ち行列の最後尾へ戻る
  • 公平性を確保しやすい
  • 切替えが多いとオーバーヘッドが増える

過去問の選択肢では、「優先度の高い順に実行する」「イベント発生時にリアルタイムに実行する」「処理時間の短い順に実行する」などが混ぜられます。ラウンドロビンの説明として正しいのは、CPU時間を均等に割り当てる内容です。時間切れで最後尾に戻る動きを頭の中で再生できれば、紛らわしい選択肢にも引っかかりにくくなります。

優先度順方式の注意

優先度順方式は、優先度の高いタスクからCPUを割り当てる方式です。緊急性の高い処理、リアルタイム性が求められる処理、重要なシステム処理などを先に実行したい場合に考えやすい方式です。試験では「優先順位」「優先度」「優先度が高いものから」という表現が出たら、この方式を疑います。

注意点は、優先度の低いタスクがいつまでも実行されない可能性があることです。これをスタベーション、飢餓状態と呼ぶことがあります。常に優先度の高いタスクが入り続けると、低優先度のタスクは待ち行列に残り続けます。その対策として、待ち時間が長くなるほど優先度を上げるエージングという考え方が説明されることもあります。

方式目印注意点
到着順方式先に来た順長い処理が先頭だと後続が待つ
ラウンドロビン一定時間で交代切替えが多いと負担が増える
優先度順方式優先度が高い順低優先度が待ち続ける可能性
処理時間順方式短い処理から処理時間の見積りが前提
試験問題でスケジューリング方式を見分ける比較表イメージ

「重要な処理を先にできる」は長所ですが、「低優先度のタスクが実行されにくい」は弱点です。選択肢では長所と短所の両方を見ます。

優先度順方式とラウンドロビン方式は、どちらも複数タスクの実行順を決める方式ですが、判断基準がまったく違います。優先度順方式はタスクに付けられた優先度が基準です。ラウンドロビン方式は一定時間ごとに順番に回すことが基準です。選択肢を読むときは、何を基準に次のタスクを選んでいるかに注目しましょう。

処理時間順方式の落とし穴

処理時間順方式は、処理時間が短いタスクから先に実行する方式です。短い処理を先に片付けることで、平均待ち時間を短くしやすいという考え方があります。日常の例でいえば、短時間で終わる問い合わせを先に処理すると、待っている人数を早く減らせるイメージです。選択肢に「処理時間が短い順」とあれば、この方式を考えます。

ただし、実際に使うには各タスクの処理時間をあらかじめ見積もる必要があります。処理時間が分からなければ、短い順に並べることができないからです。また、長いタスクが後回しになりやすい点も注意です。優先度順方式のスタベーションほど強く問われない場合でも、「短い処理に有利」「長い処理は待たされやすい」という見方は持っておくとよいです。

処理時間順方式は、平均待ち時間を短くしやすい一方で、処理時間の見積りが前提になります。名前だけでなく前提条件も確認しましょう。

  • 短いタスクを先に終わらせやすい
  • 平均待ち時間を小さくしやすい
  • 処理時間が分かっている問題で判断しやすい

方式名だけを丸暗記すると、到着順方式と処理時間順方式を取り違えることがあります。到着順方式は「いつ来たか」が基準で、処理時間順方式は「どれくらい時間がかかるか」が基準です。問題文に到着時刻だけがあるのか、処理時間まで与えられているのかを見るだけでも、解くべき方式をかなり絞れます。

まとめ

基本情報のOSスケジューリングは、難しい計算問題として構えるより、まず用語の対応関係を押さえるのが近道です。OSはCPUやメモリなどの資源を管理し、プロセスやスレッドの実行を調整します。プロセスは実行中のプログラム、スレッドはプロセス内の処理の流れです。タスクは実行可能状態、実行状態、待ち状態を行き来します。

スケジューリング方式では、到着順方式、ラウンドロビン方式、優先度順方式、処理時間順方式の違いを押さえましょう。到着順方式は先に来た順、ラウンドロビン方式は一定時間で交代、優先度順方式は優先度が高い順、処理時間順方式は短い処理からです。この基準を表で整理しておくと、選択肢問題でかなり迷いにくくなります。

最後に覚えること

ラウンドロビンは、一定時間でCPUを交代し、終わらないタスクを待ち行列の最後尾へ戻す方式です。基本情報のOSスケジューリングでは最優先で覚えましょう。

OS分野は、CPU性能、メモリ管理、入出力制御ともつながっています。ページングやページ置換の理解を広げたい人は、基本情報の仮想記憶とページング方式も確認しておくと、OSが資源を管理するイメージがさらに固まります。テクノロジ系全体の優先順位を整理したい人は、基本情報のテクノロジ系勉強法も役立ちます。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

目次