日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

编写程序来模拟计算机LRU算法,操作系统-页式虚拟存储管理程序模拟.doc

發布時間:2025/3/20 windows 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 编写程序来模拟计算机LRU算法,操作系统-页式虚拟存储管理程序模拟.doc 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

實 驗3: 頁式虛擬存儲管理程序模擬

實驗目的: 編寫程序來模擬計算機的兩種調度方式:

(1)先進先出算法

(2)最近最少使用算法

程序設計

FIFO()

FIFO()

LRU()

Msize加1

S=?

用戶內存空間msize=2

Msize≤32

是否用其他算法繼續

結 束

N

Y

1

2

Y

N

提示出錯,重新輸入

輸入算法號S

1≤S≤4

開 始

生成地址流

形成地址頁號

FIFO頁面置換算法

1在分配內存頁面數(AP)小于進程頁面數(PP)時,當然是最先運行的AP個頁面放入內存。

2這時有需要處理新的頁面,則將原來內存中的AP個頁面最先進入的調出(是以稱為FIFO),然后將新頁面放入。

3以后如果再有新頁面需要調入,則都按2的規則進行。

算法特點:所使用的內存頁面構成一個隊列。

LRU頁面置換算法

1當分配內存頁面數(AP)小于進程頁面數(PP)時,當然是把最先執行的AP個頁面放入內存。

2當需要調頁面進入內存,而當前分配的內存頁面全部不空閑時,選擇將其中最長時間沒有用到的那個頁面調出,以空出內存來放置新調入的頁面(稱為LRU)。

算法特點:每個頁面都有屬性來表示有多長時間未被CPU使用的信息。

結果分析

#include

#include

using namespace std;

const int MaxNum=320;//指令數

const int M=5;//內存容量

int PageOrder[MaxNum];//頁面請求

int Simulate[MaxNum][M];//頁面訪問過程

int PageCount[M],LackNum;//PageCount用來記錄LRU算法中最久未使用時間,LackNum記錄缺頁數

float PageRate;//命中率

int PageCount1[32];

bool IsExit(int i)//FIFO算法中判斷新的頁面請求是否在內存中

{ bool f=false;

for(int j=0;j

{if(Simulate[i-1][j]==PageOrder[i])//在前一次頁面請求過程中尋找是否存在新的頁面請求

{ f=true; }

}

return f;

}

int IsExitLRU(int i)//LRU算法中判斷新的頁面請求是否在內存中

{int f=-1;

for(int j=0;j

{if(Simulate[i-1][j]==PageOrder[i])

{ f=j; }

}

return f;

}

int Compare()//LRU算法找出內存中需要置換出來的頁面

{ int p,q;

p=PageCount[0];

q=0;

for(int i=1;i

{if(p

{p=PageCount[i];

q=i; }

}

return q;

}

void Init() //初始化頁框

{for(int k=0;k

{int n=rand()%320;//隨機數產生320次指令

PageOrder[k]=n/10;//根據指令產生320次頁面請求}

for(int i=0;i

{ for(int j=0;j

{ Simulate[i][j]=-1; }

}

for(int q=0;q

{PageCount[q]=0; }

}

void OutPut()//輸出

{int i,j;

cout<

for(j=0;j

{cout<

cout<

cout<

for(i=0;i<10;i++)

{for(j=0;j

{if(Simulate[i][j]==-1)

cout<

else

cout<

}

cout<

}

cout<

cout<

cout<

}

void FIFO()//FIFO算法

{int j,x=0,y=0;

LackNum=0,

Init();

for(j=0;j

總結

以上是生活随笔為你收集整理的编写程序来模拟计算机LRU算法,操作系统-页式虚拟存储管理程序模拟.doc的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。