![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
No.8
- 回答日時:
手元に資料がなく記憶だよりなので、自信無しと言うことで、ちょっと別の方向から
キャッシュとバッファ、どちらもIBMが起源で、本来は、制御するアルゴリズムが違います。
ただ、キャッシュについては、初期にはIBMがパテントを有していたんだか、非公開だったかしたために、同様の動作をバッファにさせようとしたホストメーカーもあったため、動作や用途が混ざってしまったのです。
IBMのパテントが切れるまでは、キャッシュという名称を使えなかった(と聞く)のが混乱の原因かもしれません。
No.7
- 回答日時:
必ずしも厳密に区別して使われていないですが、本来の(?)区別を言うなら、こういうことかな。
・読み出しバッファからデータを読み出したら、そのデータはバッファから削除される。がキャッシュからデータを取り出しても、そのデータはキャッシュに残っている(事もあり得る)。
・バッファはシーケンシャルアクセス、キャッシュはランダムアクセス指向。つまり、バッファは「次のデータを(XXバイト)取り出す」あるいは「データをXXバイト書き込む」という操作しかない。それにたいして、キャッシュは「○○の位置のデータを(XXバイト)読み出す」とか「(XXバイトの)データを位置○○に書き込む」というように位置指定を伴った操作になる。
つまり、キャッシュでは同じ位置のデータを2回読み出すということがあり得て、その場合は、本来の記録装置へのアクセスは1回しか起きないことがあり得ます(2回アクセスすると言っても2回のアクセスの間の時間が長く空いたらキャッシュにデータが残ってないこともある)。
No.6
- 回答日時:
元の英単語はこれです。
buffer
http://dictionary.goo.ne.jp/search.php?MT=buffer …
cache
http://dictionary.goo.ne.jp/search.php?MT=cache& …
で、一時保管ということに関しては同じことですが、buffer の方には緩衝の意味があります。つまりデータがどんどん来るが処理速度が遅いので一時的に貯めておいて後でそこから取り出して処理をする、というような使い方になっている場合が buffer です(PCとプリンタの間に入れるプリンタバッファというのが昔ありましたが、あんな感じです)。
キャッシュの方は一時的に入れておいてすぐに出し入れできるようにしておく場合に使われています(ディスクキャッシュとかキャッシュメモリとか)。これは主に低速なデバイスとの間に作っておいて、OSがそのデバイスとやりとりをする時に一時的にデータを入れておいて、2回目以降もデータが変化していなければキャッシュにあるデータを使用するなどの使用法です。
どちらにしても低速なデバイスとの間に作ることに関しては同じなので愛昧ではありますが、緩衝剤的な使われ方の場合は buffer と呼んでいいと思います。
![](http://oshiete.xgoo.jp/images/v2/common/profile/M/noimageicon_setting_04.png?e8efa67)
No.5
- 回答日時:
キャッシュは、次に使うかもしれないデータを、速く使えるようにためておくものなので、キャッシュされたデータは「使われないこともあります」
気持ちとしては、「データを使う側」の必要性から確保されるものです。
バッファは、データの準備ができているのに、受け手側が処理できないので、使うはずのデータを一時ためておくところ。
なので、バッファにためられたデータは、エラーでもない限り「使われます」
気持ちとしては、「データを生み出す側」の必要性から確保されるものです。
No.3
- 回答日時:
用途は違いますが、考え方や使い方は全く同じです。
キャッシュは、ある特定のデータを一時保管する領域で、比較的小規模な領域を指します。つまり、「必要なデータを必要だから保管する」という意味合いが強いです。
対してバッファは、システムなどがオーバーフローを起こさないように、溢れたデータを保管しておく領域で、比較的大規模な領域を指します。なので「データ量が多すぎるから仕方なく保管する」という意味合いが強くなります。
ゆえに、「ある特定の種類のデータを保管する大規模な領域」という場合、キャッシュもバッファも同じ意味で使われます。
No.2
- 回答日時:
http://e-words.jp/w/E38390E38383E38395E382A1.html
http://e-words.jp/w/E382ADE383A3E38383E382B7E383 …
例えるなら、バッファってのはバケツで、キャッシュってのはコップかな?
トイレを流すのに水道の水を流してたんじゃいつまでたっても流れない。「一度に大量に欲しい」。だからバケツに溜めるてから使う。
水を飲むのにいちいちペットボトルに入れてたら「時間がかかってしょうがない」。だからコップを使う。
http://e-words.jp/w/E382ADE383A3E38383E382B7E383 …
例えるなら、バッファってのはバケツで、キャッシュってのはコップかな?
トイレを流すのに水道の水を流してたんじゃいつまでたっても流れない。「一度に大量に欲しい」。だからバケツに溜めるてから使う。
水を飲むのにいちいちペットボトルに入れてたら「時間がかかってしょうがない」。だからコップを使う。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
スタライズとは、どういう意味...
-
LVMでHDDが壊れた時の対応
-
GerberデータからBmpデータへの...
-
Googleの衛星写真はいつ掲載さ...
-
VB.netのADOってなんですか?
-
Access 外部データ インポー...
-
キャッシュとバッファの違いは?
-
データベースの2GBって・・・?
-
accessで検索
-
CDや本の管理ソフト
-
Macとウィンドウズで使えるデー...
-
デュアルブートおよび仮想PCで...
-
VBAかSQL?
-
[ACCESS/VBA]動的にSQL文を...
-
accessを自宅のパソコンにイン...
-
Oracle で文字列からタイムスリ...
-
データベースとウェブ(WWW)の共...
-
OracleからSQLServer参照時の不...
-
Paradoxについて教えて下さい
-
データベースソフトのTCARDにつ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
キャッシュとバッファの違いは?
-
スタライズとは、どういう意味...
-
SQL Server にファイルを登録、...
-
LVMでHDDが壊れた時の対応
-
Access 外部データ インポー...
-
値がこの列の整合性制約に違反...
-
エクセルのマクロ
-
C#でint型をIntPtr型に変換した...
-
Perlで、「が」を、「...
-
エクセルから、パワーポイント...
-
EXCELの最大データ数
-
エクセルでのテプララベル作成
-
Accessでタブ区切りのテキスト...
-
UNIX時間をEXCEL上で日付・時間...
-
GerberデータからBmpデータへの...
-
自作Androidアプリのデータ引き...
-
アクセスのデータが書き換えら...
-
VB.netのADOってなんですか?
-
ADOでデータを送ってる最中はア...
-
ビット数とデータ幅について
おすすめ情報