最近最久未使用(LRU)置换算法

来源:互联网 发布:单片机wifi通信编程 编辑:程序博客网 时间:2024/05/29 18:42
#include #include  #define mSIZE 3#define pSIZE 8 static int memery[mSIZE] = {0};static int process[pSIZE] = {0};//static int process[pSIZE] = {2,3,2,1,5,2,4,5,3,2,5,2};//static int process[pSIZE] = {7,10,1,2,10,3,10,4,2,3,10,3,2,1,2,10,1,7,10,1};void build();             //生成一个随机数序列 void LRU();               //最近最久未使用(LRU)置换算法 int main(int argc, char *argv[]){    printf("产生随机序列如下:\n");    build();    printf("最近最久未使用(LRU)置换算法 \n");    LRU();    system("PAUSE");     return 0;}void build(){     int i = 0;     for(i=0; imaxflag)                 {                       maxflag = flag[j];                       max = j;                 }            }                         if(n == -1)               //不存在相同进程           {                if(m != -1)          //存在空闲物理块                 {                     memery[m] = process[i];                     flag[m] = 0;                     for(j = 0;j <= m; j++)                     {                           flag[j]++;                     }                     m = -1;                }                else                //不存在空闲物理块                 {                     memery[max] = process[i];                     flag[max] = 0;                     for(j = 0;j < mSIZE; j++)                     {                           flag[j]++;                     }                     max = -1;                      maxflag = 0;                     count++;                }           }           else                    //存在相同的进程            {                 memery[n] = process[i];                 flag[n] = 0;                 if(m != -1)       //若存在空闲物理块                  {                      flag[m] = 0;                 }                 for(j = 0;j < mSIZE; j++)                 {                       flag[j]++;                 }                 max = -1;                  maxflag = 0;                 n = -1;           }            for(j = 0 ;j < mSIZE; j++)           {                 printf("%d  ",memery[j]);           }           printf("\n");     }      printf("页面换算次数为:%d\n",count);}
阅读全文
0 0