ITの基礎知識|ITパスポート・基本情報

基本情報技術者 平成21年春 問18

2026.04.07

プログラムのCPU実行時間が300ミリ秒、入出力時間が600ミリ秒、その他のオーバヘッドが100ミリ秒の場合、ターンアラウンドタイムを半分に改善するには、入出力時間を現在の何倍にすればよいか。

  • ア 1/6
  • イ 1/4 
  • ウ 1/3
  • エ 1/2

 

Show answer

解説:

ターンアラウンドタイムは「CPU実行時間」「入出力時間」「その他のオーバヘッド」を合計した、処理に関わる時間の総計となるので、与えられた情報をもとに、現状のターンアラウンドタイムを算出する。

$${300 + 600 + 100 = 1000 ミリ秒}$$

この、1000msのターンアラウンドタイムを半分(= 500 ミリ秒)としたいので、それを踏まえて実現すべき「入出力時間」を求めていく。

CPU時間・オーバヘッドは変えないので、以下の計算で求める。

$$ \begin{aligned}500 &= 300 + 改善後の入出力時間 + 100 \\\ 改善後の入出力時間 &= 500 - 300 - 100 \\\ 改善後の入出力時間 &= 100 ミリ秒\end{aligned} $$

問題では、元の入出力時間を「何倍」にすれば良いかを問われているので、600ms → 100ms が何倍になるかを求めて回答する。

600ms → 100ms だと、元の値から6分の1になった計算になるが、「元の値の6分の1=元の値の1/6倍」と言い換えられるので、正解はアの 1/6 となる。