基本情報技術者 2009年 秋期 午前(科目A) 問17
問題文
オンラインシステムにおいて、1トランザクションの処理に平均60万命令を実行し、平均2回のファイルアクセスが必要であるとき,CPU性能が30MIPSであるコンピュータの1トランザクションの平均処理時間は何ミリ秒か。ここで、ファイルの平均アクセス時間は30ミリ秒とし、当該トランザクション以外の処理は発生しないものとする。
選択肢
ア:8
イ:40
ウ:62
エ:80(正解)
🔒 解説は解答すると表示されます
トランザクション処理時間計算【午前解説】
正解の理由
1トランザクションあたりに必要な総時間は「CPUで命令を実行する時間」と「ファイルアクセスにかかる時間」の和です。CPU時間は、命令数600,000命令を30MIPS(30×10^6命令/秒)で実行するので となります。ファイルアクセスは平均2回で、1回あたり30msなので合計 です。したがって総時間は となり、選択肢エが正解です。
解法ステップ
- CPU時間を求める
- CPU時間(秒) = 命令数 ÷ 命令実行速度(IPS)
- IPS = MIPS × 10^6(ここでは 命令/秒)
- 計算:
- ファイルアクセス時間を求める
- 平均アクセス回数 × 1回あたりのアクセス時間 =
- 合計(平均処理時間)を求める
- CPU時間 + ファイルアクセス時間 =
選択肢別の誤答解説
-
ア: 8
- 与えられた数値からはありえない値です。8msはCPU時間(20ms)より小さいため、命令数や単位を誤って扱った(例えば命令数を1桁少なく見積もった、またはMIPSを極端に大きく見積もった)計算ミスが考えられます。
-
イ: 40
- よくある誤りの一つは「ファイルアクセス時間を20msと誤認する」ことですが、本問では1回あたり30msと明記されています。CPU時間20msにファイルアクセスを1回だけ加算した場合でも であり、40msにはなりません。
- 40msになる典型的な誤り例としては、CPU性能を誤読して30MIPSを60MIPSと見なした(=CPU時間が10msになる)うえでファイルアクセスを1回だけ加えた()場合が考えられます。つまり、40msは「MIPSの読み間違い+ファイルアクセス回数の誤り」によって生じ得る値です。
-
ウ: 62
- 62msは実際の合計80msと差があります。例えばファイルアクセス回数を2回とするが1回あたりのアクセス時間を誤って21msとした場合()や、CPU時間を誤って20ms未満と見積もった場合に出る数値です。要因は主に丸め誤差や単位変換ミス、アクセス回数の数え忘れなどです。
-
エ: 80
- 解法ステップどおりに計算すると20ms(CPU)+60ms(I/O)=80msとなり、正答です。
よくある誤解
- MIPSの単位を誤解する:MIPSは「百万命令/秒(10^6命令/秒)」なので、30MIPSは30×10^6命令/秒です。桁を間違えるとCPU時間が大きくずれます。
- ファイルアクセス回数を忘れる/1回で済むと誤認する:平均回数が2回なら必ず2回分を加算します。1回しか加えないと過小評価になります。
- I/OとCPUが並行して実行されると想定する:問題で「当該トランザクション以外の処理は発生しない」とある場合は、通常はアクセス待ち時間も合計に加える(直列で加算する)前提で計算します。並列・重複の可否は問題文に依ります。
補足コラム
基本式をまとめると、平均処理時間T(秒)は
本問に代入すると
簡単な確認用Python(計算例):
instructions = 600_000
mips = 30
cpu_time_ms = instructions / (mips * 1_000_000) * 1000 # ms
io_count = 2
io_time_per_access_ms = 30
total_ms = cpu_time_ms + io_count * io_time_per_access_ms
print(cpu_time_ms, total_ms) # 20.0 80.0
FAQ
Q. ファイルアクセス時間はCPU時間と重ならないと考えて良いか?
A. 問題文に特別な並列処理の記述がなければ、通常はI/O待ち時間も含めて直列に合算します。並列処理が許される場合は問題文に明記されます。
A. 問題文に特別な並列処理の記述がなければ、通常はI/O待ち時間も含めて直列に合算します。並列処理が許される場合は問題文に明記されます。
Q. MIPSが与えられたら常に命令数をMIPSで割れば良いか?
A. はい。ただしMIPSは「百万命令/秒」なので単位を揃える(×10^6)点に注意してください。
A. はい。ただしMIPSは「百万命令/秒」なので単位を揃える(×10^6)点に注意してください。
Q. 平均アクセス回数が小数の場合は?
A. 平均値が小数でも同様に回数×1回時間で期待値(平均時間)を計算します。
A. 平均値が小数でも同様に回数×1回時間で期待値(平均時間)を計算します。
関連キーワード: MIPS、CPU時間、ファイルアクセス、平均応答時間、I/O待ち時間

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

