過去問解きまくり研究所 ホーム

平成30年度 秋期 午前 問17

ソフトウェア

プリエンプションに関する問題

プリエンプション方式のタスクスケジューリングにおいて,タスク B の実行中にプリエンプションが発生する契機となるのはどれか。ここで,タスクの優先度は,タスク A が最も高く,タスク A > タスク B = タスク C > タスク D の関係とする。

答えと解説を見る

✓ これが正解アタスク A が実行可能状態になった。

解説

より優先度の高いタスクが順番待ちに現れたときです。

優先度の異なる四つのタスクがある状況で、実行中のタスクから CPU が取り上げられる契機を選ぶ問いです。プリエンプションは横取りという意味で、OS が実行中のタスクから CPU を取り上げて別のタスクへ渡すことを指します。ですから契機になるのは、いま走っているものより優先度の高いタスクが順番待ちの列に現れたときです。タスク管理の三つの状態を置いておくと見通しが立ちます。実行状態は CPU を使っている状態で、同時に一つだけです。実行可能状態は走れるけれども順番を待っている状態、待ち状態は入出力などの完了を待っていて走れない状態です。プリエンプションとは、実行状態から実行可能状態への移り変わりが、そのタスク自身の都合ではなく外から起こることだと言い換えられます。設問が与えた優先度の関係は、最も高いものが一つ、同じ高さのものが二つ、最も低いものが一つという形です。走っているのは真ん中の高さのタスクですから、順番待ちに現れて取り上げる理由になるのは、最も高いタスクだけです。見分けの軸は二つあります。現れたタスクの優先度が実行中のものより高いかどうかと、状態の移り方が自発的かどうかです。取り上げられたタスクは消えず、実行可能状態のまま列に残ります。

ほかの選択肢はなぜ違うのか

出典:平成30年度 秋期 応用情報技術者試験 午前 問17

この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)