• 大小: 4KB
    文件类型: .c
    金币: 1
    下载: 0 次
    发布日期: 2021-06-09
  • 语言: 其他
  • 标签: 操作系统  

资源简介

在一个请求分页系统中,设页面大小占100个单元,假如系统分配给一 个作业的物理块数为3,试求出用FIFO,LRU,OPT三种算法在程序访问 过程中所发生的缺页次数及缺页率,每次中断时都需要打印出来或者 标示出来。(假设最初页面都在外存) 1. 假定此作业的访问地址序列为202,313,252,111,546, 217,444,544,365,223,398,111。 2. 输入任意的访问序列,也必须正确显示。

资源截图

代码片段和文件信息

#include
#include
using namespace std;
int array[100];
int page[100];
int pageSize=3size;
bool bre;
bool isEqual(queue queint num)
{
while(!que.empty())
{
if(que.front()==num)
return true;
que.pop();
}
return false;
}
void print(queue queint p)
{
cout<<“调用的页面为:“< if(bre)
cout<<“    产生中断: “;
else
cout<<“    不产生中断: “;
while(!que.empty())
{
cout< que.pop();
}
cout<}
queue LRU_update(queue queint num)
{
queue que1;
while(!que.empty())
{
if(que.front()!=num)
{
que1.push(que.front());
}
que.pop();
}
que1.push(num);
return que1;
}
queue OPT_update(queue queint insert_elementint remove_element)
{
queue que1;
while(!que.empty())
{
if(que.front()!=remove_element)
que1.push(que.front());
que.pop();
}
que1.push(insert_element);
return que1;

int select_most_far(int indexqueue que)
{
int a=que.front();
que.pop();
int b=que.front();
que.pop();
int c=que.front();
int dis1=10000000dis2=10000000dis3=10000000imax;
index++;
for(i=index;i {
if(page[i]==a)
{
dis1=i-index;
break;
}
}
for(i=index;i {
if(page[i]==b)
{
dis2=i-index;
break;
}
}
for(i=index;i {
if(page[i]==c)
{
dis3=i-index;
break;
}
}
int result;
if(dis1>dis2)
{
max=dis1;
result=a;
}
else
{
max=dis2;
result=b;
}
if(max>dis3)
return result;
else
return c;
}
void FIFO()
{
int queye=1i;
cout<<“FIFO“< queue que;
que.push(page[0]);
bre=true;
print(quepage[0]);
for(i=1;i {
if(!isEqual(quepage[i]))
{
bre=true;
if(que.size()<3)
{
que.push(page[i]);
queye++;
}
else
{
que.pop(

评论

共有 条评论