• 大小: 5KB
    文件类型: .cpp
    金币: 1
    下载: 0 次
    发布日期: 2021-06-10
  • 语言: C/C++
  • 标签: FIFO  

资源简介

操作系统实践作业 四种页面调度算法 FIFO,NUR,OPT等

资源截图

代码片段和文件信息

#include
#include
#include
using namespace std;
#define  M  320
int N;
struct Pro
{
int numtimefre;//数据,时间,标志
};
int  Search(int ePro *page1  )//验证驻留集中页面与新添加页面是否相同
{
Pro *page=new Pro[N];
page=page1;
for(int i=0;i if(e==page[i].num)
return i;
return -1;
}
void print(Pro *page1)//打印当前的页面
{
Pro *page=new Pro[N];
page=page1;
int i=0;
for(i=0;i cout< cout<}

int Max(Pro *page1)//找出离现在时间最长的页面
{
Pro *page=new Pro[N];
page=page1;
int e=page[0].timei=0;
while(i {
if(e e=page[i].time;
i++;
}
    for( i=0;i {
if(e==page[i].time)
return i;
}

return -1;
}
/*int Min(Pro *page1)//找出使用频率最小的page
{
Pro *page=new Pro[N];
page=page1;
int e=page[0].frei=0;
while(i {
if(e>page[i].fre)
e=page[i].fre;
i++;
}
int h=0;
    for( i=0;i {
if(e==page[i].fre)
return i;
}return -1;

}*/

int Compfu(Pro *page1int iint tPro p[M])//查询待使用的页面,返回存在驻留集中并且最后使用的页面
{
Pro *page=new Pro[N];
page=page1;

int count=0;
for(int j=i;j {
if(page[t].num==p[j].num )break;
else count++;
}
return count;
}

int main()
{
    
cout<<“可用内存页面数“< cin>>N;
Pro p[400];
Pro *page=new Pro[34];
char c;
int m=0t=0;
float n=0;

int i=0nrand=0;//产生随机数方法1
srand((unsigned)time(NULL)); 
for(i=0;i<320;i++)
{
p[i].num=rand()%32+1;
cout< }
cout<

/* int num[330];//产生随机数方法2
int n1=0;
int nrand=0;
nrand=rand()%32767;
n1=319*nrand/32767+1;
// if( n1==320) n1=319;
int i=0;
for(i=0;i<320;i+=4)
{
num[i]=n1;
num[i+1]=num[i]+1;
nrand=rand()%32767;
num[i+2]=num[i]*nrand/32767;
num[i+3]=num[i+2]+1;
nrand=rand()%32767;
n1=nrand*(318-num[i+2])/32767+num[i+2]+2;
}
for(i=0;i<320;i++)
{
p[i].num=num[i]/10;
p[i].num=p[i].num%32+1;
// if(p[i].num==32)
// p[i].num=0;
cout< }*/
// cout<
do{

for(i=0;i {
page[i].num=0;
page[i].time=0;
page[i].fre=0;
}

        i=0;
        cout<<“f:FIFO“< cout<<“l:LRU“< cout<<“o:OPT“< cout<<“n:NUR“< cout<<“按其它键结束“< cin>>c;

if(c==‘f‘)//FIFO页面置换
{
n=0;
while(i<320)
{
if(Search(p[i].numpage)>=0)//

评论

共有 条评论