プログラムのCPU実行時間が300ミリ秒,入出力時間が600ミリ秒,その他のオーバヘッドが100ミリ秒の場合,ターンアラウンドタイムを半分に改善するには,入出力時間を現在の何倍にすればよいか。
正答1
解説
正解は1です。
ターンアラウンドタイムを改善するために必要な入出力時間を求める問題です。
ターンアラウンドタイムは、ここではCPU実行時間、入出力時間、その他のオーバヘッドの合計です。
入出力時間だけを変えて、合計を半分にします。
【計算】
現在のターンアラウンドタイム=300+600+100=1,000ミリ秒です。
目標は半分なので、1,000÷2=500ミリ秒です。
CPU実行時間とオーバヘッドは変わらないので、300+100=400ミリ秒です。
必要な入出力時間=500-400=100ミリ秒です。
現在の入出力時間との比=100÷600=1/6です。
【選択肢別解説】
1:○ 入出力時間を600ミリ秒の1/6、つまり100ミリ秒にすれば、合計が500ミリ秒になります。
2:× 1/4にすると入出力時間は150ミリ秒で、合計は550ミリ秒です。
目標の500ミリ秒には届きません。
3:× 1/3にすると入出力時間は200ミリ秒で、合計は600ミリ秒です。
4:× 1/2にすると入出力時間は300ミリ秒で、合計は700ミリ秒です。
入出力時間を半分にしても、全体は半分になりません。
【ポイント】
改善できる部分が全体の一部だけのときは、その部分を何倍にしても全体の改善には限界があります。
変わらない部分の時間を先に引いてから計算するのがコツです。