基本情報 平成27年度 秋期 問19:テクノロジ系に関する問題
ノンプリエンプティブなスケジューリング方式の説明として, 適切なものはどれか。
- a新しいタスクが実行可能状態になるたびに, 各タスクの残りの実行時間を評価し, その時間が短いものから順に実行する。
- b実行状態としたタスクが決められた時間内に待ち状態に遷移しないときに, その タスクを中断して実行待ち行列にある次のタスクを実行状態とする。
- c実行状態としたタスクが自ら待ち状態に遷移するか終了するまで, 他のタスクを 実行状態とすることができない。正答
- dタスクが実行可能状態になったときに, そのタスクの優先度と, その時, 実行状 態であるタスクの優先度とを比較して, 優先度が高い方のタスクを実行状態とする。
AI解説(初心者・標準・上級)
理解度に合わせて3レベルの解説を無料で読めます。
答えは c「実行中のタスクが自分で終わるか待ち状態になるまで、他のタスクは実行できない」です。
ノンプリエンプティブ=「強制的に取り上げない」方式。
たとえば順番に発表する勉強会で「発表者が自分で終わると言うまで誰も中断できない」ルール。逆にプリエンプティブは「時間が来たら司会が強制的に切り上げる」方式。
👉 覚え方:ノン(Non)=強制中断なし=自分で終わるまで続く。
ほかの選択肢:a 残り時間で並べる=SRT方式/b 時間内に終わらないと中断=プリエンプティブ(タイムスライス)/d 優先度で割込み=プリエンプティブ。
なぜこれが正解か
正解は c。ノンプリエンプティブ(Non-Preemptive:非優先取得)スケジューリングは、実行中のタスクが自発的にCPUを手放す(待ち状態遷移または終了)まで、他のタスクに切り替えない方式。代表例:FCFS(First Come First Served)、SJF(Shortest Job First)の非プリエンプティブ版。
各選択肢の解説
- a 誤り:残り実行時間順に実行=SRT(Shortest Remaining Time)で、プリエンプティブ方式。
- b 誤り:時間内に待ち状態にならないと中断=ラウンドロビン(Round-Robin)で、プリエンプティブ方式。
- d 誤り:優先度比較で実行中タスクを中断=プリエンプティブ優先度スケジューリング。
覚え方・ひっかけ注意
プリエンプティブとノンプリエンプティブの違い:
- プリエンプティブ:OSが強制的に実行権を取り上げる(割込み発生)。応答性高い。
- ノンプリエンプティブ:実行中タスクが自発的に手放すまで継続。実装シンプル。
現代の汎用OSはほぼすべてプリエンプティブ。ノンプリは協調的マルチタスク(Windows 3.x、初期Mac OS)・組込みリアルタイムOSの一部で採用。
理論的背景
プロセススケジューリングはOSの中核機能。プリエンプティブ/ノンプリエンプティブの2分類に加え、スケジューリングアルゴリズム別に多数の手法がある。性能評価指標はターンアラウンド時間・応答時間・待ち時間・スループット・CPU使用率・公平性(Fairness)。
実務での使われ方
主要スケジューリングアルゴリズム:
- FCFS(FIFO):到着順。ノンプリ。実装簡単だが「コンボイ効果」発生。
- SJF/SRT:実行時間最短から。応答時間最適だが実行時間予測必要。
- ラウンドロビン:タイムスライス(量子)で均等割当。プリエンプティブ。応答性良。
- 優先度スケジューリング:優先度順。プリエンプティブ/ノンプリエンプティブ両方あり。優先度逆転(Priority Inversion)問題に注意。
- 多段フィードバックキュー(MLFQ):複数キューを階層化。UNIXの伝統的方式。
- CFS(Completely Fair Scheduler):Linux標準(2.6.23以降)。仮想ランタイムでI/Oバウンドプロセスを優遇。
- EDF(Earliest Deadline First):リアルタイムOSの最適アルゴリズム。
- Rate Monotonic(RMS):周期タスクの静的優先度。
組込みリアルタイムOS(FreeRTOS・μITRON・VxWorks・RTEMS)では応答時間保証のためプリエンプティブ優先度方式が主流。
試験での位置づけ
OS・コンピュータシステム分野の最頻出論点。基本情報・応用情報・組込みシステムスペシャリスト・エンベデッドシステムスペシャリストで毎期出題。応用情報以上では平均待ち時間・ターンアラウンド時間の計算問題、優先度逆転の対策(優先度継承プロトコル・優先度上限プロトコル)まで踏み込む。
選択肢の発展補足
- SRT(a):SJFのプリエンプティブ版。新タスク到着時に残り実行時間で再評価。
- ラウンドロビン(b):タイムスライス値が短すぎるとコンテキストスイッチオーバーヘッド増、長すぎるとFCFSに退化。
- 優先度プリエンプティブ(d):リアルタイム制約のあるシステムで使用。Mars Pathfinder(1997年)の優先度逆転事故は古典例。
- 関連用語:コンテキストスイッチ、ディスパッチ、スケジューラ(短期・中期・長期)、コンボイ効果、スタベーション(飢餓状態)、エイジング(待ち時間に応じて優先度を上げる)、CPU親和性(Affinity)、SMP・NUMAスケジューリング。
出典:IPA(情報処理推進機構)公式 基本情報技術者試験 平成27年度 秋期 問19/ 公的機関配布資料につき出典明記の上引用。解説は合格ナビによる独自AI解説です。