プログラムのCPU実行時間が300ミリ秒,入出力時間が600ミリ秒,その他のオーバヘッドが100ミリ秒の場合,ターンアラウンドタイムを半分に改善するには,入出力時間を現在の何倍にすればよいか。
正答1
解説
正解は1です。
ターンアラウンドタイムを、CPU実行時間、入出力時間、オーバヘッドの合計として計算する問題です。
入出力時間だけを変えて全体を半分にするには、入出力時間をどこまで減らせばよいかを求めます。
【計算】
現在のターンアラウンドタイムは 300+600+100=1000ミリ秒です。
半分にすると 500ミリ秒です。
改善後の入出力時間を y とすると 300+y+100=500 です。
これを解くと y=100ミリ秒です。
100÷600=1/6 なので、入出力時間は現在の1/6倍にする必要があります。
【選択肢別解説】
1:○ 入出力時間を600ミリ秒から100ミリ秒にすると全体が500ミリ秒になり、半分になるので正しいです。
2:× 1/4倍では入出力時間が150ミリ秒で、全体は550ミリ秒です。
半分には届きません。
3:× 1/3倍では入出力時間が200ミリ秒で、全体は600ミリ秒です。
4:× 1/2倍では入出力時間が300ミリ秒で、全体は700ミリ秒です。
入出力時間を半分にしても全体は半分になりません。
【ポイント】
全体を半分にしたいときでも、改善できない部分(CPU時間やオーバヘッド)は残ります。
改善対象の部分だけを未知数にして式を立てると確実です。