资源简介

代码片段和文件信息
#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振荡器西勒
相关资源
- 升腾Win终端系统升级方法新版.doc
- Uninstall_Cortana_WINCLIENT.CN.rar
- STM32基于rt_thread操作系统的SDHC卡文件
- 操作系统 LRU算法 实验报告 及 程序代
- [免费]车载CE6.0操作系统
- 分页系统模拟实验 操作系统 课程设
- 模拟段页式虚拟存储管理中地址转换
- 操作系统实验——虚存管理实验
- 广工操作系统实验
- 广东工业大学操作系统实验四文件系
- Bochs入门教程[操作系统第一步]
- 模拟首次适应动态分区存储管理方案
- 操作系统课程设计完整版
- 磁盘调度算法的模拟实现及对比
- 模拟一个文件管理系统
- 二级文件系统(操作系统)
- uCOS编译环境建立 BC45 TASM
- Linux 操作系统实验(全)
- 操作系统实验综合设计【附代码】
- 操作系统共享内存实验
- 操作系统循环首次适应算法
- 操作系统课程设计实现可变分区存储
- 基于GTK的Linux环境下的简易任务管理器
- 操作系统课程设计 二级文件管理系统
- 加快Windows XP操作系统开机速度
- 操作系统教程课后答案华中科技大学
- 51单片机中使用ucos ii的优缺点转
- 51单片机中使用ucos ii的优缺点
- 嵌入式实时操作系统ucos-II 第二版 源
- 计算机操作系统课后_汤小丹_第四版
评论
共有 条评论