応用情報技術者試験 令和3年秋 午前問15 解説付き過去問
問題
1件のデータを処理する際に、読取りには40ミリ秒、CPU処理には30ミリ秒、書込みには50ミリ秒掛かるプログラムがある。
このプログラムで、n件目の書込みと並行してn+1件目のCPU処理とn+2件目の読取りを実行すると、1分当たりの最大データ処理件数は幾つか。
ここで、OSのオーバヘッドは考慮しないものとする。
正解
解説
この問題は、プログラムのパイプライン処理における最大データ処理件数を求めるものです。ここで重要なのは、各処理の時間とその並行実行の効率を理解することです。
- 各処理の時間と並行実行の概念
各データ処理に要する時間は、読取りが40ミリ秒、CPU処理が30ミリ秒、書込みが50ミリ秒です。問題のシナリオでは、n件目の書込みを行いながら同時にn+1件目のCPU処理、そしてn+2件目の読取りを実行することが可能です。これにより、一連の処理が重なり合うことで、実際の1件あたりの処理時間が効率的に短縮されます。 - 最も遅い処理の影響
プログラムの実行効率を左右するのは、最も時間がかかる処理、つまりこの場合は書込みの50ミリ秒です。書込みが完了すると同時に次の書込みが始まることができるため、理論上の最小処理時間は書込みの時間に等しくなります。つまり、1件のデータを処理するのに最少50ミリ秒が必要となります。 - 1分当たりの処理件数の計算
1分は60,000ミリ秒です。各データ処理が50ミリ秒で完了すると仮定すると、60,000ミリ秒 ÷ 50ミリ秒 = 12001 件のデータ処理が可能です。これは、パイプライン処理により効率的に各ステップが実行されることを前提としています。
したがって、1分当たりの最大データ処理件数は1,200件です。この値は、最も時間がかかる書込み処理の時間を基準に計算されたものであり、パイプライン処理の効果による最適なシナリオを示しています。