読取り・CPU 処理・書込みを並行したときの処理件数
出典: 平成27年度 春期 応用情報技術者試験 午前 問13 (IPA)
1 件のデータを処理する際に,読取りには 40 ミリ秒,CPU 処理には 30 ミリ秒,書込みには 50 ミリ秒掛かるプログラムがある。このプログラムで,n 件目の書込みと並行して n+1 件目の CPU 処理と n+2 件目の読取りを実行すると,1 分当たりの最大データ処理件数は幾つか。ここで,OS のオーバヘッドは考慮しないものとする。
- ア 500
- イ 666
- ウ 750
- エ 1,200
正解と解説を見る
正解: エ
- ア: 500 は 1 件ずつ順番に処理した (40 + 30 + 50 = 120 ミリ秒) ときの件数です。並行して処理すると速くなります。
- イ: 666 は 1 件あたり 90 ミリ秒として計算した値です。並行処理では一番遅い書込みの 50 ミリ秒ごとに 1 件終わります。
- ウ: 750 は 1 件あたり 80 ミリ秒として計算した値です。並行処理では一番遅い書込みの 50 ミリ秒ごとに 1 件終わります。
- エ: 一番遅い書込み (50 ミリ秒) ごとに 1 件終わるので、60,000 ÷ 50 = 1,200 件です。正しい答えです。
ポイント
- 読取り・CPU 処理・書込みを別々のデータで並行して進めるので、パイプラインのように動きます。
- このとき 1 件あたりの処理間隔は、一番時間が掛かる処理 (書込み 50 ミリ秒) で決まります。
- 1 分 = 60,000 ミリ秒 ÷ 50 ミリ秒 = 1,200 件 です。