91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 7KB
    文件類型: .cpp
    金幣: 1
    下載: 0 次
    發布日期: 2021-05-05
  • 語言: C/C++
  • 標簽:

資源簡介

C 語言實現頁面置換算法,一共實現LRU置換算法 隨機置換算法 FIFO置換算法 Clock及改進型置換算法五個算法,可以算平均命中率。VC++6.0上可直接運行

資源截圖

代碼片段和文件信息

//?test頁面置換算法.cpp?:?Defines?the?entry?point?for?the?console?application.
//

#include?“stdafx.h“
#include?
#include?
#include?
#include?
#include?

typedef?struct?Page{
int ?ID; //頁面號
int??stayTime;??????????//內存中駐留時間
int??unUseTime;?????????//已經多久未被使用
}CPage;

void?Rand()//隨機置換算法
{
cout<<“隨機值換算法:“< CPage?C_Page[4];
for(int?i=0;i<4;i++)//初始化內存頁面
{
C_Page[i].ID?=-1;
C_Page[i].stayTime?=0;
C_Page[i].unUseTime=0;
}
srand(time(NULL));
int?a?count=0;
for(i=0;i<20;i++)
{??
a=rand()%4;//產生置換的塊號
C_Page[i].ID=rand()%8;//產生一個新的請求頁面,并輸出
cout< if(C_Page[a].ID==C_Page[i].ID)
{
count+=1;
cout<<“命中頁面:“< }
else?C_Page[a].ID=C_Page[i].ID;
cout< }
cout<<“一共命中:“< double?c=count/20.0;
cout<<“命中率為:“<}
void?FIFO()//先進先出置換算法
{
cout<<“FIFO值換算法:“< double?count=0.0;
int?i?j?page[20]={70120304230321201701};
CPage?C_Page[4];
for(i=0;i<4;i++)//初始化內存頁面
{
C_Page[i].ID?=-1;
C_Page[i].stayTime?=0;
C_Page[i].unUseTime=0;
}
for(i=0;i<20;i++)
{
int?success=0?unuse=-1?unuse_t=0?stay_t=0?stay;
cout< if(page[i]>=0)
{
for(j=0;j<4;j++)//對頁面進行訪問,查看是否已存在
{
if(C_Page[j].ID?==?page[i])//命中的情況
{
count+=1.0;
C_Page[j].stayTime?+=1;//每訪問一次,頁面滯留時間加1
C_Page[j].unUseTime?=0;
success?=1;//成功命中標志
}
else?if?(C_Page[j].ID? {
C_Page[j].unUseTime?+=1;
if(C_Page[j].unUseTime?>?unuse_t)
{
unuse=j;
unuse_t=C_Page[j].unUseTime;
}
}
else //頁面駐留時間加1
{
C_Page[j].stayTime?+=1;
if(C_Page[j].stayTime?>?stay_t)
{
stay_t=?C_Page[j].stayTime;
stay=j;
}
}
}
}
if(success==1)cout<<“命中頁面:“< else?if(success==0?&&?unuse>=0)//存在空閑頁面
{
C_Page[unuse].ID?=?page[i];
C_Page[unuse].stayTime?=1;
C_Page[unuse].unUseTime?=0;
}
else //沒有命中且沒有空閑頁面
{
C_Page[stay].ID?=?page[i];
C_Page[stay].stayTime?=1;
C_Page[stay].unUseTime?=0;
}
cout< }
double?c=count/20.0;
cout<<“命中率為:“<}
void?LRU()//最近最久未使用置換算法
{
cout<<“LRU值換算法:“< double?count=0.0;
int?i?j?page[20]={70120304230321201701};
CPage?C_Page[4];
for(i=0;i<4;i++)//初始化內存頁面
{
C_Page[i].ID?=-1;
C_Page[i].stayTime?=0;
C_Page[i].unUseTime=0;
}
for(i=0;i<20;i++)
{
int?success=0?unuse=-1?unuse_t=0?stay_t=0?stay;
cout< if(page[i]>=0)
{
for(j=0;j<4;j++)//對頁面進行訪問,查看是否已存在
{
if(C_Page[j].ID?==?page[i])//命中的情況
{
count+=1.0;
C_Page[j].stayTime?=1;//命中后頁面停留時間置為1
C_Page[j].unUseTime?=0;
success?=1;//成功命中標志
}
else?if?(C_Page[j].ID? {
C_Page[j].unUseTime?+=1;
if(C_Page[j].

評論

共有 條評論

相關資源