基本情報技術者試験「プリエンプティブSJF」の問題
タスクが次のように到着する(到着時刻,処理時間): P1(0,7)・P2(2,4)・P3(4,1)・P4(5,4)。残り処理時間が最小のタスクを常に選ぶプリエンプティブSJF(SRTF)で実行するとき、P1のターンアラウンドタイムはいくらか。
ア7である
イ9と求まる
ウ11
エ16と求まる
正解
エ.16と求まる
SRTFでは時刻0でP1開始、時刻2にP2(残4)が到着しP1(残5)より短く割込み。時刻4にP3(残1)が最短で実行し時刻5完了。その後P2・P4を消化し、最後にP1が残5を実行して時刻16で完了。到着0よりターンアラウンドタイム=16となり正しい。
?選択肢ごとの解説
ア ×7である(=7)はP1の処理時間そのものであり、割込みによる中断・待ち時間を一切加えていない誤りである。
イ ×9は途中までの中断を一部しか考慮しない誤りで、P4まで含めた全割込みを反映していない。
ウ ×11は他タスク(例えばP4)のターンアラウンドや完了時刻と取り違えた値であり、P1の最終完了16ではない。
エ ○SRTFでは時刻0でP1開始、時刻2にP2(残4)が到着しP1(残5)より短く割込み。時刻4にP3(残1)が最短で実行し時刻5完了。その後P2・P4を消化し、最後にP1が残5を実行して時刻16で完了。到着0よりターンアラウンドタイム=16となり正しい。
✎くわしく
SRTFは到着のたびに残り処理時間を比較し、最短のタスクへ即座に切り替える。長いタスクは短いタスクに繰り返し割り込まれて完了が大きく遅れる。タイムラインを区間ごとに区切り、各時点で残り最小を選ぶ追跡が要点である。
✓本番での押さえどころ
試験のコツ
SRTFは到着イベントごとに残り時間を再評価する。タイムチャートを描き、各区間でどのタスクが実行されるか1つずつ確定する。
覚え方
SRTFは『より急ぎの用が来たら即交代』。長い仕事は短い仕事に何度も割り込まれて後回し、と覚える。
よくある誤り
到着時のみ比較し途中の割込みを見落とす、またはノンプリエンプティブSJFと混同して途中で奪わないと考える誤りが多い。
ソフトウェアの他の問題
OS(オペレーティングシステム)が担う最も中心的な役割を説明したものはどれか。実行状態のタスクが、自らの入出力要求の完了を待つために移る状態はどれか。3つのタスクP1・P2・P3が時刻0に同時に到着し、処理時間はそれぞれ8・4・6である。FCFS(到着順)方式でP1→P2→…4つのタスクが時刻0に同時到着し、処理時間はそれぞれ6・2・8・4である。処理時間の短い順に実行するSJF(ノンプリエンプテ…3つのタスクP1・P2・P3が時刻0にこの順で実行可能列に並ぶ。処理時間はP1=5・P2=3・P3=7で、タイムクウォンタム…4つのタスクPA・PB・PC・PDが時刻0に同時到着する。処理時間はPA=6・PB=2・PC=4・PD=8で、優先度はPB・…
この問題を、AIの8-ways解説つきで。
無料ではじめる →基本情報技術者試験の演習を、一問ごとに「なぜ」まで。まずは無料で。
ukamiru 過去問 · 基本情報技術者試験 · fe-a3-0211