当前位置:首页 » 课程大全 » 页面置换算法课程设计

页面置换算法课程设计

发布时间: 2021-03-05 15:38:55

1. 求高手帮忙做一下课程设计,关于最佳页面置换算法的,

操作系统是计算机教学中最重要的环节之一,也是计算机专业学生的一门
重要的专业课程。
操作系统质量的好坏,
直接影响整个计算机系统的性能和用户
对计算机的使用。
一个精心设计的操作系统能极大地扩充计算机系统的功能,

分发挥系统中各种设备的使用效率,
提高系统工作的可靠性。
由于操作系统涉及
计算机系统中各种软硬件资源的管理,
内容比较繁琐,
具有很强的实践性。
要学
好这门课程,必须把理论与实践紧密结合,才能取得较好的学习效果。

本课程设计是学生学习完
《计算机操作系统》
课程后,
进行的一次全面的综
合训练,通过课程设计,让学生更好地掌握操作系统的原理及实现方法
,
加深对
操作系统基础理论和重要算法的理解,加强学生的动手能力。

熟悉页面置换算法及其实现,引入计算机系统性能评价方法的概念。

二、设计题目


页面置换算法模拟程序

2.1
设计内容

编制页面置换算法的模拟程序。

2.2
设计要求

1).
用随机数方法产生页面走向,页面走向长度为
L(15<=L<=20),L
由控制台输
入。

2).
根据页面走向,分别采用
Optinal

FIFO

LRU
算法进行页面置换,统计缺页
率。

3).
假定可用内存块为

11

int a;
t=Search(p[i].num,page);
if(t>=0)//
如果已在内存块中

{

page[t].time=0;//
把与它相同的内存块的时间置
0

for(a=0;a<M;a++)

if(a!=t)page[a].time++;//
其它的时间加
1

cout<<p[i].num<<" ";

cout<<"
不缺页
"<<endl;

}
else//
如果不在内存块中

{
n++; //
缺页次数加
1
t=Max(page);//
返回最近最久未使用的块号赋值给
t
page[t].num=p[i].num;//
进行替换

page[t].time=0;//
替换后时间置为
0

cout<<p[i].num<<" ";

print(page);

for(a=0;a<M;a++)

if(a!=t)page[a].time++;//
其它的时间加
1
}

i++;

}

cout<<"
缺页次数:
"<<n<<"
缺页率:
"<<n/m<<endl;

}

if(c==3)//OPT
页面置换

{
n=0;

cout<<"

******************************************
"<<endl;

cout<<endl;

cout<<" OPT
算法置换情况如下
:"<<endl;

cout<<endl;

cout<<"

******************************************
"<<endl;
while(i<m)

{

if(Search(p[i].num,page)>=0)//
如果已在内存块中

12

{

cout<<p[i].num<<" ";

cout<<"
不缺页
"<<endl;

i++;

}

else//
如果不在内存块中

{

int a=0;

for(t=0;t<M;t++)

if(page[t].num==0)a++;//
记录空的内存块数

if(a!=0)//
有空内存块

{

int q=M;

for(t=0;t<M;t++)

if(page[t].num==0&&q>t)q=t;//
把空内存块中块号最
小的找出来

page[q].num=p[i].num;

n++;

cout<<p[i].num<<" ";

print(page);

i++;

}

else

{

int temp=0,s;

for(t=0;t<M;t++)//
寻找内存块中下次使用离现在最久的
页面

if(temp<Count(page,i,t,p))

{

temp=Count(page,i,t,p);

s=t;

}//
把找到的块号赋给
s

page[s].num=p[i].num;
n++;

cout<<p[i].num<<" ";

13
print(page);

i++;

}

}

}

cout<<"
缺页次数:
"<<n<<"
缺页率:
"<<n/m<<endl;

}
}while(c==1||c==2||c==3);

return 0;
}

五.运行结果演示

m(3<=m<=5)

m
由控制台输入,初始时,作业页面都不在
内存。

4).
要求写出一份详细的设计报告。课程设计报告内容包括:设计目的、设计内
容、设计原理、算法实现、流程图、源程序、运行示例及结果分析、心得体会、
参考资料等。

2. 页面置换算法课程设计然后我手残党,运行不了,不知道错误在什么地方

OK ,我帮你搞定,

3. 页面置换算法的模拟实现

XXXXXXX

4. 要弄这个题目的课程设计,模拟实现页面置换算法,页面缓冲置换算法。

#include <iostream> #include <deque> #include <ctime> using namespace std; typedef struct { int id; //页面ID int stayTime; //内存中驻留时间 int unUseTime; //已经多久未被使用 }CPage; deque<int> RunQueue; deque<CPage> interPage; //内存中的四个页面 deque<CPage> exterPage; //外存中的N个页面 int presentSeat; //目前运行到了队列的第几个? int lackNum[3] ={0}; int getRandNum(int range) //返回[0,range)范围内的整数 { return static_cast<int>(rand()%range); } int findPageIdByCmdId(int cmdId) //通过强制转换成整数的形式判断指令属于哪个页面 { return static_cast<int>(cmdId/10); } void InitDevice() //初始化运行队列 按照25% 50% 25%的标准生成 { srand(static_cast<int>(time(NULL))); int t_cmdNum = getRandNum(320); //随机选择第一条指令 RunQueue.push_back(t_cmdNum); //将其插入队列 if(t_cmdNum < 319) RunQueue.push_back(t_cmdNum+1); //顺序执行下一条指令

