平成27年度 春期 午前 問13
システム構成要素
スループットに関する問題
1 件のデータを処理する際に,読取りには 40 ミリ秒,CPU 処理には 30 ミリ秒,書込みには 50 ミリ秒掛かるプログラムがある。このプログラムで,n 件目の書込みと並行して n+1 件目の CPU 処理と n+2 件目の読取りを実行すると,1 分当たりの最大データ処理件数は幾つか。ここで,OS のオーバヘッドは考慮しないものとする。
- ア500
- イ666
- ウ750
- エ1,200
答えと解説を見る
✓ これが正解エ1,200
解説
重ねて流す速さは、一番遅い工程で決まります。
設問は、三つの工程を重ねて流したときの、1 分当たりの最大処理件数を求めさせています。1 件あたり読取りに 40 ミリ秒、CPU 処理に 30 ミリ秒、書込みに 50 ミリ秒かかり、ある件の書込みと、次の件の CPU 処理と、その次の件の読取りが同時に進むと書かれています。これは三段のパイプラインそのものです。重ねて流すとき、次の 1 件へ進める間隔は、同時に動いている工程のうち最も長いものが終わるまで縮みません。よって間隔は 40 と 30 と 50 の最大値、つまり 50 ミリ秒になります。短い二つは 50 ミリ秒の中に隠れて終わり、待ち時間として消えます。1 分は 60,000 ミリ秒ですから、60,000 を 50 で割って 1,200 件です。念のため、最初の 1 件が出るまでの 120 ミリ秒を差し引いて数え直しても 1,198 件あまりで、最大を問う設問ですから 1,200 で差し支えありません。設問が OS のオーバヘッドを考えないと断っているので、切替えの手間も数えません。重ねて流すときのスループットは、足し算ではなく最長工程の逆数で決まります。
ほかの選択肢はなぜ違うのか
- ア500:三つの工程を足して 120 ミリ秒とし、60,000 をそれで割った値です。同時に進むという断りを読み落とすと、この数に落ち着きます。
- イ666:読取りと書込みだけを足して 90 ミリ秒とし、60,000 をそれで割った値です。足す相手を二つに絞っても、足した時点で考え方が外れています。
- ウ750:CPU 処理と書込みを足して 80 ミリ秒とし、60,000 をそれで割った値です。残る三つの数値は足し算から出たものなので、足し算で求めた答えはどれも当たりません。
出典:平成27年度 春期 応用情報技術者試験 午前 問13
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)