本實驗要求實現多種頁面替換演算法,然後利用隨機產生的引用串測試其效能。
fifo 需要乙個指向最老頁面的指標(陣列索引)。每當該頁面被替換的時候,把該指標加1即可。
lru 演算法則需要乙個尺寸為f 的陣列,該陣列用來實現排隊功能:每次處理乙個新的頁面引用時,則把該頁放置在佇列的末尾。這樣,每當需要淘汰乙個頁面時,從隊首取到的即最長時間未被用到的頁
面。 clock 演算法(也叫second chance 演算法)和fifo 演算法一樣,需要乙個指標。此外,它還需要乙個陣列,用來記錄每一幀的使用情況。
#include<>
#include <>
static int a,b,c;//三¨y個?存?儲é單¤元a
static int flag_a,flag_b,flag_c;//存?儲é單¤元a標¨志?位?
int optimal(int rs[200])
else if(*p2==b)
else if(*p2==c)
else p2++;
}if (flag_a+flag_b+flag_c==0)
while(p1<=&rs[199]);
}else if(flag_a+flag_b+flag_c==1)
else
}else
else if (flag_b==0)
else if (flag_c==0)
}}else p1++;
}while(p1<=&rs[199]&&p2<=&rs[199]);
return count;
}int fifo(int rs[200])
else p1++;
}return count;
}int rand(int rs[200])
else if(k%3==1)
else if(k%3==2)
}else p1++;
}return count;
}int lru(int rs[200])
else
else if (*p2==b)
else
}}return count;
}int main()
count1=optimal(rs);
count2=fifo(rs);
count3=lru(rs);
count4=rand(rs);
printf("最?佳?值換?算?法¤§的?次?數y是?:êo%d次?\n",count1);
printf("先¨¨進?先¨¨出?算?法¤§的?次?數y是?:êo%d次?\n",count2);
printf("最?近¨最?久?未使1用?算?法¤§的?次?數y是?:êo%d次?\n",count3);
printf("隨?機¨算?法¤§的?次?數y是?:êo%d次?\n",count4);
return 0;
}5 效能評測
平均替換次數是40次。
測試不同的引用串以及不同的虛擬記憶體尺寸,回答如下問題:
1. fifo 演算法是否比隨機替換演算法優越? lru 演算法比fifo 演算法優
越多少?
fifo演算法比隨機替換演算法優越,最近最久未使用演算法在rs長度為200的引用串中,替換了148次而先進先出演算法替換了164次。
2. lru 演算法和最優演算法有何差距?
根據未來實際使用情況將未來的近期裡不用的頁替換出去。這樣做的好處是可以盡可能的減少替換次數,從而達到最優。
3. clock 演算法和lru 演算法有何差距?
clock演算法暫時未實現。
通訊原理第三次實驗報告
實驗三 數字基帶傳輸系統 班級 學號 姓名 指導老師 於秀蘭 實驗室 yf316 時間 第十三周周二 三 四節 實驗目的 1 掌握數字基帶傳輸系統的誤位元速率計算 理解通道雜訊和碼間干擾對系統效能的影響 2 掌握最佳基帶傳輸系統中的 無碼間干擾傳輸 和 匹配濾波器 的設計方法 3 理解眼圖的作用,理...
第三次實驗
第三次實驗 流程控制綜合應用 1.實驗課的課堂上要考勤,計入平時成績。2.為第五周和第六周的實驗內容。3.第七周上課時提交紙質實驗報告。4.實驗報告內容包括 1 實驗題目 流程控制綜合應用 2 實驗目的 進一步學習流程控制應用程式設計 學習字串和陣列的綜合程式設計 學習異常處理方法 3 實驗內容 根...
第三次微電子電路實驗報告
姓名 徐德眾班級 計科1204班學號 201208010419 實驗目的 1.了解選頻網路的組成及其選頻特性 2.掌握rc正弦波振盪器的組成及其振盪條件 3.學會測量 除錯選頻網路和振盪器。實驗原理 實驗器材 示波器1臺 模擬電路實驗箱 函式訊號發生器 萬用表。實驗內容 實驗a 1 關閉系統電源。按...