资源简介
操作系统存储管理页面置换算法(OPT FIFO LRU LFU)完整代码
代码片段和文件信息
#include
#include
#include
using namespace std;
int *instruction=new int[320];//指令序列
int *page=new int[320];//指令序列变换后的页地址流
int pagenum=0;//用于存放将指令序列变换为页地址时页序列的编号
double lost=0;
int Msize;//内存中存放的页面数
int Inside[32];//内存中的页面号数组,最多32页
int *state=new int[32];//每个页面号对应的状态(是否在内存中)最多32页
int insert=0;//FIFO算法中表示当内存满的时候,新进入的页号放的位置
void IntoPage(int m);//第m条指令对应的页数
int isInside(int numberint Msize);//检测页号是否在内存中
void OPT(int numint Msize);//最佳置换算法(OPT)
void FIFO(int numint Msize);//先进现出置换算法(FIFO)
void LRU(int numint Msize);//最近最久未使用置换算法(LRU)
void LFU(int numint Msize);//最少使用置换算法(LFU)
void main()
{
int choice=0n=0s=0;//n控制指令执行时的循环次数,s为随机产生指令的起始地址
char choice2;
for(int i=0;i<=319;i++)
instruction[i]=i; //便于理解程序,初始化指令序列为指令号
cout<<“指令地址流生成完毕!“<
srand(time(0));
while(n<160)//每次循环执行两次指令
{
int m=rand()%(319-s)+s;//在[0319]的指令地址中随机选取一点m,s为随机产生指令的起始地址
IntoPage(m+1);//执行m+1的指令
int m1=rand()%(m+1);//在[0m+1]中随机选取一条指令并执行,令该指令的地址为m1
IntoPage(m1+1);//执行m1+1的指令
s=m1+2;
n++;
}
cout<<“页地址流生成完毕!\n“< cout<<“生成页地址流序列为:“;
for(i=0;i<320;i++)
cout<
do{
cout<<“\n\n请选择页面置换算法:\n“;
cout<<“1、OPT 最佳置换算法.\n“;
cout<<“2、FIFO 先进先出算法.\n“;
cout<<“3、LRU 最近最久未使用算法.\n“;
cout<<“4、LFU 最少使用算法.\n“;
cin>>choice;
switch(choice)
{
case 1:
{
cout<<“当前使用OPT 最佳置换算法!\n“;
for(Msize=4;Msize<=32;Msize++)//计算比较内存页面数由4到32的命中率
{
lost=0;
for(int j=0;j {
Inside[j] = 0;//初始化内存中存储的页面为空
}
for(int i=0;i<320;i++)
{
//cout<<“读入page[“< OPT(iMsize);
}
cout<<“页面数为“< cout<<“ 共“<<320<<“次“<<“缺失“< }
}break;
case 2:
{
cout<<“当前使用FIFO 先进先出置换算法!\n“;
for(Msize=4;Msize<=32;Msize++)//计算比较内存页面数由4到32的命中率
{
lost=0;
for(int j=0;j {
Inside[j] = 0;//初始化内存中存储的页面为空
}
for(int i=0;i<320;i++)
{
//cout<<“读入page[“< FIFO(iMsize);
}
cout<<“页面数为“< cout<<“ 共“<<320<<“次“<<“缺失“< }
}break;
case 3:
{
cout<<“当前使用LRU 最近最久未使用算法!\n“;
for(Msize=4;Msize<=32;Msize++)//计算比较内存页面数由4到32的命中率
{
lost=0;
for(int j=0;j {
Inside[j] = 0;//初始化内存中存储的页面为空
}
for(int i=0;i<320;i++)
{
//cout<<“读入page[“< LRU(iMsize);
}
cout<<“页面数为“< cout<<“ 共“<<320<<“次“<<“缺失“< }
}break;
case 4:
{
cout<<“当前使用LFU 最少使用置换算法!\n“;
for(Msize=4;Msize<=32;Msize++)//计算比较内存页面数由4到32的命中率
{
lost=0;
for(int j=0;j {
Inside[j] = 0;//初始化内存中存储的页面为空
}
for(i
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 8593 2011-12-22 12:47 存储管理--页面置换算法4种\存储管理页面置换\main.cpp
目录 0 2011-12-22 12:47 存储管理--页面置换算法4种\存储管理页面置换
目录 0 2011-12-22 12:49 存储管理--页面置换算法4种
----------- --------- ---------- ----- ----
8593 3
- 上一篇:《数据库原理及应用》复习资料全
- 下一篇:LC振荡器西勒
相关资源
- 第一美国银行采用NetApp统一存储简化
- 如何通过VMware虚拟桌面及NetApp存储管
- 嵌入式实时操作系统μC/OS-II与eCos的
- 嵌入式实时操作系统在DATU中的应用
- 嵌入式实时操作系统μC/OS-II下通用驱
- 嵌入式实时操作系统μC/OS-II在ARM上的
- 嵌入式操作系统的解析
- SAC型液压支架控制器检测平台的设计
- 基于MSP430单片机的实时多任务操作系
- 湖南大学操作系统实验报告
- 建立在Sun平台上的分层式存储管理系
- 中标麒麟操作系统指南
- 操作系统最新视频教材链接(百度网
- 操作系统教程课后习题答案
- 操作系统教程 第5版 费翔林 骆斌 pp
- IBM System Storage DS4000存储管理器拷贝服
- Linux操作系统下配置无密码的RSH访问
- 易语言仿真版源码易语言模拟版本源
- 嵌入式实时操作系统的RAM盘扩展
- 深入解析windows操作系统第六版 上册
- win7 和xp操作系统的打印机一键共享
- 深入解析Windows操作系统第6版 上下册
- 计算机408天勤2019数据结构计算机考研
- 计算机操作系统第4版超清
- 操作系统设计与实现 第三版 上下册
- 操作系统概念第九版原版辅助资源含
- 北航《操作系统》期末试题与答案
- 操作系统期末试卷与答案
- 自考操作系统上机含源代码
- 操作系统实验报告哲学家就餐问题、
评论
共有 条评论