xianjinxiachu.cpp
来自「先进先出 通过编写程序模拟实现单处理器系统的调度算法」· C++ 代码 · 共 117 行
CPP
117 行
#include "stdlib.h"
#include"iostream.h"
int b[4]={0};
int a[12]={4,3,2,1,4,3,5,4,3,2,1,5};
int m=0,n=0;
int i,j;
Print()
{
int i;
for(i=0;i<4;i++)
printf("%d ",b[i]);
printf("\n");
return 0;
}
FIFO()
{
printf("FIFO\n");
for(j=0;j<4;j++)
{
b[j]=a[j];
Print();
n++;
getch();
}
for(j=4;j<12;j++)
{
m=0;
for(i=0;i<4;i++)
if(a[j]==b[i])
{
m=1;
printf("\n");
getch();
break;
}
if(m==0)
{
for(i=0;i<3;i++)
b[i]=b[i+1];
b[3]=a[j];
Print();
n++;
getch();
//getche();
}
}
printf("FIFO page faults:%d\n",n);
printf("FIFO page fault rate:%f",(double)n/12);
getch();
return 0;
}
LRU()
{
int c=0;
n=0;
printf("\nLRU:\n");
for(j=0;j<4;j++)
{
b[j]=a[j];
Print();
n++;
getch();
}
for(j=4;j<12;j++)
{
m=0;
for(i=0;i<4;i++)
if(a[j]==b[i])
{
c=a[j];
for(i++;i<4;i++)
{
b[i-1]=b[i];
}
b[3]=c;
m=1;
printf("\n");
getch();
}
if(m==0)
{
for(i=0;i<3;i++)
b[i]=b[i+1];
b[3]=a[j];
Print();
n++;
getch();
}
}
printf("LRU page faults:%d\n ",n);
printf("LRU page fault rate:%f",(double)n/12);
getch();
return 0;
}
main()
{
clrscr();
printf("The page number:\n");
for(i=0;i<12;i++)
{
a[i]=random(10);
printf("%d ",a[i]);
}
printf("\n");
FIFO();
LRU();
getch();
return 0;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?