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

令和元年度 秋期 午前 問18

ソフトウェア

優先度に関する問題

優先度に基づくプリエンプティブなスケジューリングを行うリアルタイム OS で,二つのタスク A,B をスケジューリングする。A の方が B よりも優先度が高い場合にリアルタイム OS が行う動作のうち,適切なものはどれか。

答えと解説を見る

✓ これが正解ウB の実行中に A に起動がかかると,B を実行可能状態にして A を実行する。

解説

優先度が高いほうが来たら、走っている側を退かせます。

この方式では、優先度の高い処理が起こされたとき、走っている側を途中で退かせます。退かされた処理は、順番さえ回ってくれば続きから走れる実行可能状態で控えます。ここで押さえておきたいのは、控える状態が二種類あることです。一つは、走る番が来ればすぐ動ける状態です。もう一つは、何かが起きるのを待っていて、それが来るまで動けない状態にあたります。割り込まれて退いた側は、動くための条件がそろっているので前者になります。逆に、優先度の低いほうが起こされても、走っている高い側は退きません。低いほうが控えに回り、高い側が終わるのを待つことになります。どちらが退くかと、退いた先がどちらの状態かの二点で、肢は四通りに分かれます。状態の名前と移り変わる向きを組にし、矢印で描いておくと一目で分かります。

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

出典:令和元年度 秋期 基本情報技術者試験 午前 問18

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