?? ymzh.c
字號:
頁式虛擬存儲管理程序模擬這個算法總是淘汰最先進入內存的頁面,即選擇在內存中駐留時間最久的頁面予以淘汰.程序設計及實現過程 先產生一串隨機數放在數組中,然后輸出這個數組,表示頁面號引用串.然后進行計算并輸出結果.這里我使用了一個數組來存放當前內存的頁面號,當產生新的頁面申請時,判斷數組中有與之相同的數嗎,若有則直接輸出這個數組,若沒有則舍去最下面的數讓上面的數依次放在下面,把新產生的數放在最上面.然后在數據下面輸出一個*號,代表發生了缺頁中斷. 結果: 輸出發生幾次缺頁中斷和頁面置換. 分析: 利用一個計數變量,只要發生中斷就加1,最后輸出就行了.#include<iostream.h>void main(){ cout<<"****************************************"<<endl; cout<<" FIFO算法置換 "<<endl; cout<<"****************************************"<<endl; int n,m,k; int i=0,j=0,count=0; int a[32],b[32]; cout<<"請輸入內存容量m:"; cin>>m; cout<<"請輸入頁面次序:"<<endl; for(i=0;i<10;i++) { cin>>n; a[i]=n; } for(j=0;j<m;j++) //初始化b[j];使等于-1,表示開始時內存中無頁面. { b[j]=-1; } i=0; j=0; while(i<10){ for(k=0;k<m;k++){ if(b[k]==a[i]) { cout<<"內存中有這個頁面,直接訪問."<<endl; break; } } // 判斷內存中是否有該頁面. if(k==m) { if(b[m-1]<0) { b[j]=a[i]; cout<<b[j]<<"頁面進入內存 , "; count++; cout<<"產生"<<count<<"次缺頁"<<endl; j++; j=j%m; } else { count++; cout<<b[j]<<"被置換出去,產生"<<count<<"次缺頁" <<endl; b[j]=a[i]; j++; j=j%m; } }i++;} }
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -