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

- ア 19
- イ 20
- ウ 21
- エ 22
解答・解説を見る
正解:エ
AI解説
優先度の高いタスクがCPUを優先的に使い、I/O装置は同時動作できないため、両タスクのCPU処理とI/O処理をタイムチャート(時間軸の図)に描いて競合を追うのが解法である。低優先タスクはCPUの空き時間にしか実行できず、I/Oも先行タスクの使用中は待たされる。この待ち時間を正確に積み上げると、両タスクが同時に実行可能となってから全て終了するまでの経過時間は22ミリ秒となり、正解はエ。 ア: 19ミリ秒は誤り。CPUとI/Oの競合による待ち時間を考慮せず、処理時間を単純に重ねた場合に出る過小な値である。 イ: 20ミリ秒は誤り。I/Oの同時動作不可の条件を見落とし、I/O待ちを一部計上しないとこの値になる。 ウ: 21ミリ秒は誤り。待ち時間の積上げが1ミリ秒不足しており、タイムチャートの詰めが甘い場合に出る値である。 エ: 正しい。CPUの優先度制御とI/Oの排他使用による待ちを全て反映したタイムチャートを描くと22ミリ秒になる。 💡 タスクスケジューリング問題は暗算せず必ずタイムチャートを描く。「CPUは優先度順」「I/Oは早い者勝ちで排他」「I/O完了後は再びCPU待ち行列へ」の3ルールを図に忠実に反映するのがコツである。
※Web掲載用に表記を一部変更しています。図表はIPA公式問題冊子から引用しています。著作権はIPAに帰属します。