2016-07-20 4 views
0

異なるキャッシュ領域(OS)の違いを伝えるのは苦労しています。 disk \ buffer \ swap \ page cacheについての簡単な説明が大好きです。彼らはどこに住んでいますか?彼らの主な違いは何ですか?Linuxのメモリ管理(キャッシュ)

ページキャッシュは、I/Oデバイスから取得したページを格納するメインメモリの一部です。 バッファキャッシュとディスクキャッシュは同じですか?彼らはI/Oデバイスで "生きていますか"?

多くの感謝!

答えて

4

Linuxでは、2つのキャッシュが異なります。ファイルはページキャッシュにあり、ディスクブロックはバッファキャッシュにあります。ほとんどのファイルはディスク上のファイルシステムで表現されているため、各キャッシュに1回ずつデータが2回表示されていました。多くのUnixシステムも同様のパターンに従います。

しかし、カーネルはまだブロックではなくブロック単位でブロックI/Oを実行する必要があるため、バッファキャッシュは維持されます。ほとんどのブロックがファイルデータを表すので、バッファキャッシュの大部分はページキャッシュによって表される。しかし、少量のブロックデータはファイルバックアップされたものではなく、メタデータやローブロックI/Oなどのため、バッファキャッシュによってのみ表されます。

2

ディスクキャッシュ/バッファ・キャッシュ

このキャッシュは、ブロックI/Oを最適化するために、ディスクブロックをキャッシュします。

ディスクへのアクセスを高速化するために使用されるRAMです。ディスクに埋め込まれているか、またはメインメモリの一部として使用できます。

スワップキャッシュ/ページのキャッシュファイルの

このキャッシュキャッシュページがファイルを最適化するために、I/O

スワップキャッシュはページテーブルエントリのリストです。このページ・テーブル・エントリは、スワップ・ページのスワップ・ファイルとスワップ・ファイル内のそのスワップ・ファイルの位置を保持しているため、スワップ・ファイルに格納されます。

これはディスク上に存在します。

+0

ありがとう、マハラジ! – elti

+0

回答を受け入れるにはどうすればよいですか?私はここに新しいし、任意の受け入れのオプションを見つけることができません – elti