基本情報技術者 2016年 春期 午前(科目A) 問17
問題文
入出力管理におけるバッファの機能として、適切なものはどれか。
選択肢
ア:入出力装置が利用可能になったことを、入出力装置が処理装置に伝える。
イ:入出力装置と処理装置との間に特別な記憶域を設け、処理速度の違いを緩和する。(正解)
ウ:入出力装置と処理装置との間のデータ交換に階層を設けることによって、入出力装置固有の仕様を意識せずに利用できる。
エ:入出力装置をファイルと同じように取り扱えるようにする。
🔒 解説は解答すると表示されます
入出力バッファリング【午前解説】
正解の理由
正解は イ です。バッファは文字どおり入出力装置と処理装置の間に設ける「一時的な記憶領域」で、処理装置の高速処理と入出力装置の比較的低速・変動する応答との速度差を吸収します。これにより処理装置は入出力完了を逐一待たずに次の処理を進められ、データ転送を効率よく行えます。問題文の「特別な記憶域」「処理速度の違いを緩和する」に一致する説明は選択肢イのみです。
解法ステップ
- 問題文のキーワードを抽出する:「特別な記憶域」「処理速度の違いを緩和」など。
- 各選択肢を定義と照合する:バッファ、割り込み、デバイス抽象化、スプーリング/デバイスファイルを思い出す。
- キーワードに最も直接対応する選択肢を選ぶ(今回は「記憶域=バッファ」)。
- 残り選択肢が別概念(割り込み、ドライバ、スプーリング)であることを確認して除外する。
選択肢別の誤答解説
- ア: 「入出力装置が利用可能になったことを、入出力装置が処理装置に伝える。」
- これは割り込み(またはポーリングによる通知)の説明です。バッファの役割は通知やシグナルではなくデータの一時保存です。
- イ: 「入出力装置と処理装置との間に特別な記憶域を設け、処理速度の違いを緩和する。」
- 正解。バッファの定義の典型例で、データの一時蓄積により速度差を吸収し非同期転送を可能にします。
- ウ: 「入出力装置と処理装置との間のデータ交換に階層を設けることによって、入出力装置固有の仕様を意識せずに利用できる。」
- これはデバイスドライバや入出力抽象化(デバイスインタフェース)の説明です。バッファはあくまで記憶域であり抽象化そのものではありません。
- エ: 「入出力装置をファイルと同じように取り扱えるようにする。」
- これはスプーリングやUNIXのデバイスファイル/ストリーム抽象のイメージに近い記述で、バッファ単体の機能説明ではありません。
よくある誤解
- 「入出力装置が利用可能になったことを知らせる」はバッファの機能ではなく割り込みやポーリングの役割であると混同しやすい点。
- 「入出力装置固有の仕様を意識せずに使える」はデバイスドライバや抽象化の説明で、バッファの目的と異なります。
- 「装置をファイルと同じように扱う」はスプーリングやデバイスファイルの概念であり、バッファ自体の定義と混同しがちです。
補足コラム
バッファの具体例と種類
- ソフトウェアバッファ: OSのカーネルバッファ(ディスクI/Oバッファ、ネットワークソケットの送受信バッファ)やプログラム内部のリングバッファなど。
- ハードウェアバッファ: デバイス内蔵の FIFO、DMA バッファなど。
- ダブルバッファリング: 描画などで表示と生成を交互に行いちらつきを防ぐ手法。
- スプーリングとの違い: スプーリングはジョブ(印刷ジョブなど)を一旦蓄えて順次処理するシステム的仕組みで、バッファは単に転送を滑らかにするための記憶域です。用途とスコープが異なります。
FAQ
Q1: バッファとキャッシュは同じですか?
A1: 違います。バッファは入出力の速度差を吸収する一時記憶で、キャッシュは高速アクセスを目的にデータの複製を保持してアクセスを高速化する仕組みです。目的と管理ポリシーが異なります。
A1: 違います。バッファは入出力の速度差を吸収する一時記憶で、キャッシュは高速アクセスを目的にデータの複製を保持してアクセスを高速化する仕組みです。目的と管理ポリシーが異なります。
Q2: バッファはハードウェアだけの仕組みですか?
A2: いいえ。ハードウェアバッファ(デバイス内)とソフトウェアバッファ(OSやアプリ内)の両方があります。多くのシステムでは両者が組み合わさって動作します。
A2: いいえ。ハードウェアバッファ(デバイス内)とソフトウェアバッファ(OSやアプリ内)の両方があります。多くのシステムでは両者が組み合わさって動作します。
Q3: 試験で見分けるコツは?
A3: 「記憶域」「蓄える」「処理速度の違いを緩和する」といった語句があればバッファを想起し、それ以外の「通知」「抽象化」「ファイル扱い」といった語は別概念として切り分けてください。
A3: 「記憶域」「蓄える」「処理速度の違いを緩和する」といった語句があればバッファを想起し、それ以外の「通知」「抽象化」「ファイル扱い」といった語は別概念として切り分けてください。
関連キーワード: バッファ、入出力、I/O、バッファリング、割り込み、デバイスドライバ

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

