第一賽解題報告problem j_第1頁
第一賽解題報告problem j_第2頁
第一賽解題報告problem j_第3頁
第一賽解題報告problem j_第4頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

ProblemJPageReplacement題目大意本題的意思是給你容量為m的頁面緩存,長度為n的頁面引用序列,當(dāng)緩存中沒有所需的頁面時會發(fā)生頁面錯誤,然后從內(nèi)存中讀取相應(yīng)頁面放入緩存中,如果緩存已滿則會從中選取一個丟棄,丟棄哪個頁面取決于所用的頁面置換算法。問使用“最近最少使用(LeastResentlyUsed)”頁面置換算法一共會發(fā)生多少次頁面錯誤。解題思路LRU算法每次選取最久沒有被引用過,也就是最近最少引用的頁面丟棄。本題需要考慮的是LRU算法的一個相對高效實現(xiàn)方法,只要比題目中所述的鏈表實現(xiàn)高效一些即可。實現(xiàn)方法有很多種,其中一種是使用隊列和Hash表,遇到頁面引用則把頁號壓入隊列,同時記錄此頁面在隊列中的個數(shù)。若超出緩存容量則從隊首彈出,隊首元素若在此隊列中只有一個,則彈出即可,否則一直彈出隊首元素,對應(yīng)頁面計數(shù)器數(shù)值減少,直至遇到一個只出現(xiàn)了一次的隊首元素。比如引用序列110334,在遇到最后一個引用頁面4時:緩存103,隊列11033,壓入4,彈出11,變成0334,對應(yīng)實際緩存為034核心代碼for(inti=0;i<n;++i){ scanf("%d",&page); if(hash[page]){ dq.push_back(page); tot++; hash[page]++; }else{ if(dq.size()-tot>=buffer){ while(hash[dq.front()]>1){ hash[dq.front()]--; dq.pop_front(); tot--; } hash[dq.front()]--; dq.pop_front(); } dq.push_back(page); hash[p

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論