作業系統第三次實驗報告 頁面替換演算法

2022-09-29 08:48:03 字數 1759 閱讀 7820

本實驗要求實現多種頁面替換演算法,然後利用隨機產生的引用串測試其效能。

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 關閉系統電源。按...