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

平成30年度 春期 午前 問16

ソフトウェア

優先度に関する問題

三つのタスク A〜C の優先度と,各タスクを単独で実行した場合の CPU と入出力(I/O)装置の動作順序と処理時間は,表のとおりである。A〜C が同時に実行可能状態になって3ミリ秒経過後から7ミリ秒間のスケジューリングの状況を表したものはどれか。ここで,I/O は競合せず,OS のオーバヘッドは考慮しないものとする。また,表中の( )内の数字は処理時間を表すものとし,解答群の中の“待ち”は,タスクが実行可能状態にあり,CPU の割当て待ちであることを示す。

タスク優先度単独実行時の動作順序と処理時間(ミリ秒)
A高CPU(2) → I/O(2) → CPU(2)
B中CPU(3) → I/O(5) → CPU(2)
C低CPU(2) → I/O(2) → CPU(3)

選択肢ア〜エは原典ではタイムチャートの図(横軸は3〜10ミリ秒の目盛,行はタスク A・B・C)。原典を8倍に拡大して目盛と区切りを読み取り,`区間: 内容` の形に書き写した(破線は“待ち”)。

答えと解説を見る

✓ これが正解ウ- タスクA: 3–4 I/O / 4–6 CPU / 6 完了 - タスクB: 3–4 CPU / 4–6 待ち / 6–7 CPU / 7–10 I/O - タスクC: 3–7 待ち / 7–9 CPU / 9–10 I/O

解説

優先度が高い順に割り当てると、この並びになります。

三つのタスクが同時に実行できる状態になったので、処理装置は優先度の高いものから受け取ります。まず優先度が高いものが2ミリ秒だけ処理装置を使い、そのあと入出力へ移りました。空いた席は、残っている中で優先度が上のものへ渡ります。ところが4ミリ秒の時点で入出力が終わり、優先度の高いほうが戻ってきました。優先度で選ぶ決まりなので、走っていたほうを待ちに戻し、高いほうが割り込みます。高いほうは4ミリ秒から6ミリ秒まで処理装置を使い、そこで全部終わりました。空いた席は残った二つのうち優先度が上のものへ渡り、6ミリ秒から7ミリ秒まで走ってから入出力へ移ります。最後に残ったものが7ミリ秒から9ミリ秒まで処理装置を使い、9ミリ秒から入出力に入りました。3ミリ秒から10ミリ秒までを切り出すと、この動きを表した肢に一致します。割り込みが起きる時点を見つけるのが要点でした。

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

出典:平成30年度 春期 基本情報技術者試験 午前 問16

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