平成24年度春期 応用情報技術者試験 午前 問20
二つのタスクの優先度と各タスクを単独で実行した場合のCPUと入出力装置(I/O)の動作順序と処理時間は,表のとおりである。二つのタスクが同時に実行可能状態になってから,全てのタスクの実行が終了するまでの経過時間は何ミリ秒か。ここで,CPUは1個であり,I/Oの同時動作はできないものとし,OSのオーバヘッドは考慮しないものとする。また,表の( )内の数字は処理時間を示すものとする。

- ア 19
- イ 20
- ウ 21
- エ 22
解答・解説を見る
正解:エ
AI解説
優先度ベースのスケジューリングでは、優先度の高いタスクが実行可能になると CPU を優先的に使用(横取り)し、さらにこの問題では I/O 装置も同時動作できないため、先に使っている処理が終わるまで他方は待たされる。時間軸に沿って CPU と I/O の使用状況をタイムチャートに描き、競合による待ち時間を積み上げていくと、両タスクがすべて終了するのは開始から22ミリ秒後となる。 ア: 19ミリ秒は CPU や I/O の競合による待ち時間を見落とした値である。 イ: 20ミリ秒も待ち時間の一部を数え漏らした値である。 ウ: 21ミリ秒も同様に競合待ちの積み上げが不足した値である。 エ: 正解。CPU の横取りと I/O の排他使用による待ちをすべて反映すると22ミリ秒になる。 💡 この型の問題は必ずタイムチャート(CPU 行と I/O 行)を描く。「CPU は優先度の高いタスクが横取りできる」「I/O は先着優先で排他使用」の2つの制約を図に正確に反映することがすべてである。
※Web掲載用に表記を一部変更しています。図表はIPA公式問題冊子から引用しています。著作権はIPAに帰属します。