ページ置換アルゴリズム、LRU
1850 ワード
ページ置換アルゴリズム
もしこのプロセスがもっと具体的であればvalidbit 0に変えて、~FIFOはなぜ採用されないのか!
プロセスが特定のページを必要とする場合、ページングシステムはそのページを物理メモリにロードする必要があります.
メモリに必要なページがある場合はうまくいきますが、ない場合は問題が発生します.処理するページがない場合は、ページポーリング(ページ障害)が発生し、ハードディスク(HDD)で必要なページを検索して空のフレームにロードします.再ページできる空のフレームがない場合は、問題が発生する可能性があります.
このとき、更新するページと置換する犠牲フレームを検索するアルゴリズムがページ置換アルゴリズムである.
LRU(Least-Recently-Used)
最も長い間使用されていないページを直訳するアルゴリズム.
最適アルゴリズムは実際に実装できないため,採用した方法は最適アルゴリズムの方式に相当する.
最適なアルゴリズムは、ページの使用時間を事前に知ることです.事前に理解できない場合は、過去のデータに基づいてページの使用時間を予測して置き換えることができます.最も長く使用されていないページを予測メソッドで置き換えます.
LRUは最適アルゴリズムよりもページ交換率が高いが、FIFOアルゴリズムよりも効率的である.
LRUアルゴリズムは多くのオペレーティングシステムで採用されているアルゴリズムであり、良いアルゴリズムとされている.
実際のエンコーディングテストケース
2018ココア公債初回キャッシュ
function solution(cacheSize, cities) {
let answer = 0;
const cache = [];
while(cacheSize !== 0 && cities.length !== 0){
const city = cities.shift().toLowerCase();
const idx = cache.findIndex((x)=>(x === city));
if(idx === -1){
if(cache.length >= cacheSize)
cache.shift();
answer = answer + 5;
}
else{
cache.splice(idx, 1);
answer = answer + 1;
}
cache.push(city);
}
return cacheSize === 0 ? cities.length * 5 : answer;
}
参考資料
bruney.log
Reference
この問題について(ページ置換アルゴリズム、LRU), 我々は、より多くの情報をここで見つけました https://velog.io/@kingyong9169/페이지-교체-알고리즘-LRUテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol