応用情報技術者 2017年 秋期 午前2 問14
問題文
次のシステムにおいて、ピーク時間帯のCPU使用率は何%か。ここで、トランザクションはレコードアクセス処理と計算処理から成り、レコードアクセスはCPU処理だけで I/O は発生せず、OSのオーバヘッドは考慮しないものとする。また、1日のうち発生するトランザクション数が最大になる 1時間をピーク時間帯と定義する。
〔システムの概要〕
(1)CPU数:1個
(2) 1日に発生する平均トランザクション数:54,000件
(3) 1日のピーク時間帯におけるトランザクション数の割合:20%
(4) 1トランザクション当たりの平均レコードアクセス数:100レコード
(5) 1レコードアクセスに必要な平均CPU時間:1ミリ秒
(6) 1トランザクション当たりの計算処理に必要な平均CPU時間:100ミリ秒
選択肢
ア:20
イ:30
ウ:50
エ:60(正解)
ピーク時間帯のCPU使用率は何%か【午前2 解説】
正解の理由
ピーク時間帯(1時間)に発生するトランザクション数は、1日平均54,000件のうち20%がピーク時間帯へ集中するため
各トランザクションのCPU時間は、レコードアクセス100レコード×1msと計算処理100msの合計で
よってピーク1時間に必要な総CPU時間は
単一CPUが利用可能な時間は1時間=3,600秒なので使用率は
したがって正解はエ(60%)です。
解法ステップ
- ピーク時間帯のトランザクション数を求める:54,000 × 0.2 = 10,800件。
- 1トランザクション当たりのCPU時間を求める:レコードアクセス100件×1ms + 計算処理100ms = 200ms = 0.2秒。
- ピーク1時間の総CPU必要時間を求める:10,800 × 0.2秒 = 2,160秒。
- CPU使用率を求める:2,160秒 ÷ 3,600秒 × 100% = 60%。
選択肢別の誤答解説
- ア: 20% — トランザクションのピーク割合(20%)をそのままCPU使用率と誤認した結果。ピーク割合はトランザクション数の比率であってCPU時間の比率ではない。
- イ: 30% — トランザクション数や各処理時間のどちらかを半分に見積もるなどの計算ミスが考えられる(例えばレコードアクセスを1件1msではなく0.5ms扱い)。
- ウ: 50% — ms→秒換算や合算時に100msのみを考慮し、レコードアクセス分100msを見落とした場合にこの値に近くなることがある。
- エ: 60% — 正しい算出過程(ピークトランザクション数×各トランザクションの総CPU時間÷3600秒)から導かれる正解。
よくある誤解
- トランザクション数を1日分の全体で計算してしまい、ピーク割合(20%)を適用し忘れるミス。
- レコードアクセスをI/O処理とみなしCPU時間に含めない誤り。問題文で「CPU処理だけでI/Oは発生せず」と明示されている点を見落とす。
- 時間単位の不整合(msと秒を混同)により結果が10倍や1/10になる計算ミス。
補足コラム
- 問題文で「OSのオーバヘッドは考慮しない」「I/Oは発生せず」とある場合、すべての処理時間はCPU時間としてカウントします。実務ではI/O待ちやコンテキストスイッチ、割込みなどで実効CPU使用率と理論値が乖離する点に留意してください。
- 単位換算(ms⇄秒)を早めに統一するとミスが減ります。1ms = 0.001秒を常に頭に入れておきましょう。
FAQ
Q1: レコードアクセスをI/Oと誤解したらどう見抜く?
A1: 問題文に「レコードアクセスはCPU処理だけで I/O は発生せず」と明記されています。指示文を必ず確認してください。
A1: 問題文に「レコードアクセスはCPU処理だけで I/O は発生せず」と明記されています。指示文を必ず確認してください。
Q2: CPUが複数台の場合の考え方は?
A2: 単純化すると利用可能なCPU時間は「CPU数 × 3600秒」になります。今回の例ではCPU数1なのでそのまま3600秒です。
A2: 単純化すると利用可能なCPU時間は「CPU数 × 3600秒」になります。今回の例ではCPU数1なのでそのまま3600秒です。
Q3: ピーク時間帯が1時間でない場合は?
A3: ピークの定義に従ってその時間長さ(秒)で分母を置き換え、同様に計算してください。
A3: ピークの定義に従ってその時間長さ(秒)で分母を置き換え、同様に計算してください。
関連キーワード: CPU使用率、トランザクション処理、ピーク負荷、処理時間計算、性能見積もり

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

