令和3年度秋期 応用情報技術者試験 午前 問15
1件のデータを処理する際に,読取りには40ミリ秒,CPU処理には30ミリ秒,書込みには50ミリ秒掛かるプログラムがある。このプログラムで,n件目の書込みと並行してn+1件目のCPU処理とn+2件目の読取りを実行すると,1分当たりの最大データ処理件数は幾つか。ここで,OSのオーバヘッドは考慮しないものとする。
- ア 500
- イ 666
- ウ 750
- エ 1,200
解答・解説を見る
正解:エ
AI解説
読取り(40ms)・CPU処理(30ms)・書込み(50ms)を異なる資源(装置)がパイプライン的に並行実行するため、定常状態での1件当たりの処理時間は、3つの処理のうち最も時間の掛かる工程(書込みの50ミリ秒)で律速される。よって1分(60,000ミリ秒)間の最大処理件数は60,000÷50=1,200件になる。 ア: 500件は、律速する工程の時間を見誤り、より長い周期(例えば120ミリ秒)を仮定した場合などに生じる値である。 イ: 666件も同様に、誤った周期(90ミリ秒程度)を仮定した場合に生じ得る値であり、正しいパイプライン律速の考え方を反映していない。 ウ: 750件も、読取り・CPU・書込みを直列に加算する(40+30+50=120ミリ秒を基準にするなど)誤った計算をした場合に近い値であり、パイプライン化による並行処理を考慮していない。 エ: 3工程を並行実行するパイプラインでは、最も時間の掛かる工程(書込み50ミリ秒)が周期を決めるため、60,000ミリ秒÷50ミリ秒=1,200件となり、これが正解である。 💡 パイプライン処理の周期は『各工程の合計』ではなく『最も遅い工程の時間』で決まる、という考え方が重要。ボトルネック工程を見極めることがポイントになる。
※Web掲載用に表記を一部変更しています。著作権はIPAに帰属します。