5. 内存FIFO、LRU页面置换算法的设计

完整代码已发到你的邮箱了,请注意查收。记得一定要加分哦!!!!

6. 操作系统课程设计,用C#实现内存页面的置换。实现算法间比较

页面置换算法

一.题目要求:

通过实现页面置换算法的FIFO和LRU两种算法,理解进程运行时系统是怎样选择换出页面的,对于两种不同的算法各自的优缺点是哪些。

要求设计主界面以灵活选择某算法,且以下算法都要实现 1) 最佳置换算法(OPT):将以后永不使用的或许是在最长(未来)时间内不再被访问的页面换出。

2) 先进先出算法(FIFO):淘汰最先进入内存的页面,即选择在内存中驻留时间最久的页面予以淘汰。

3) 最近最久未使用算法(LRU):淘汰最近最久未被使用的页面。 4) 最不经常使用算法(LFU) 二.实验目的:

1、用C语言编写OPT、FIFO、LRU,LFU四种置换算法。 2、熟悉内存分页管理策略。 3、了解页面置换的算法。 4、掌握一般常用的调度算法。 5、根据方案使算法得以模拟实现。 6、锻炼知识的运用能力和实践能力。 三、设计要求

1、编写算法,实现页面置换算法FIFO、LRU;

2、针对内存地址引用串,运行页面置换算法进行页面置换; 3、算法所需的各种参数由输入产生(手工输入或者随机数产生); 4、输出内存驻留的页面集合,页错误次数以及页错误率;

四.相关知识:

1.虚拟存储器的引入:

局部性原理:程序在执行时在一较短时间内仅限于某个部分;相应的,它所访问的存储空间也局限于某个区域,它主要表现在以下两个方面:时间局限性和空间局限性。

2.虚拟存储器的定义:

虚拟存储器是只具有请求调入功能和置换功能,能从逻辑上对内存容量进行扩充的一种存储器系统。

3.虚拟存储器的实现方式:

分页请求系统,它是在分页系统的基础上,增加了请求调页功能、页面置换功能所形成的页面形式虚拟存储系统。

请求分段系统,它是在分段系统的基础上,增加了请求调段及分段置换功能后,所形成的段式虚拟存储系统。

4.页面分配:

平均分配算法,是将系统中所有可供分配的物理块,平均分配给各个进程。 按比例分配算法,根据进程的大小按比例分配物理块。

考虑优先的分配算法,把内存中可供分配的所有物理块分成两部分:一部分按比例地分配给各进程;另一部分则根据个进程的优先权,适当的增加其相应份额后,分配给各进程。

5.页面置换算法:

常用的页面置换算法有OPT、FIFO、LRU、Clock、LFU、PBA等。 五、设计说明

1、采用数组页面的页号

2、FIFO算法,选择在内存中驻留时间最久的页面予以淘汰;

分配n个物理块给进程,运行时先把前n个不同页面一起装入内存,然后再从后面逐一比较,输出页面及页错误数和页错误率。

3、LRU算法,根据页面调入内存后的使用情况进行决策;

同样分配n个物理块给进程,前n个不同页面一起装入内存,后面步骤与前一算法类似。

选择置换算法,先输入所有页面号,为系统分配物理块,依次进行置换: 六.设计思想:

OPT基本思想:

是用一维数组page[pSIZE]存储页面号序列,memery[mSIZE]是存储装入物理块中的页面。数组next[mSIZE]记录物理块中对应页面的最后访问时间。每当发生缺页时,就从物理块中找出最后访问时间最大的页面,调出该页,换入所缺的页面。

FIFO基本思想:

是用队列存储内存中的页面,队列的特点是先进先出,与该算法是一致的,所以每当发生缺页时,就从队头删除一页,而从队尾加入缺页。或者借助辅助数组time[mSIZE]记录物理块中对应页面的进入时间,每次需要置换时换出进入时间最小的页面。

LRU基本思想:

是用一维数组page[pSIZE]存储页面号序列,memery[mSIZE]是存储装入物理块中的页面。数组flag[10]标记页面的访问时间。每当使用页面时,刷新访问时间。发生缺页时,就从物理块中页面标记最小的一页,调出该页,换入所缺的页面。 七.流程图:

如下页所示

六.运行结果: 1. 按任意键进行初始化:

2. 载入数据:

3. 进入置换算法选择界面:

4.运算中延迟操作:

5.三种算法演示结果:

热点内容
武汉大学学生会辅导员寄语 发布:2021-03-16 21:44:16 浏览:612
七年级学生作文辅导学案 发布:2021-03-16 21:42:09 浏览:1
不屑弟高考成绩 发布:2021-03-16 21:40:59 浏览:754
大学毕业证会有成绩单 发布:2021-03-16 21:40:07 浏览:756
2017信阳学院辅导员招聘名单 发布:2021-03-16 21:40:02 浏览:800
查询重庆2018中考成绩查询 发布:2021-03-16 21:39:58 浏览:21
结业考试成绩怎么查询 发布:2021-03-16 21:28:40 浏览:679
14中医医师资格笔试考试成绩查分 发布:2021-03-16 21:28:39 浏览:655
名著赏析课程标准 发布:2021-03-16 21:27:57 浏览:881
北京大学商业领袖高端培训课程 发布:2021-03-16 21:27:41 浏览:919