応用情報技術者試験過去問を解いてみた R6年度 春期 問16


はじめに

今回も、応用情報技術者試験の過去問を解いていきます。
今回は「ノンプリエンプティブ方式とタスクの状態遷移」に関する問題です。

OSのスケジューリングは頻出テーマなので、しっかり理解していきましょう。


問題

ノンプリエンプティブ方式のタスクの状態遷移に関する記述として,適切なものはどれか。


OSは実行中のタスクの優先度を他のタスクよりも上げることによって,実行中のタスクが終了するまでタスクが切り替えられるのを防ぐ。


実行中のタスクが自らの中断をOSに要求することによってだけ,OSは実行中のタスクを中断し,動作可能な他のタスクを実行中に切り替えることができる。


実行中のタスクが無限ループに陥っていることをOSが検知した場合,OSは実行中のタスクを終了させ,動作可能な他のタスクを実行中に切り替える。


実行中のタスクより優先度が高い動作可能なタスクが実行待ち行列に追加された場合,OSは実行中のタスクを中断し,優先度が高い動作可能なタスクを実行中に切り替える。


解答


解説

■ ノンプリエンプティブ方式とは

ノンプリエンプティブ方式とは、

👉 OSが勝手にタスクを中断できない方式

です。

つまり、

  • 実行中のタスクは自分で手放さない限り継続
  • OSが強制的に割り込むことはできない

■ 各選択肢の解説

選択肢内容判定理由
優先度を上げて切替防止優先度操作はプリエンプティブ寄りの発想
タスクが自ら中断要求ノンプリエンプティブの本質
OSが無限ループ検知して終了OSが強制停止=プリエンプティブ
高優先度タスクで割り込み典型的なプリエンプティブ

図:プリエンプティブ vs ノンプリエンプティブ

■ ノンプリエンプティブ
[タスクA 実行中] ───────
→(自ら終了)
→ [タスクB]

※ OSは割り込めない

■ プリエンプティブ
[タスクA 実行中]
→(OSが割込み)
→ [タスクB(高優先度)]

※ OSが強制切替

問題の用語解説

■ ノンプリエンプティブ方式

  • タスクが自分でCPUを手放すまで実行継続
  • 単純だが応答性が悪い

■ プリエンプティブ方式

  • OSが強制的にタスクを切り替える
  • 現代OSの主流

■ タスクの状態遷移

待機 → 実行可能 → 実行中 → 終了

(CPU取得)

体系的位置づけ

この問題は以下の分野に属します:

分類内容
大分類テクノロジ系
中分類コンピュータシステム
小分類OS(オペレーティングシステム)
テーマスケジューリング / タスク管理

今回の問題の重要ポイント

■ ポイント①:主導権はどちらか

  • ノンプリエンプティブ → タスク主導
  • プリエンプティブ → OS主導

■ ポイント②:割り込みの有無

  • ノンプリエンプティブ → 割り込みなし
  • プリエンプティブ → 割り込みあり

■ ポイント③:試験での見分け方

👉 「OSが中断する」=プリエンプティブ

👉 「タスクが自分でやめる」=ノンプリエンプティブ


■ 補足:preemptive の意味

preemptive(プリエンプティブ)

▶ 英語の基本的な意味

  • 先手を打つ
  • 先取りする
  • 割り込む(他より先に行動する)

■ 分解して理解すると

  • pre- = 前に
  • empt / emption = 取る(take)

👉 「先に取る」「先に行動する」


■ IT分野での意味(重要)

OSの文脈では:

👉 「OSがタスクを強制的に中断して切り替える」

これがプリエンプティブ方式です。


■ 具体イメージ

● プリエンプティブ(preemptive)

  • OS「今すぐどけ!(強制)」
  • 高優先度タスクが来たら即交代

● ノンプリエンプティブ

  • タスク「終わるまで待ってね」
  • 自分から手放さない限り続く

■ 日常的なニュアンス

英語としてはこんな感じでも使われます:

  • preemptive strike(先制攻撃)
  • preemptive action(先手の対応)

👉「相手より先に動く」というニュアンス


■ 補足まとめ

用語意味
preemptive先に行動する・割り込む
ITでの意味OSがタスクを強制的に中断する

コメント

タイトルとURLをコピーしました