⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cunchu1.cpp

📁 广东工业大学操作系统课程设计(全) 广东工业大学操作系统课程设计(全 )
💻 CPP
字号:
#include <stdio.h>
#include<math.h>
#define maxsize 32
#include <stdlib.h>
#define vpf 200
void FIFO(int a[]);
int count[maxsize];
int a[vpf];
void main()                    //  定义主函数
{for(int i=0;i<200;i++)           // 用随机数产生页地址流 
  a[i]=rand()%32;
FIFO(a);
}
void FIFO(int a[])        //  FIFO算法
{   for(int n=4;n<33;n++) //不同的页面数计算命中率 
        { int num;
 int max;
 int maxpage=0;
 int dis=0;
 int i=0;
 int k=0;
 int sum=n;
 int b[maxsize]; 
 for (k=0;k<n;k++)   // 页面数组,计数数组初始化 
    { b[k]=-1;
     count[k]=0;}
 for (i=0;i<vpf;i++)
 {    num=0;
  for (k=0;k<n;k++)   // 测试是否命中 
  {  if(a[i]==b[k])
   num++;
  }
  if(num==0)        //未命中 
  {    dis++;
    for(k=0;k<n;k++)    // 所有页面计数器加一 
    count[k]++;
    if(sum==0)          //没空白页面时 
    {  max=0;
       for(k=0;k<n;k++)
       {   if(max<count[k])         // 找出计数器值最大的替换 
      {max=count[k];
       maxpage=k;
      }
}
    b[maxpage]=a[i];
    count[maxpage]=0;        //被替换页面计数器清零 
    }
  else {b[n-sum]=a[i];
    count[n-sum]=0;         //有空白页面时,将所缺页放入空白页面, 
    sum--;                 //  并将该页面计数器清零  
  }}}
 printf("%d",n);
 printf("  page frames FIFO:%3d",dis);
 printf("  FIFO:%6.4f\n",1-(float)dis/32);
}}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -