页面置换算法课程设计报告.docx

上传人:b****5 文档编号:7644721 上传时间:2023-01-25 格式:DOCX 页数:12 大小:448.65KB
下载 相关 举报
页面置换算法课程设计报告.docx_第1页
第1页 / 共12页
页面置换算法课程设计报告.docx_第2页
第2页 / 共12页
页面置换算法课程设计报告.docx_第3页
第3页 / 共12页
页面置换算法课程设计报告.docx_第4页
第4页 / 共12页
页面置换算法课程设计报告.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

页面置换算法课程设计报告.docx

《页面置换算法课程设计报告.docx》由会员分享,可在线阅读,更多相关《页面置换算法课程设计报告.docx(12页珍藏版)》请在冰豆网上搜索。

页面置换算法课程设计报告.docx

页面置换算法课程设计报告

课程设计报告

设计题目:

页面置换算法

班级:

科技一班

组长学号:

组长姓名:

指导教师:

设计时间:

2017年3月

 

设计分工

 

组长学号及姓名:

E11414103叶传军

分工:

算法设计,整体构架,课程实验报告

成绩:

95

组员1学号及姓名:

E11414101周坚坚

分工:

界面设计,代码整理,背景制作

成绩:

96

摘要4

1.设计目的5

2.课设要求5

3.系统分析6

4.系统设计6

4.1问题分析6

4.2程序整体框图7

4.3FIFO算法8

4.4LRU算法9

4.5OPT算法10

4.6LFR算法11

5.功能与测试12

6.结论14

7.心得体会15

8.附录15

 

摘要

随着计算机的普及,人们生活得到极大改善,人们在精神方面也同样需要提高,所以越来越多的人进行着各种各样的学习。

操作系统是计算机中最重要的环节之一,也是计算机专业学生的一门重要的专业课程。

操作系统的好坏,直接影响整个计算机系统的性能和用户对计算机的使用。

一个精心的操作系统能极大的扩展计算机的性能,充分发挥系统中的各种设备的使用效率,提高系统的可靠性。

由于操作系统中各种软硬件资源的管理,内容比较繁琐,具有很强的实践性,要学好这门课程,必须把理论和实践紧密结合,才能取得较好的学习效果。

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

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

关键词:

页面置换算法,LRU算法,OPT算法,FIFO算法,LFR算法

1.设计目的

1、存储管理的主要功能之一是合理地分配空间。

请求页式管理是一种常用的虚拟存储管理技术。

本次设计的目的是通过请求页式存储管理中页面置换算法模拟设计,了解虚拟存储技术的特点,掌握请求页式管理的页面置换算法。

2、提高自己的程序设计能力、提高算法设计质量与程序设计素质;

2.课设要求

设计一个请求页式存储管理方案。

并编写模拟程序实现之。

要求包含:

1.过随机数产生一个指令序列,共320条指令。

其地址按下述原则生成:

①50%的指令是顺序执行的;

②25%的指令是均匀分布在前地址部分;

③25%的指令是均匀分布在后地址部分;

具体的实施方法是:

在[0,319]的指令地址之间随机选区一起点M;

顺序执行一条指令,即执行地址为M+1的指令;

在前地址[0,M+1]中随机选取一条指令并执行,该指令的地址为M’;

顺序执行一条指令,其地址为M’+1;

在后地址[M’+2,319]中随机选取一条指令并执行;

重复A—E,直到执行320次指令。

2.指令序列变换成页地址流

设:

(1)页面大小为1K;

用户内存容量为4页到32页;

用户虚存容量为32K。

在用户虚存中,按每K存放10条指令排列虚存地址,即320条指令在虚存中的存放方式为:

第0条—第9条指令为第0页(对应虚存地址为[0,9]);

第10条—第19条指令为第1页(对应虚存地址为[10,19]);

第310条—第319条指令为第31页(对应虚存地址为[310,319]);

按以上方式,用户指令可组成32页。

3.计算并输出下述各种算法在不同内存容量下的命中率。

FIFO先进先出的算法

LRU最近最少使用算法

OPT最佳淘汰算法(先淘汰最不常用的页地址)

LFR最不经常使用算法

3.系统分析

在多道程序环境下,要使程序运行,必须先为之创建进程。

而创建进程的第一步是将程序和数据装入内存。

存储器实现的功能主要是内存分配等功能,本模拟系统所要实现的就是将进程的程序和数据装入内存(物理块)。

具体需要实现的功能如下:

1、读入进程大小,进行分页,确定每一页的指令地址范围;

2、读入一个指令,确定其所在页面,读入内存物理块中。

物理块空闲直接读入,物理块已满,指向下步操作。

3、物理块已满,将要淘汰原来首先进入到内存中的页面,即换出;然后将现在的指令地址页面读入物理块中,即换入。

4.系统设计

4.1问题分析

分页存储管理,是将一个进程的逻辑地址空间分成若干个大小相等的片,称为页面或页,并为各页加以编号。

相应地,也把内存空间分成与页面相同大小的若干个存储块,称为物理块,在为进程分配内存时,以块为单位将进程中的若干个页分别装入到多个可以不相邻接的物理块中

系统为每个进程建立一个页表,页表给出逻辑页号和具体内存块号相应的关系。

一个页表中包含若干个表目,表目的自然序号对应于用户程序中的页号,表目中的块号是该页对应的物理块号。

请求页式存储管理方式是一种实现虚拟存储器的方式,是指在进程开始运行之前,不是装入全部页面,而是装入一个或零个页面,之后根据进程运行的需要,动态装入其它页面。

当内存空间已满,而又需要装入新的页面时,则根据某种算法淘汰某个页面,以便装入新的页面。

请求页式存储管理主要需要解决以下问题:

系统如何获知进程当前所需页面不在主存;当发现缺页时,如何把所缺页面调入主存;当主存中没有空闲的页框时,为了要接受一个新页,需要把老的一页淘汰出去,根据什么策略选择欲淘汰的页面。

4.2程序整体框图

图4-1程序整体框图

由于该算法规模较小,可以将该系统划分为四块,分别是:

FIFO算法模块、LRU算法模块、OPT算法模块、LFR算法模块。

4.3FIFO算法

基于程序总是按线形顺序来访问物理空间这一假设,总是淘汰最先调入主存的页面,即淘汰在主存中驻留时间最长的页面。

 

 

4.4LRU算法

LRU置换算法,是根据页面调入内存后的使用情况进行决策的。

由于无法预测各页面将来的使用情况,只能利用“最近的过去”作为“最近的将来”的近似,因此,LRU置换算法是选择最近最久未使用的页面予以淘汰。

该算法赋予每个页面一个访问字段,用来记录一个页面自上次被访问以来所经历的次数count,,当须淘汰一个页面时,选择现有页面中其count值最大的,即最近最久未使用的页面予以淘汰。

 

 

4.5OPT算法

当要调入一页而必须淘汰旧页时,应该淘汰以后不再访问的页,或距现在最长时间后要访问的页。

它所产生的缺页数最少。

这只是一种理想的情况。

 

4.6.LFR算法

在缺页中断发生时,置换未使用时间最长的页面。

 

 

5.功能与测试

用户进入系统之后,会有一个选择算法的界面,如下图所示:

选择页数,然后点击产生页地址流,生成随机地址流并转换成页面号,如下图所示:

然后点开始计算,结果如下图所示:

6.结论

对于页面算法,我们平时上课时,只是知道了页面置换算法是怎么做的,并没有想如何去实现这些算法。

在真正要做的时候才发现了问题。

在这次课程设计的过程中,由于之前大家对可视化程序设计不怎么熟悉,在写代码的时候有了许多的麻烦。

最后,在小组成员耐心看了一些C#的书,并且多方实践,终于完成了这次课程设计。

通过该设计,我们学会了存储器的管理内容,利用C#语言实现进程装入内存的的过程,同时也对存储器管理的多种装入方式及内存分区有了更深的了解,特别是页面置换算法的应用。

但也应看到对于实际的存储器应用还有很多地方不能实现真实,在今后的学习中应对所学知识做更深入的挖掘,对于各种算法应用更好的利用。

7.心得体会

本次课程设计不仅让我对操作系统这门课程有了更深入的研究、对很多重要的概念有了巩固和掌握。

通过努力,三个页面置换算法程序都已经完成。

虽然自己所做的很少也不够完善,但毕竟也是努力的结果。

主要有以下几点收获:

1.通过对上网和看书查阅相关资料,使自己对MFC的基本框架有新的了解,加深了对可视化程序的认识。

2.在使用C++语言来实现功能时,不像以往用的其他语言,它比较简练,更容易理解,实用性很强。

3.先进先出页面置换和LRU以及OPT算法各有特点,但是实践起来却很大,使自己对页面置换算法有了新的认识。

另外,和同学的合作也让我收获了许多,本来做界面是我的短板,但却是同学的强项,和他合作让我在这方面也有很大收获,学到了不少东西。

8.参考文献

计算机操作系统第四版;

基于VisualC++的MFC编程;

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1