基本情報技術者 2017年 春期 午前(科目A) 問17
問題文
図の送信タスクから受信タスクに秒間連続してデータを送信する。1秒当たりの送信量を、1秒当たりの受信量をとしたとき、バッファがオーバフローしないバッファサイズを表す関係式として適切なものはどれか。ここで、受信タスクよりも送信タスクの方が転送速度は速く、次の転送開始までの時間間隔は十分にあるものとする。

選択肢
ア:
イ:
ウ:
エ:(正解)
🔒 解説は解答すると表示されます
送受信タスクのバッファ容量【午前解説】
正解の理由
送信タスクが受信タスクより速いという条件は を意味します。1秒ごとにバッファに蓄積される純データ量は「送信量 − 受信量 」であり、これは正の値 です。これが 秒続くと合計で がバッファに蓄積されます。したがってオーバーフローを防ぐにはバッファ容量 がこの蓄積量以上である必要があり、式としては
となります。したがって正解は エ です。
(例)、、 のとき、1秒当たりの純増は 、合計 。この場合 でなければオーバーフローします。
解法ステップ
- 問題文から S(送信量/秒) と R(受信量/秒) を読み取り、 が成り立つことを確認する。
- 1秒あたりの純増を計算する:。。
- 秒間の累積増分を求める:。
- オーバーフローしない条件は「バッファ容量 L が累積増分以上」であるため を選ぶ。
選択肢別の誤答解説
- ア:
誤り。まず は負になる()ため右辺は負、さらに不等号が逆で条件として成立しない。意味的にも逆です。 - イ:
誤り。不等号が逆で「バッファが小さいこと」を要求しており、オーバーフローを防ぐ条件とは矛盾します。 - ウ:
誤り。 は負であり、右辺が負ならこの不等式はほとんど常に成立してしまい実用的条件にならないため不適切です。 - エ:
正解。1秒当たりの増分 を 秒分合計した量以上のバッファが必要、という問題の要件をそのまま表しています。
よくある誤解
- 「差の向き」を間違える: を使うと符号が逆になり、意味が全く変わります。
- 「不等号の向き」を混同する:必要条件は「L が蓄積量以上」であり、 を選ぶとオーバーフローを許容する誤答になります。
- 「等号の解釈」を誤る: の場合はちょうど満杯になり得るため運用上は余裕を見て大きめに取るのが現実的です。
補足コラム
- 平均値と瞬間値:ここでは秒単位の平均送受信量を用いた単純モデルです。パケット化やバースト転送がある場合はピーク時の蓄積を考慮する必要があります。
- 安全マージン:実運用では遅延や変動を考え、最低でも数%〜数十%の余裕を持たせたバッファ設計が推奨されます。
- 単位の一致: がバイト/秒やパケット/秒など同じ単位であること、 の単位(秒)と合わせることを確認してください。
FAQ
Q1: もし ならどうなる?
A1: 1秒あたりの純増は なので 秒でも増減はなく、理論上は で十分ですが実際は安全マージンを取ります。
A1: 1秒あたりの純増は なので 秒でも増減はなく、理論上は で十分ですが実際は安全マージンを取ります。
Q2: 不等号が厳密(> や <)で表現される場合は?
A2: 本問題の文脈では「オーバーフローしない」=「蓄積量がバッファを超えない(≥)」なので等号を含む表現が妥当です。等号を入れないと「ちょうど満杯も不可」と読み取られるため運用上は慎重になります。
A2: 本問題の文脈では「オーバーフローしない」=「蓄積量がバッファを超えない(≥)」なので等号を含む表現が妥当です。等号を入れないと「ちょうど満杯も不可」と読み取られるため運用上は慎重になります。
Q3: 送受信量が時間で変動する場合は?
A3: 最悪ケース(ピーク差分)を想定して のように設計するか、動的制御(フロー制御)で過積載を防ぐ必要があります。
A3: 最悪ケース(ピーク差分)を想定して のように設計するか、動的制御(フロー制御)で過積載を防ぐ必要があります。
関連キーワード: バッファオーバーフロー、バッファサイズ、送信速度、受信速度、フロー制御、スループット、ネットワークバッファ、FIFO、データ転送、ピーク負荷、設計マージン、バースト転送

\ せっかくなら /
基本情報技術者を
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

