1件のデータを処理する際に、読取りには40ミリ秒、CPU処理には30ミリ秒、書込みには50ミリ秒掛かるプログラムがある。このプログラムで、n件目の書込みと並行してn+1件目のCPU処理とn+2件目の読取りを実行すると、1分当たりの最大データ処理件数は幾つか。ここで、OSのオーバヘッドは考慮しないものとする。

【解答】

1件のデータの処理は

読み取り → CPU処理 → 書き込み

で、さらに、書き込み時にCPU処理を平行でき、さらに次の読み取りを実行するとなると、以下の動作となる。

1件目~3件目について

読取40→CPU30→書込50

      2件目のCPU30 → 2件目の書込50

      3件目の読取40 → 3件目のCPU30 → 3件目の書込50

※題意の読み込みとして、書き込み時に2件目のCPU処理をするということは、2件目の読み取りは1件目のCPU処理時に行うことが出来ると推測する必要がある。

とすると、2件目は、1件目のCPU30の間に読み取り30を行っているので、書き込み50のうち10のみ読み込みに使用し、残り40のうち30でCPU処理をしていると考えられ、実質的に書き込み10が残ることになるから、1件目の書き込みから2件目の書き込みまで、書き込みのタイミングのみで遅れることが分かる。

さて、1分間は60秒=60000ミリ秒であり、この間に書き込みを何回出来るかを考えると、

60000 ÷ 50 = 12 000 / 10 = 1200 回

と分かる。

↓クリックしていただけると励みになります↓
にほんブログ村 株ブログ 株日記へ にほんブログ村 メンタルヘルスブログ 統合失調症へ にほんブログ村 為替ブログ 為替日記へ

シェアする

  • このエントリーをはてなブックマークに追加

フォローする