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

選択肢
ア:19
イ:20
ウ:21
エ:22(正解)
二つのタスクの優先度と処理時間計算【午前2 解説】
要点まとめ
- 結論:全タスク終了までの最短経過時間は22ミリ秒である。
- 根拠:CPUは1個でI/Oも同時動作不可のため、優先度高のタスクを優先しつつI/O待ち時間を調整する必要がある。
- 差がつくポイント:CPUとI/Oの排他制御を考慮し、両タスクの処理順序を正確にシミュレーションできるかが鍵となる。
正解の理由
優先度が高いタスクをCPUが優先的に処理し、I/Oは同時に動作できないため、I/Oの待ち時間が発生する。両タスクのCPUとI/O処理を交互にスケジューリングすると、CPUとI/Oの排他制御により全体の処理時間は22ミリ秒となる。これが最短であり、選択肢の中でエが正解である。
よくある誤解
CPUとI/Oが同時に動作できると誤解し、単純に処理時間を足し合わせてしまう。
優先度だけでなくI/Oの排他制御も考慮しないため、実際の経過時間を過小評価しがちである。
優先度だけでなくI/Oの排他制御も考慮しないため、実際の経過時間を過小評価しがちである。
解法ステップ
- 各タスクのCPUとI/O処理時間を順に確認する。
- CPUは1個なので優先度高のタスクを優先的に割り当てる。
- I/Oは同時動作不可なので、I/O処理が重なる場合は順番に待たせる。
- 両タスクの処理を時系列でシミュレーションし、CPUとI/Oの使用状況を管理する。
- 全ての処理が終了するまでの経過時間を計算する。
選択肢別の誤答解説
- ア(19ミリ秒):CPUとI/Oの排他制御を無視し、単純に処理時間を足し合わせた誤り。
- イ(20ミリ秒):I/Oの待ち時間を一部考慮したが、優先度の影響を過小評価。
- ウ(21ミリ秒):CPU優先度は考慮したが、I/Oの同時動作不可による待ち時間を完全に反映できていない。
- エ(22ミリ秒):CPUとI/Oの排他制御、優先度を正しく考慮した正解。
補足コラム
CPUとI/Oの排他制御はOSのスケジューリングで重要なポイントです。特に単一CPU環境では、CPUの割り当てとI/Oの待ち時間が全体の処理時間に大きく影響します。優先度スケジューリングとI/Oの排他制御を組み合わせて考える問題は、実務でも頻出のテーマです。
FAQ
Q: なぜI/Oは同時に動作できないのですか?
A: 問題文でI/Oの同時動作不可と明示されているため、I/O装置は1つで排他制御が必要です。
A: 問題文でI/Oの同時動作不可と明示されているため、I/O装置は1つで排他制御が必要です。
Q: CPUが1個でもI/Oは複数同時に動作できることはありますか?
A: 実際のシステムでは可能な場合もありますが、本問題ではI/Oも1つで同時動作不可と設定されています。
A: 実際のシステムでは可能な場合もありますが、本問題ではI/Oも1つで同時動作不可と設定されています。
関連キーワード: CPUスケジューリング、I/O排他制御、優先度スケジューリング、タスク処理時間、OSスケジューリング

\ せっかくなら /
応用情報技術者を
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

