操作系统实验三源代码加实验报告
- 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.cpp2.2KB
- 实验报告3.docx93.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语言模拟操作系统拟分页式存储管理算法,学习操作系统的朋友,可以看一下!
最新资源