欢迎来到天天文库
浏览记录
ID:9649558
大小:224.50 KB
页数:15页
时间:2018-05-04
《操作系统课程设计--页面置换算法的模拟实现_》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、操作系统课程设计报告题目:页面置换算法的模拟实现_专业计算机科学与技术学生姓名班级学号指导教师发放日期信息工程学院11目录1概述12设计原理12.1先进先出(FIFO)算法12.2最近最久未使用(LRU)算法13详细设计与编码23.1模块设计23.2系统详细设计24结果与分析44.1测试方案44.2测试结果54.3测试结果分析85设计小结86参考文献9附录程序代码911操作系统课程设计(2015)页面置换算法的模拟实现1概述在进程运行过程中,若其所要访问的页面不在内存所需把他们调入内存,但内存已无空闲时,为
2、了保证进程能够正常运行,系统必须从内存中调入一页程序或数据送磁盘的对换区中。但应将那个页面调出,需要根据一定的算法来确定。通常,把选择换出页面的算法称为页面置换算法。置换算法的好坏,将直接影响到系统的性能。一个好的页面置换算法,应具有较低的页面更换频率。从理论上将讲,应将那些以后不再访问的页面换出,或把那些较长时间内不再访问的页面调出。目前存在着不同的算法,他们都试图更接近与理论上的目标。拥有页面交换机制的操作系统总是把当前进程中急需处理的部分页面换入到内存当中,而把更多暂时不需要处理的页面放置在外存当中。
3、由于进程需要处理的页面顺序不同,因此必须要在内存与外存之间进行页面交换,页面置换算法也就应运而生。2设计原理2.1先进先出(FIFO)算法这是最早出现的置换算法。该算法总是淘汰最先进入内存的页面,即选择在内存停留时间最久的给予淘汰。该算法实现简单,只需把一个进程已调入内存的页面,按先后次序链接成一个队列,并设置一个指针,称为替代指针,使它总是指向最老的页面。但该算法与进程实际运行的规律不相适应,因为在incheng中,有些页面经常被访问,比如,含有全局变量,常用函数,例程等方面,FIFO算法并不能保证这些页
4、面不被淘汰。当需要选择一个页面淘汰时,总是选择最先进入内存空间的那一个页面。只要在系统中建立一个FIFO队列,以反映页面的活动情况。被选择的页面总是处于队首的页面,而最近调入的页面永远存放在队列的尾部。2.2最近最久未使用(LRU)算法FIFO置换算法的性能之所以较差,是因为它所依据的条件是各个页面调入内存的时间,而页面调入的先后不能反映页面的使用情况。最近最久未使用(LRU)的页面置换算法,是根据页面调入内存后的使用情况进行决策的。由于无法预测各个页面将来的使用情况,只能利用“最近的过去”,作为“最近的将
5、来”的近似。该算法的基本思想是用最近的过去估计最近的将来。假定在内存中的某个页面,在最近一段时间内未被使用的时间最长,那么在最近的将来也可能不再被使用。11操作系统课程设计(2015)3详细设计与编码3.1模块设计(1)进入系统模块。进入登陆界面,输入内存页面数和实际页数(2)页面号打印模块。打印输入的页面号。(3)菜单选择模块。选择相应的页面的置换方式,选择相应的字母,进入相应的功能。(4)算法模块。选择相应的页面置换算法。(5)显现输出模块。显示页面被置换的情况。(6)缺页次数和缺页率模块。计算页面号输
6、入的计算结果。(7)退出系统模块。退出置换页面。3.2系统详细设计(1)系统主界面设计(包含登陆模块设计)首先贯穿全局的全局需要一系列的函数来实现本操作系统的各种功能。需要函数自带的文件stdafx.h和iostream.h首先输入的页数自定义最大值为40程序用#defineM40实现。为了防止输入的页数太多,超出自定义40个数的范围,通过输入函数实现:intInput(intm,Prop[M])//输入函数。(2)系统模块首先通过打印当前的页面voidprint(Pro*page1)//打印当前的页面{P
7、ro*page=newPro[N];page=page1;for(inti=0;i8、;11操作系统课程设计(2015)page=page1;inte=page[0].time,i=0;while(i
8、;11操作系统课程设计(2015)page=page1;inte=page[0].time,i=0;while(i
此文档下载收益归作者所有