ソフトウェア

基本情報技術者試験プリエンプティブSJF」の問題

テクノロジ系ソフトウェア計算問題難易度:hard
タスクが次のように到着する(到着時刻,処理時間): 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と混同して途中で奪わないと考える誤りが多い。

ソフトウェアの他の問題

この問題を、AIの8-ways解説つきで。

基本情報技術者試験の演習を、一問ごとに「なぜ」まで。まずは無料で。

無料ではじめる →

ukamiru 過去問 · 基本情報技術者試験 · fe-a3-0211

【基本情報技術者試験】プリエンプティブSJFの問題 — 解答・解説|ukamiru 過去問