页面置换算法的实验报告 下载本文

内容发布更新时间 : 2024/3/29 16:11:14星期一 下面是文章的全部内容请认真阅读。

//循环,按照页面序列进行置换并输出结果 for (i = 1; i < page.Length; i++) {

u = 0;

//若内存中存在要访问的页面,则访问次数加1,置u为1,并退出循环 for (j = 0; j < size; j++) {

if (X[j].Num == page[i]) {

X[j].Count++; 置换

置换

u = 1; break; } }

//若内存中不存在要访问的页面,且不存在空闲的空间,则进行如下if (u != 1 && X[size - 1].Num != -1) {

j = GetMinCount();//选择访问次数最少的页面作为淘汰页 X[j].Count = 1; X[j].Num = page[i]; X[j].Timer = 0; changecount++; losecount++; }

//若内存中不存在要访问的页面,且存在空闲的空间,则进行如下的if (u != 1 && X[size - 1].Num == -1) {

for (j = 0; j < size; j++) {

if (X[j].Num == -1) {

X[j].Num = page[i]; X[j].Timer = 0; X[j].Count++; losecount++; break; } } }

for (j = 0; j < size; j++) {

if (X[j].Num != -1) X[j].Timer++; }

//输出数据

for (j = 0; j < size; j++) {

if (X[j].Num != -1)

LFU_label.Text += (X[j].Num - 48).ToString(); else

LFU_label.Text += \; }

LFU_label.Text += \; }

LFUlosepage = (float)losecount / (float)(page.Length);

LFU_label.Text+= \访问次数是:\ + page.Length + \页面置换次数:\ + changecount + \缺页中断次数:\ + losecount + \缺页率是:\ + LFUlosepage;

} }

七、体会与自我评价

这次操作系统课程设计,让我对操作系统有了更深的认识,首先操作系统是一管理电脑硬件与软件资源的程序,同时也是计算机系统内核与基石。操作系统是一个庞大的管理控制程序,大致包括5个方面的管理功能:进程与处理机管理、作业管理、存储管理、设备管理、文件管理。我这次课程设计的题目是页面置换算法,是属于存储器管理。

在进程运行过程中,若其访问的页面不在内存而需把它们调入内存,但内存以无空闲空间时,为了保证该进程能正常的运行,系统必须从内存中调出一页程序或数据送磁盘的兑换区中,但应将哪个页面调出,需根据一定的算法来确定。通常,把选择换成页面的算法称为页面置换算法。

通过本次课程设计,我对页面置换算法的了解更加的深刻。主要有以下置换算法: OPT(最佳置换算法)、FIFO(先进先出置换算法)、LRU(最近最久未使用算法)、简单 Clock置换算法、LFU(最少使用置换算法)。每种算法都有各自的优缺点,OPT算法是实际中不能实现的,但是可以利用该算法去评价其它算法;FIFO算法与进程实际运行的规律不相适用,因为在进程中,有些页面经常被访问;LRU算法是根据页面调入内存后的使用情况进行决策的;Clock算法是LRU的近似算法,但它不要求太多的硬件支持;LFU算法并不能真正的反应页面的使用情况。

在这次课程设计中,遇到了一些困难,例如怎么实现可视化,如何接收数据,显示数据,及对数据的限制操作等,在遇到这些困难的时候,我会去查阅资料,仔细看书,尝试用不同的方法解决,在各种方法中选择一种最好的方法,有的时候会碰到不会用的控件或函数,我会查看MSDN,这次是用的C#语言做的,每一步都是自己独立完成的,这次课程设计我最大的收获是学以致用,因为最近一直在学C#,可能学得东西还不够多,但是通过这次设计我看到了自己学习的能力,我相信在以后的学习中,我会更加的努力。

最后,还非常感谢辛苦的老师们,首先的操作系统老师,因为她辛苦的为我们讲解操作系统这门课,让我们对操作系统有了一定的了解,为这次课程设计奠定了良好的基础,其次,感谢课程设计指导老师,因为课程设计是一个总体运用能力的体现,指导老师起到的是重要的指引的作用。

八、参考文献

[1]计算机操作系统 汤小丹,梁红兵,哲凤屏 西安电子科技大学出版社 2007.5 [2] C#开发实战宝典 赛奎春,刘志铭,宋坤 清华大学出版社 2010.1 [3]visual C# 高级编程范例 谭桂华等 清华大学出版社 2004.5 [4] 操作系统教程与实验 胡明庆,高巍,钟梅 清华大学出版社 2007.1 [5] C#高级编程 李铭 清华大学出版社 2009.2

九、课程设计评价 课 程 设 计 评 价 成绩: 教师: 年 月 日