改进型clock算法实验报告

改进型clock算法实验报告

ID:35226544

大小:60.00 KB

页数:7页

时间:2019-03-22

改进型clock算法实验报告_第1页
改进型clock算法实验报告_第2页
改进型clock算法实验报告_第3页
改进型clock算法实验报告_第4页
改进型clock算法实验报告_第5页
资源描述:

《改进型clock算法实验报告》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、福州大学工程技术学院实验报告课程名称:操作系统____学号:xx____姓名:xx_____专业:计算机科学与技术____年级:10级学期:2010年第1学期_2010年12月20日实验一页面置换算法及其实现分析一、实验目的本实验主要对操作系统中应用的一些关键算法进行模拟。学生通过设计与实现相关算法,能够加强对相应理论的理解,并对了解操作系统内部的基本处理原理与过程也有很多益处。二、实验要求描述Clock算法的基本原理、必要的数据结构、算法执行流程图、编码实现。三、实验内容1、页面置换原理描述在采用请求分页机制的操作系统中,当运行一个程序的

2、时候,若要访问的页面不在内存中而需要把它们调入内存,但此时内存已无空闲空间,为了保证该进程能正常运行,需选择内存中暂时不用的页面调出到磁盘交换区。选择调出哪个页面,由页面算法决定。页面置换算法的好坏,直接影响系统的性能,所以一个好的页面置换算法,应尽可能选择调出较长时间内不会再访问的页面,以保证较低的缺页率。改进型的Clock算法的思想:在将一个页面换出时,如果该页已被修改过,便须将它重新写到磁盘上;但如果该页未被修改过,则不必将它拷回磁盘。同时满足这两条件的页面作为首先淘汰的页。由访问位A和修改位M可以组合成下面四种类型的页面:1类(A=

3、0,M=0):表示该页最近既未被访问、又未被修改,是最佳淘汰页。2类(A=0,M=1):表示该页最近未被访问,但已被修改,并不是很好的淘汰页。3类(A=1,M=0):最近已被访问,但未被修改,该页有可能再被访问。4类(A=1,M=1):最近已被访问且被修改,该页有可能再被访问。在内存中的每个页必定是这四类页面之一,在进行页面置换时,可采用与简单Clock算法相类似的算法,其差别在于须同时检查访问位和修改位,以确定该页是四类页面中的哪一种。此算法称为改进型Clock算法。其执行过程可分成以下三步:(1)从指针所指示的当前位置开始,扫描循环队列

4、,寻找A=0且M=0的第一类页面,将所遇到的第一个页面作为所选中的淘汰页。在第一次扫描期间不改变访问位A。(2)如果第一步失败,即查找一周后未遇到第一类页面,则开始第二轮扫描,寻找A=0且M=1的第二类页面,将所遇到的第一个这类页面作为淘汰页。在第二轮扫描期间,将所有经过的页面的访问位置0。(3)如果第二步也失败,即未找到第二类页面,则将指针返回到开始的位置,并将所有的访问位复0。然后,重复第一步,如果仍失败,必要时再重复第二步,此时就一定能够找到被淘汰的页。3、改进型的Clock算法的流程图如下:3、页面置换实现过程(1)定义页面表的数据

5、结构,它包括页号(info),访问位(A),修改标志(M)和指针4个属性。代码如下:templateclassNode//结点类模板,不同数据类型,编译时生成不同的类{public:Tinfo;//定义三个变量intA;//访问页变量,引用位的值intM;//修改页变量,引用位的值Node*link;//定义类的基地址};(2)通过界面接收的页面数(K),在主程序中先对K个页面通过调用方法Insertrear(Tdata)进行初始化,代码如下:while(1){if(n

6、"<>num;cout<Insertrear(num);n++;}}初始化显示如下图:(3)初始化页面之后会提示是否对内存中存在的页面进行修改,选择Y,就会调用方法change(),并对你选择的页面的修改标志(M)进行修改,把它改为1(说明该页面已被修改过了)。选择N,就会提示你“请输入访问的页面号”,当你输入一个页面号:a、通过调用方法find0(Tdata)判断你输入的页面号是否跟内存中存在的页面号是否相同,如果相同,通过调用方法tihuan(Node*p,Tdata)来进行置换页面。代码

7、如下:find0(Tdata){Node*tempb;tempb=head->link;while(tempb!=head){if(tempb->info==data)returntempb;tempb=tempb->link;}returnNULL;}b、如果不是相同的两个页面,通过调用find1(Tdata)来寻找内存中是否存在访问位为0,修改标志为0的页号,如果找到了,通过调用方法tihuan(Node*p,Tdata)来进行置换页面。如果没有找到就调用find2(Tdata)来进行第二次扫描,并把扫描过的页面的访问为改为

8、1。如果在内存中找到访问为为0,修改标志为1的页号,通过调用方法tihuan(Node*p,Tdata)来进行置换页面,否则,继续循环find1(Tdata)的查找直到置换

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。