Adaptative Replacement Cache アルゴリズムを実装しようとしていますが、文献を読んでいて、アルゴリズムを理解できません。誰でもそのアルゴリズムを説明できますか? 2 つのリスト L1 を頻度に、L2 をリーセンシーに使用していることがわかります。しかし、L1 および L2 リストの T1、B1 および T2、B2 は理解できません。
2 に答える
T1 と T2 は、キャッシュされている実際のデータを保持します。T1 は、一度だけ参照されたすべてのデータ (ページ) を保持します。T2 は、2 回以上参照されたページを保持します。B1 は、T1 キャッシュにあったページを記憶するために使用されるゴースト リストです。B2 も同じですが、T2 キャッシュのみです。T1 と B1 を一緒に追加すると、一度参照されたためにキャッシュされていた、または現在キャッシュされているページへの参照のセット (L1 と呼ばれる) が得られます。同じことが L2 にも当てはまりますが、少なくとも 2 回参照されたページへの参照が含まれているだけです。
T1 と T2 は固定サイズのスロット セット (各スロットは 1 ページを保持できます) を共有し、B1 と B2 を使用してこれらのスロットを T1 と T2 間で共有する方法を決定します。これが ARC を適応させるものであり、誰が最も多くのスロットを取得するかの自動調整です。B1 が同じページへの複数の参照を保持している場合、T1 がそのページを十分長く保持できないことを意味し、これに対抗するためにより多くのスロットを許可する必要があります。B2も同様です。
ここでアルゴリズム全体を説明するつもりはありませんが、これは少なくとも ARC リストに関する私の理解です。