バッファ容量は送受信速度の差からどう求める?
基本情報技術者試験 令和元年度秋期 午前 問17 / ソフトウェア › オペレーティングシステム
過去問にチャレンジ
図の送信タスクから受信タスクにT秒間連続してデータを送信する。1秒当たりの送信量をS,1秒当たりの受信量をRとしたとき,バッファがオーバーフローしないバッファサイズLを表す関係式として適切なものはどれか。ここで,受信タスクよりも送信タスクの方が転送速度は速く,次の転送開始までの時間間隔は十分にあるものとする。

- ア
L<(R-S)×T
- イ
L<(S-R)×T
- ウ
L≧(R-S)×T
- エ
L≧(S-R)×T
会話形式の解説
講師この問題では、図のバッファに入る速さと出る速さの差に注目します。毎秒どれだけデータがたまりますか。
受験者送信の方が速いので、毎秒S-Rずつ増えます。引く順序を逆にすると負になってしまいますね。
講師そのとおりです。では、送信がT秒間続くと、バッファ内のデータはどれだけ増えますか。
受験者毎秒の増加量に時間を掛けて、(S-R)×Tです。これが送信終了時の蓄積量ですね。
講師はい。あふれないためには、容量Lがその蓄積量以上必要です。Lがちょうど同じ量でも収まります。
受験者すると、L≧(S-R)×Tです。L<(S-R)×Tでは容量が足りません。
講師そうです。L<(S-R)×Tを選ぶと、送信が終わる前に収容しきれなくなります。
受験者R-Sを使った二つの式はどう見ればよいですか。
講師S>Rなので、R-Sは負です。L<(R-S)×Tは、負にならない容量Lでは満たせません。
受験者L≧(R-S)×Tなら満たせそうですが、それだけでは必要な容量があるとは言えませんね。
講師はい。負の値以上という条件では、増えたデータを収容できるか判断できません。速度の差に継続時間を掛け、容量がその量以上かを確かめます。
まとめ
送信速度Sは受信速度Rより速いため、バッファ内のデータは毎秒S-Rずつ増えます。T秒間でたまる量は(S-R)×Tです。あふれないための条件はL≧(S-R)×Tで、蓄積量と容量が等しい場合も収まります。したがって正解はエです。
解答・解説
正解はエです
この問題のテーマ
送信量と受信量の差から、バッファがあふれないために必要な容量を求める問題です。
解き方の考え方
図では、送信タスクからバッファに毎秒S、バッファから受信タスクに毎秒Rのデータが流れます。S>Rなので、バッファ内のデータは毎秒S-Rずつ増え、T秒後の蓄積量は(S-R)×Tです。この量を収容できる条件を選びます。
選択肢ごとの解説
- ×ア L<(R-S)×Tアの「L<(R-S)×T」では、右辺はS>Rのため負になります。負にならないバッファ容量Lがこの条件を満たすことはできません。
- ×イ L<(S-R)×Tイの「L<(S-R)×T」は、容量をT秒後の蓄積量より小さくする条件です。送信が終わる前に収容しきれなくなるため、オーバーフローを防げません。
- ×ウ L≧(R-S)×Tウの「L≧(R-S)×T」は、容量が負の値以上であれば満たされます。これでは、実際に増えるデータを収容できる容量かどうかを判断できません。
- ○エ L≧(S-R)×Tエの「L≧(S-R)×T」は、容量をT秒間の最大蓄積量以上にする条件です。等しい場合も送信終了時にちょうど収まるので、正解はエです。
POINT
- バッファに入る速度が出る速度より速いときは、その差の分だけデータがたまります。
- 一定時間続く転送では、速度の差に継続時間を掛けて最大蓄積量を求めます。
- 必要な容量と最大蓄積量が等しい場合も、データは収まります。
