先進先出FIFO頁面置換算法2_第1頁
先進先出FIFO頁面置換算法2_第2頁
先進先出FIFO頁面置換算法2_第3頁
先進先出FIFO頁面置換算法2_第4頁
先進先出FIFO頁面置換算法2_第5頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、 操作系統(tǒng)課外實踐報告項 目 名 稱: 頁面置換算法 所 在 班 級: 姓名: 學號: 組長: 小 組 成 員: 指 導 教 師: 支麗平 成 績 評 定: 頁面置換算法中的先進先出算法一 實驗目的 了解最佳頁面置換算法與先進先出FIFO頁面置換算法,并掌握其基本原理 二 實驗目標 用C+模擬最佳頁面置換算法與先進先出FIFO頁面置 換算法 三 實驗步驟 第一步,輸入系統(tǒng)為進程分配的物理塊數(shù)(m<=10) 第二步,輸入總頁面數(shù)(n<=30) 第三步,輸入頁面號引用串 第四步,系統(tǒng)自動給出演示數(shù)據(jù) 第五步,分析數(shù)據(jù) 第六步,重復一到五步驟 四 技術難點及解決方案 技術難點:如何找到最

2、久頁面 解決方案:建立一個時間數(shù)組,做標記 五 關鍵數(shù)據(jù)和算法流程 代碼如下:#include "iostream"#include "iomanip"/使用setw()時用到的頭文件#include "stdio.h"#include "stdlib.h"#include "conio.h" /使用getchar()時用到的頭文件using namespace std;#define Max 30/某進程調入內存中的最大頁面數(shù)#define Size 10/系統(tǒng)為某進程分配的最大物理塊數(shù)voi

3、d Init(int Block,int m)/初始化物理塊int i;for(i=0;i<m;i+)Blocki=-1;void creat(int Page,int n) /輸入頁面串引用號int i;for(i=0;i<n;i+)cin>>Pagei;void FIFO(int Page,int Block,int n,int m)/max_stay:比較當前內存中頁面駐留的最久時間,count:統(tǒng)計頁面置換次數(shù)/get:某物理塊是否等待駐入新頁面(-1:否)/flag:標記當前序號頁面是否已駐入內存(-1:否)/block_num:駐留內存時間最長的頁面所在的物

4、理塊序號/time標記對應序號的物理塊中頁面駐留時間int i,j,max_stay=0,count=0;int get=-1,flag=-1,block_num=-1;int timeSize;for(i=0;i<m;i+)/初始化timetimei=0;for(i=0;i<n;i+)for(j=0;j<m;j+)/有空閑物理塊時,頁面直接駐入內存空閑塊if(Blockj=-1)get=j;/物理塊j即將(/等待)駐入新頁面break;for(j=0;j<m;j+)/查找序號相同的頁面if(Blockj=Pagei)/物理塊j中頁面與當前期望調入內存的頁面相同flag

5、=j;break;for(j=0;j<m;j+)/找到駐留內存時間最久的頁面置換出if(timej>max_stay)max_stay=timej;block_num=j; /block_num標記當前序號物理塊中頁面駐留時間最久if(flag=-1)/不存在相同頁面if(get!=-1)/物理塊即將(/等待)駐入新頁面Blockget=Pagei;/存入頁面timeget=0;/當前物理塊重新計時for(j=0;j<=get;j+)/已駐入頁面的駐留時間加1timej+;get=-1;else/頁面調度置換,序號block_num的物理塊是駐留時間最久的Blockblock

6、_num=Pagei;timeblock_num=0;for(j=0;j<Size;j+)timej+;block_num=-1;max_stay=0;count+;else/待調入頁面與序號flag的物理塊中頁面相同for(j=0;j<m;j+)timej+;flag=-1;for(j=0;j<m;j+)/輸出物理塊中的頁面駐入情況cout<<setw(3)<<Blockj;cout<<endl;if(n>m)count=count+m;cout<<"缺頁中斷次數(shù)為:"<<count<

7、;<endl;void main()int n,m,PageMax,BlockSize;cout<<"*先進先出FIFO頁面置換算法*"<<endl;cout<<"-"<<endl;cout<<"*(默認:-1表示物理塊空閑)*"<<endl;cout<<endl<<"請輸入系統(tǒng)為進程分配的物理塊數(shù)(m<=10):"while(1)cin>>m; if(m>Size|m<1) cout<<"警告:輸入的數(shù)據(jù)錯誤!"<<endl; cout<<"請重新輸入物理塊數(shù):" else break;Init(Block,m);cout<<"請輸入總頁面數(shù)(n<=30):"cin>>n;cout<<"n請輸入頁面號引用串:"cre

溫馨提示

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

評論

0/150

提交評論