ベストアンサー
(複数の)A2Aに感謝します。
キャッシュされたデータは一部ですコンピュータ/電話/かつて非常に懸命に働いていたもの(潜在的に遅いネットワークを介してロードされた、または多くのCPUを使用しなければならなかった、あるいはディスクから読み取らなければならなかった)のデータ。それは、最初にそれを取得/作成するために使用されたものよりも速くどこかに保存されます。したがって、ディスク上のファイルがキャッシュされている場合、そのファイルはディスクにキャッシュされておらず、メモリにキャッシュされています。ネットワークからのファイルがキャッシュされている場合、そのファイルはメモリまたはディスク(あるいはその両方)にキャッシュされている可能性があります。
コンピュータにはさまざまなキャッシュがあります。 たくさん。コンピュータのRAMのように「高速」と思われるものでも、実際にはCPUにRAM値のキャッシュがあるほど十分に低速です。プログラムには、さまざまな目的のために複数のキャッシュがあることがよくあります。オペレーティングシステムはディスクファイルをRAMにキャッシュし、WebページをRAMやディスクにキャッシュするものを提供することがよくあります。
キャッシュされたデータはすべて、再度作成またはフェッチできるものである必要があります。場合によっては、実際にはできないことがあります。たとえば、ウェブページの画像がキャッシュされていて、ネットワークがないときに何らかの理由でキャッシュがクリアされた場合、ネットワークが戻るまでその画像を取り戻すことはできません…またはWebページが変更された可能性があります。その場合、値は元に戻りません。
一部のキャッシュには、古くなるのを防ぐためのメソッドが組み込まれています(たとえば、Webサイトが毎日画像を変更しない場合など)。 「速い」という理由だけで先月の写真を見たい)。これは、実際にはコンピュータサイエンス(キャッシュの無効化)で難しい問題の1つです。たくさんのポリシーが存在します。一般的なものには、「古いものを捨てる」、「Webサイト/ファイルシステム/状況が変わったかどうかを尋ねる」、個人的なお気に入りの「誰が気にする」などがあります。
つまり「理論上」投げるキャッシュを離れても問題は発生しません…また、キャッシュを修正することもできません。現実の世界を除いて、キャッシュ無効化ポリシーが間違っている可能性があり、古いデータがキャッシュされて古くなっている場合を除いて、キャッシュをクリアするとそれが修正されます(うわー!)。現実の世界では、データも「古くなっている」可能性がありますが、現在は再フェッチできないため、キャッシュをクリアすると問題が発生します(boo!)。
キャッシュをクリアすると、問題が発生します。かつてキャッシュにあり、再び必要なものが計算/フェッチされている間は遅くなります。
回答
コンピュータ内:)
キャッシュはSRAM(スタティックRAM)としても知られているハードウェアの一部です。非常に優れた性能を発揮します。ただし、これにはコストがかかります。文字通り。 SRAMも非常に高価であるため、多くの$$$と同様のコスト。私たちのコンピューターが完全にSRAMで構成されているとしたら、それらは信じられないほど高価になるでしょう。誰もそれらを買う余裕がないほど多くのように。したがって、SRAMを使用する理由はわかりますが(DRAMやディスクスペースよりも大幅にパフォーマンスが優れています)、非常に高価な場合は、なぜ使用するのでしょうか。実用的ではありませんよね?
はい、そうです。ただし、一部の賢いエンジニアは妥協案を考えました。コンピュータアーキテクチャの大部分がまだDRAMとディスクスペースで構成されている場合(手頃な価格にするため)、消費者を満足させるパフォーマンスを維持するために、必要なのはSRAMの小さなスライバーだけでした。多くのコンピュータのパフォーマンス。キーワード:「小さなスライバー」
では、「LRUキャッシュ」はどこで使用されますか?ええと、それ自体で「LRUキャッシュ」と呼ばれるものは実際にはありません。最新のキャッシュは、SRAMの小さな断片と考えることができますが、データを保持するための無限のスペースはありません。一般的な消費者がWebを閲覧している場合は、WebページからWebページ、プラットフォームからプラットフォーム、データに絶えず移動します。コンピュータのターンオーバーは非常に高くなります。
データのターンオーバーが非常に高くなる傾向がある場合、SRAMのこの「小さなスライバー」をどのように利用できますか?私たちが行うことは、再び使用する可能性が最も高いデータを決定し、それらのデータをSRAM(キャッシュ)の小さなスライバー内に保持するように最善を尽くして、次に共通にアクセスする必要があるときです。データはSRAMのスライバーに保持されているため、コンピューターはそのデータに非常に高速にアクセスできます。そして、何を保持し、何を保持しないかをどのように正確に決定しますか?これがまさに「LRUキャッシュ」の概念の出番です。さまざまな理由(完全に関連付けられている、設定されている関連付け、直接マッピングされているなど)で使用されるさまざまなキャッシュレイアウトがありますが、それぞれに長所と短所があります。 OSがSRAMに保持するデータと破棄するデータを決定する一般的な方法は、最近アクセスされたデータを確認することです。理にかなっていますか?何かをクリックしただけで、その前日、前日、前日などをクリックした場合…。そのデータをSRAMに保持しておくのはおそらく理にかなっているので、次にクリックしたときにBOOMがハートビートでプルアップします。しかし、3か月前にクリックして以来、クリックしていないWebサイトについてはどうでしょうか。データの回転率が増加し続けると、ある時点でOSがSRAMから何を起動する必要があるかを判断する必要があり、このWebサイトは3か月間クリックされていないと言うのでしょうか。 これは、キャッシュ内で最も最近使用されていないデータなので、それを開始しましょう。
キャッシュは、SRAMと呼ばれる、非常に優れたパフォーマンスを備えたハードウェアです。 LRUエビクションアルゴリズムは、OSがどのデータを保持してその貴重なSRAMからエビクトするかを決定する方法です。