位址對映過程中,若在頁面中發現所要訪問的頁面不再記憶體中,則產生缺頁中斷。當發生
缺頁中斷
時作業系統必須在記憶體選擇乙個頁面將其移出記憶體,以便為即將調入的頁面讓出空間。而用來選擇淘汰哪一頁的規則叫做
頁面置換演算法
。最簡單的頁面置換演算法是先入先出(
fifo
)法。
假定系統為某程序分配了三個物理塊,並考慮有以下頁面號引用串:7, 0, 1, 2, 0, 3, 0,4,2,3, 0, 3, 2, 1, 2, 0, 1, 7, 0, 1。釆用fifo演算法進行頁面置換,程序訪問頁面2時,把最早進入記憶體的頁面7換出。然後訪問頁面3時,再把2, 0, 1中最先進入記憶體的頁換出。由下圖可以看出,利用fifo演算法時進行了12次頁面置換。
訪問頁面70
1203
0423
0321
2017
01物理塊177
7222
4440
0077
7物理塊200
0333
2221
1100
物理塊311
1000
3332
221缺頁否√√
√√√√
√√√√
√√√√
√ **:
#include
#include
typedef struct item
pro;
/***設定查詢函式,在記憶體塊中尋找頁面是否存在
*存在則返回1,不存在返回-1
*/int search(pro *p,int flag,int mnum)
{int q=0;
for(int i=0;i
FIFO先進先出頁面置換演算法實現
學校要做的實驗,很久沒有寫 了orz,所以寫的很亂。不過可以直接提交到oj平台上。自己寫的 歡迎討論。fifo先進先出頁面置換演算法,是最早出現的頁面置換演算法,該演算法總是淘汰最先進入記憶體的頁面。以下是 include include include using namespace std fi...
頁面置換 先進先出置換(FIFO)
先進先出置換 淘汰最先進入記憶體的頁面 輸入 記憶體物理塊的大小,以及頁面號引用串的大小,引用串的各個頁面編號。輸出 被置換出去的頁面編號。執行結果 所需的資料結構 頁面 struct page 輔助函式 在記憶體中尋找最先進入記憶體的頁面。返回記憶體下標。int findfirst page q,...
先進先出(FIFO)頁面置換演算法 C語言實現
假設每個頁面中可存放10條指令,分配給作業的記憶體塊數為4。用c語言模擬乙個作業的執行過程,該作業共有320條指令,即它的位址空間為32頁,目前它的所有頁都還未調入記憶體。在模擬過程中,如果所訪問的指令已在記憶體,則顯示其實體地址,並轉下一條指令。如果所訪問的指令還未裝入記憶體,則發生缺頁,此時需記...