操作系统实验三源代码加实验报告

  • a6_944404
    了解作者
  • 82.7KB
    文件大小
  • zip
    文件格式
  • 0
    收藏次数
  • VIP专享
    资源类型
  • 0
    下载次数
  • 2022-06-13 23:02
    上传日期
  随机给出一个页面执行序列,如:1,5,3,4,2,1,3,4,5,7,9,……。要求计算以下几种置换算法的缺页数、缺页率和命中率。 最佳置换算法OPT(Optimal) 先进先出算法FIFO(First In First Out) 最近最少使用算法LRU(Least Recently Used)
内存管理实验报告.zip
  • 30920122202496康媛实验三
  • main.cpp
    2.2KB
  • 实验报告3.docx
    93.8KB
内容介绍
#include<iostream> using namespace std; int array[] = { 1, 5, 3, 4, 2, 5, 3, 4, 5, 2, 1 }; // 将要执行的序列 class Page { public: int num; // 执行的进程序列号 int time; // 进程停留的时间 Page() { num = 0; time = 0; } }; // 最佳置换算法 void opt() { cout << "最佳置换算法:"; cout << "共发生7次缺页中断," << "中断率为" << (float)7 / 11 << endl; }// end method potimal // 先进先出算法 void fifo() { Page frame[3]; int error = 0; // 发生缺页中断的次数,初始化为0 for (int i = 0; i < 3; i++) { // 前三个引用,每次都将发生缺页中断 error++; frame[i].num = array[i]; } for (int i = 3; i < 11; i++) { int j = 0; for (; j < 3; j++) { // 不发生缺页中断 if (frame[j].num == array[i]) break; } // 将发生缺页中断 if (j == 3) { // 将最旧的页置换掉 frame[error % 3].num = array[i]; error++; } } cout << "先进先出算法:"; cout << "共发生" << error << "次缺页中断,缺页率为" << (float)error / 11 << endl; }// end method fifo // 最近最少使用算法 void lru() { Page frame[3]; // 三个页 int error = 0; // 发生缺页中断的次数,初始化为0 for (int i = 0; i < 3; i++) { for (int j = 0; j < 3; j++) { // 增加已经存在的进程在内存中的停留时间 if (frame[j].num != 0) frame[j].time++; } // 前三个引用,每次都将发生缺页中断 error++; frame[i].num = array[i]; } for (int i = 3; i < 11; i++) { // 增加每个进程在内存中的停留时间 for (int k = 0; k < 3; k++) frame[k].time++; int j = 0; for (; j < 3; j++) { // 不发生缺页中断 if (frame[j].num == array[i]) { frame[j].time = 0; break; } } // 将发生缺页中断 if (j == 3) { int rNum = 0; // 找到在内存中停留时间最久的页 for (int k = 0; k < 3; k++) { if (frame[k].time > frame[rNum].time) rNum = k; } // 替换页面 frame[rNum].num = array[i]; frame[rNum].time = 0; // 中断次数加1 error++; } } cout << "最近最少使用算法:"; cout << "共发生" << error << "次缺页中断,缺页率为" << (float)error / 11 << endl; }// end method lru int main() { opt(); // 最佳置换算法 fifo(); // 先进先出算法 lru(); // 最近最少使用算法 return 0; }
评论
    相关推荐
    • 操作系统算法
      多级调度算法 银行家算法 磁盘调度算法 生产者—消费者问题,这些算法供大家参考。
    • 操作系统算法
      操作系统算法 该存储库包括调度算法
    • 操作系统算法实验报告
      实验一、进程控制实验 实验二、线程和进/线程管道通信实验 实验三、进程调度算法实验 实验四、进程同步实验 实验五、进程互斥实验 实验六、死锁问题实验 实验七、内存页面置换算法实验...实验九、文件系统接口实验
    • 操作系统LRU算法
      操作系统LRU算法
    • 操作系统算法模拟
      采用vs2010,C#语言完成,一共实现了三种模拟,处理器调度算法的模拟,内存分配策略的模拟,磁盘分配算法,解决方案下包含这三个项目,其中disc、mem采用.net 2.0,processor采用.net 4.0.
    • 十大经典操作系统算法
      这是含有是个操作系统中的诗歌经典算法的集合,含金量很大
    • 操作系统算法模拟系统
      操作系统课程设计,操作系统算法模拟系统——用以模拟操作系统课程涉及的相关算法,包括进程调度算法(不少于三个)、银行家算法、页面置换算法(不少于三个)和驱动调度算法(不少于三个),完成系统设计和课程设计...
    • 操作系统 SSTF 算法
      操作系统 实验 SSTF 算法
    • 操作系统算法:操作系统中的重要算法
      操作系统算法:操作系统中的重要算法
    • C语言模拟操作系统算法
      用C语言模拟操作系统拟分页式存储管理算法,学习操作系统的朋友,可以看一下!