页面置换算法

  • d1_487956
    了解作者
  • 189.8KB
    文件大小
  • rar
    文件格式
  • 0
    收藏次数
  • VIP专享
    资源类型
  • 0
    下载次数
  • 2022-06-10 06:00
    上传日期
《计算机与操作系统(第四版)》页面置换算法。先进先出(FIFO),最近最久未使用(LRU)算法
页面置换算法.rar
  • 页面置换算法
  • Debug
  • vc60.pdb
    44KB
  • FifthTest.obj
    3.8KB
  • vc60.idb
    41KB
  • Fifth.exe
    168KB
  • Fifth.pdb
    457KB
  • Fifth.ilk
    328.3KB
  • Fifth.pch
    211.1KB
  • FifthApp.obj
    7KB
  • Fifth.h
    135B
  • Fifth.ncb
    49KB
  • Fifth.dsw
    535B
  • Fifth.dsp
    4.4KB
  • Common.h
    59B
  • Fifth.opt
    47.5KB
  • FifthApp.c
    2.5KB
  • Fifth.plg
    244B
  • FifthTest.c
    781B
内容介绍
#include"Fifth.h" #include"Common.h" void FIFO(int number1, int number2, int a[], int b[][2]) { int i=0, j=0, k=0; int count=0; //缺页次数 int number= 0; int max,flag; for(i=0; i < number1; i++) { for(j=0; j<number2; j++) { if(b[j][0] == a[i]){ number=0; printf("\n页面:%d---> \n",a[i]); break; //命中 } else{ number++; if(number == number2) { number = 0; count++; max = b[0][1]; flag = 0; for(k=0; k<number2; k++) { if(max < b[k][1]){ max = b[k][1]; flag = k; } } b[flag][0] = a[i]; for(k=0; k<number2; k++) { if(b[k][0] != -1) b[k][1] += 1; } b[flag][1] = 0; printf("\n页面:%d--->\t",a[i]); for(k=0; k<number2; k++) { printf("%d\t",b[k][0]); } printf("\n"); //printf("页面:%d---> %d | %d | %d\n\n",a[i],b[0][0],b[1][0],b[2][0]); break; } } } } printf("\n\n缺页次数:%d\n",count); printf("页面置换次数:%d\n\n\n\n",count-3); } void LRU(int number1, int number2, int a[], int b[][2]) { int number = 0; int count = 0; int max = 0; int k,i,j,flag,m; for(i=0; i<number1; i++) { for(j=0; j<number2; j++) { if(b[j][0] == a[i]){ number=0; b[j][1] = 0; //命中就将标志设为最小值 flag = j; for(m=0; m<number2; m++) { if(m != j) b[m][1] += 1; } printf("\n页面:%d---> \n",a[i]); break; } else { number ++; if(number == number2) { count++; //缺页次数 number = 0; max = b[0][1]; flag = 0; for(k=0; k<number2; k++) { if(max < b[k][1]){ max = b[k][1]; flag = k; } } b[flag][0] = a[i]; for(k=0; k<number2; k++) { if(b[k][0] != -1) b[k][1] += 1; } b[flag][1] = 0; printf("\n页面:%d--->\t",a[i]); for(k=0; k<number2; k++) { printf("%d\t",b[k][0]); } printf("\n"); break; } } } } printf("\n\n缺页次数:%d\n",count); printf("页面置换次数:%d\n\n\n\n",count-3); } void menu() { printf("\t\t**************************************************\n"); printf("\t\t 1.先进先出(FIFO)页面置换算法\n"); printf("\t\t 2.最近最久未使用(LRU)页面置换算法\n"); printf("\t\t 3.退出\n"); printf("\t\t**************************************************\n"); }
评论
    相关推荐
    • 操作系统算法
      多级调度算法 银行家算法 磁盘调度算法 生产者—消费者问题,这些算法供大家参考。
    • 操作系统算法
      操作系统算法 该存储库包括调度算法
    • 操作系统算法实验报告
      实验一、进程控制实验 实验二、线程和进/线程管道通信实验 实验三、进程调度算法实验 实验四、进程同步实验 实验五、进程互斥实验 实验六、死锁问题实验 实验七、内存页面置换算法实验...实验九、文件系统接口实验
    • 操作系统LRU算法
      操作系统LRU算法
    • 操作系统算法模拟
      采用vs2010,C#语言完成,一共实现了三种模拟,处理器调度算法的模拟,内存分配策略的模拟,磁盘分配算法,解决方案下包含这三个项目,其中disc、mem采用.net 2.0,processor采用.net 4.0.
    • 十大经典操作系统算法
      这是含有是个操作系统中的诗歌经典算法的集合,含金量很大
    • 操作系统算法模拟系统
      操作系统课程设计,操作系统算法模拟系统——用以模拟操作系统课程涉及的相关算法,包括进程调度算法(不少于三个)、银行家算法、页面置换算法(不少于三个)和驱动调度算法(不少于三个),完成系统设计和课程设计...
    • 操作系统 SSTF 算法
      操作系统 实验 SSTF 算法
    • 操作系统算法:操作系统中的重要算法
      操作系统算法:操作系统中的重要算法
    • C语言模拟操作系统算法
      用C语言模拟操作系统拟分页式存储管理算法,学习操作系统的朋友,可以看一下!