基本情報技術者 2009年 春期 午前(科目A) 問18
問題文
プログラムのCPU実行時間が300ミリ秒、入出力時間が600ミリ秒、その他のオーバヘッドが100ミリ秒の場合、ターンアラウンドタイムを半分に改善するには、入出力時間を現在の何倍にすればよいか。
選択肢
ア:(正解)
イ:
ウ:
エ:
🔒 解説は解答すると表示されます
ターンアラウンドタイムの改善率【午前解説】
正解の理由
正解: ア
初期の合計ターンアラウンド時間はCPU実行時間300ms+入出力600ms+その他オーバヘッド100msで1000msです。半分の500msにするには入出力時間をxとすると → (ms)となります。現在の600msに対する比は です。よって正解はア()です。
初期の合計ターンアラウンド時間はCPU実行時間300ms+入出力600ms+その他オーバヘッド100msで1000msです。半分の500msにするには入出力時間をxとすると → (ms)となります。現在の600msに対する比は です。よって正解はア()です。
解法ステップ
- 初期合計時間を求める: ms。
- 目標合計時間は半分: ms。
- IO時間を未知として方程式を立てる:。
- 方程式を解く: ms。
- 現在の入出力600msに対する比を求める:。
選択肢別の誤答解説
- ア: 正解。計算により入出力を100msにすれば合計500msとなり、比は1/6。
- イ: (入出力150ms)を選ぶと合計はmsで半減には足りない。
- ウ: (入出力200ms)だと合計msでさらに不足する。
- エ: (入出力300ms)だと合計msで全く半減できない。
よくある誤解
- 「半分にする=各要素を半分にすればよい」と考える誤解:固定のCPUやオーバヘッドを無視すると必要削減率を誤る。
- 「比率を全体に対する比で求める」誤り:入出力だけの比率は、全体目標から他要素を先に差し引いて逆算する必要がある。
- 単位の見落とし:ミリ秒単位を揃えずに計算すると比率が変わる(秒・ミリ秒の混用ミス)。
補足コラム
この種の問題はAmdahlの法則的な思考(部分をどれだけ速くするかが全体に与える影響)に直結します。改善対象が全体に占める寄与が大きいほど、同じ割合の改善で得られる全体効果も大きくなります。本問では入出力が全体の6割を占めているため、ここを大幅に削る必要があり、逆にCPUやオーバヘッドが小さい場合はそれらをいくら改善しても全体短縮効果は限定的です。
FAQ
Q1: ターンアラウンドタイムとレスポンスタイムの違いは?
A1: ターンアラウンドタイムは処理の開始から完了までの総時間、レスポンスタイムは応答を開始するまでの時間(対話性評価で重視)。用途により評価指標が異なります。
A1: ターンアラウンドタイムは処理の開始から完了までの総時間、レスポンスタイムは応答を開始するまでの時間(対話性評価で重視)。用途により評価指標が異なります。
Q2: CPUやオーバヘッドも同時に改善できる場合は?
A2: その場合は各要素の削減後合計で目標を満たすように方程式を立て、各要素の削減比や絶対値を決定します。複数要素を改善する際はコスト対効果を比較してください。
A2: その場合は各要素の削減後合計で目標を満たすように方程式を立て、各要素の削減比や絶対値を決定します。複数要素を改善する際はコスト対効果を比較してください。
Q3: 単純に「半分にすれば良い」と考えてよい場面は?
A3: 全要素が均等に改善可能で、各要素が同じ比率で減少するという前提が成り立つ場合のみ。ただし実務では改善可能な要素が限定されることが多いです。
A3: 全要素が均等に改善可能で、各要素が同じ比率で減少するという前提が成り立つ場合のみ。ただし実務では改善可能な要素が限定されることが多いです。
関連キーワード: ターンアラウンドタイム、CPU実行時間、入出力時間、オーバヘッド、性能評価、Amdahlの法則、逆算による目標設定

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

