




已阅读5页,还剩5页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
安徽大学江淮学院操作系统课程设计报告 专 业: 计算机 班 级: 网络工程班 姓 名: 赵娜 指导教师: 江东 学 号: jw104054 目 录1.课程设计目的22.课程设计题目描述和要求33.课程设计内容33.1页面置换原理描述33.2 模拟页面置换算法的代码64.课程设计实验总结85.参考文献9clock页面置换算法1.课程设计目的本实验主要对操作系统中应用的一些关键算法进行模拟。学生通过设计与实现相关算法,能够加强对相应理论的理解,并对了解操作系统内部的基本处理原理与过程也有很多益处。2.课程设计题目描述和要求 基本要求:描述clock算法的基本原理、必要的数据结构、算法执行流程图、编码实现。1)初始化:输入作业可占用的总页框数,初始化置空。2)输入请求序列:输入一个作业页号访问请求序列,依次占用相应页框,直至全部占用;3)clock算法:当页框全部占用后,对于后续新的页号访问请求,执行clock算法,淘汰1个页面后装入新的页号。4)显示当前分配淘汰序列:显示淘汰的页号序列。3.课程设计内容3.1页面置换原理描述在采用请求分页机制的操作系统中,当运行一个程序的时候,若要访问的页面不在内存中而需要把它们调入内存,但此时内存已无空闲空间,为了保证该进程能正常运行,需选择内存中暂时不用的页面调出到磁盘交换区。选择调出哪个页面,由页面算法决定。页面置换算法的好坏,直接影响系统的性能,所以一个好的页面置换算法,应尽可能选择调出较长时间内不会再访问的页面,以保证较低的缺页率。改进型的clock算法的思想:在将一个页面换出时,如果该页已被修改过,便须将它重新写到磁盘上;但如果该页未被修改过,则不必将它拷回磁盘。同时满足这两条件的页面作为首先淘汰的页。由访问位a和修改位m可以组合成下面四种类型的页面:1 类(a=0,m=0):表示该页最近既未被访问、又未被修改,是最佳淘汰页。2 类(a=0,m=1):表示该页最近未被访问,但已被修改,并不是很好的淘汰页。3 类(a=1,m=0):最近已被访问,但未被修改,该页有可能再被访问。4 类(a=1,m=1):最近已被访问且被修改,该页有可能再被访问。在内存中的每个页必定是这四类页面之一,在进行页面置换时,可采用与简单clock算法相类似的算法,其差别在于须同时检查访问位和修改位,以确定该页是四类页面中的哪一种。此算法称为改进型clock算法。其执行过程可分成以下三步:(1)从指针所指示的当前位置开始,扫描循环队列,寻找a=0且m=0的第一类页面,将所遇到的第一个页面作为所选中的淘汰页。在第一次扫描期间不改变访问位a。(2)如果第一步失败,即查找一周后未遇到第一类页面,则开始第二轮扫描,寻找a=0且m=1的第二类页面,将所遇到的第一个这类页面作为淘汰页。在第二轮扫描期间,将所有经过的页面的访问位置0。(3)如果第二步也失败,即未找到第二类页面,则将指针返回到开始的位置,并将所有的访问位复0。然后,重复第一步,如果仍失败,必要时再重复第二步,此时就一定能够找到被淘汰的页。3.2 流程图实现输入页面置换该页面第二次扫描,是否存在a为1,m为0的页面,将扫面后的a置1输入页面,置换页面第一次扫描,看是否存在a=0,m=1页面把需要修改的页面的标志位修改为1是否修改页面初始化n个页面算法开始输入页面号输入页面为n3.2 模拟页面置换算法的代码(1) 定义页面表的数据结构,它包括页号(info),访问位(a),修改标志(m)和指针4个属性。代码如下: templateclass node/结点类模板,不同数据类型,编译时生成不同的类 public:t info; /定义三个变量int a; /访问页变量,引用位的值int m; /修改页变量,引用位的值node *link;/定义类的基地址 ;(2)通过界面接收的页面数(k),在主程序中先对k个页面通过调用方法insertrear(t data)进行初始化,代码如下:while(1)if(nk)cout请输入要访问的页面号:num; coutinsertrear(num); n+;(3) 初始化页面之后会提示是否对内存中存在的页面进行修改,选择y,就会调用方法change(),并对你选择的页面的修改标志(m)进行修改,把它改为1(说明该页面已被修改过了)。选择n,就会提示你“请输入访问的页面号”,当你输入一个页面号: a、通过调用方法find0(t data)判断你输入的页面号是否跟内存中存在的页面号是否相同,如果相同,通过调用方法tihuan(node*p,t data)来进行置换页面。代码如下:find0(t data)node *tempb;tempb=head-link;while(tempb!=head)if(tempb-info=data)return tempb;tempb=tempb-link;return null; b、如果不是相同的两个页面,通过调用find1(t data)来寻找内存中是否存在访问位为0,修改标志为0的页号,如果找到了,通过调用方法tihuan(node*p,t data)来进行置换页面。如果没有找到就调用find2(t data)来进行第二次扫描,并把扫描过的页面的访问为改为1。如果在内存中找到访问为为0,修改标志为1的页号,通过调用方法tihuan(node*p,t data)来进行置换页面,否则,继续循环find1(t data)的查找直到置换为止。代码如下:第一次扫描:find1(t data) node *tempb;tempb=head-link;while(tempb!=head)if(tempb-a=0&tempb-m=0)return tempb;tempb=tempb-link;return null; 第二次扫描:find2(t data) node *tempb;tempb=head-link;while(tempb!=head)if(tempb-a=0&tempb-m=1)return tempb;tempb-a=0;tempb=tempb-link;return null;找到内存中存在访问位为0,修改标志为0的页号,如下:页号 访问位 修改标志2 1 03 1 11 1 0找到内存中存在访问为0,修改标志为1的页号,如下:页号 访问位 修改标志5 0 17 1 114 1 1请输入要访问的页面号12找到内存访问位为0,修改位为1的页号,修改后:页号 访问位 修改标志12 1 0 7 1 1 14 1 1四、实验总结 通过这几周的课程设计,加深了对操作系统的认识,了解了操作系统中各种资源分配算法的实现,特别是对虚拟存储,页面置换有了深入的了解,并能够用高级语言进行模拟演示。在这短短的几周时间里,通过浏览、阅读有关的资料,学到了很多东西,同时也发现仅仅书本的知识是远远不够的,需要把知识运用到实践中去,能力才能得到提高。 不仅提高对操作系统的了解,这次的课程设计也使自己的c编程能力加强了不少。一分耕耘,一分收获,这次的课程设计让我受益匪浅。虽然自己所做的很少也不够完善,但毕竟也是努力的结果。另外,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 电竞公司质量事故处理细则
- 中级银行从业资格之中级银行业法律法规与综合能力综合检测题型汇编【考点梳理】附答案详解
- 中医执业医师综合提升测试卷带答案详解(培优B卷)
- 环保公司总经理职权执行制度
- 中级银行从业资格之中级银行业法律法规与综合能力预测复习带答案详解(考试直接用)
- 中级银行从业资格之中级银行业法律法规与综合能力综合提升测试卷标准卷附答案详解
- 自考专业(会计)常考点试卷附完整答案详解【全优】
- 游戏开发游戏体验提升与互动性增强技术手段探讨
- 幼儿园安全防护教育预案
- 重难点解析广东茂名市高州中学7年级数学下册变量之间的关系难点解析试卷(含答案详解版)
- 2025版抵押贷款抵押物抵押权登记及变更手续协议模板
- 《死亡医学证明(推断)书》培训试题(附答案)
- 【中考真题】2025年贵州省中考数学真题(含解析)
- 护理核心制度2025年
- 华文版二年级上册-写字-书法
- 慢性根尖周炎病例分析
- 2025年初中学业水平考试生物试卷(附答案)
- 车辆运输安全培训
- 中小学教职工开学安全培训
- 长沙银行笔试题目及答案
- 业绩分红方案(3篇)
评论
0/150
提交评论