ImageVerifierCode 换一换
格式:DOC , 页数:36 ,大小:343KB ,
资源ID:4721889      下载积分:12 金币
验证码下载
登录下载
邮箱/手机:
图形码:
验证码: 获取验证码
温馨提示:
支付成功后,系统会自动生成账号(用户名为邮箱或者手机号,密码是验证码),方便下次登录下载和查询订单;
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/4721889.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请。


权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4009-655-100;投诉/维权电话:18658249818。

注意事项

本文(专业课程设计磁盘调度算法及代码的实现.doc)为本站上传会员【精***】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

专业课程设计磁盘调度算法及代码的实现.doc

1、专业课程设计磁盘调度算法及代码的实现 课程设计报告 《计算机操作系统》 课程设计题目: 磁盘调度算法 学生姓名: 专 业: 班 级: 学 号: 指导教师: 2014年01月10日 目 录 1.需求分析 …………………………………………………………………………01 2. 总体设计及分类简介 …………………………………………………………01 1)先来先服务(FCFS)算法……………………………………………………01 2)最短寻道时间优先(SSTF)算法………………………………………

2、……01 3)扫描调度(SCAN)算法………………………………………………………01 4)循环扫描(C-SCAN)算法……………………………………………………01 3.课程设计目的 ……………………………………………………………………01 4.课程设计要求……………………………………………………………………02 5.详细设计及算法流程图…………………………………………………………02 1)总流程图………………………………………………………………………02 2)先来先服务(FCFS)算法流程图……………………………………………03 3)最短寻道时间优先(SSTF)算法流程图………

3、……………………………04 4)扫描调度(SCAN)算法流程图………………………………………………05 5)循环扫描(C-SCAN)算法流程图……………………………………………06 6.课程设计具体步骤………………………………………………………………07 1)定义函数部分主要代码………………………………………………………07 2)先来先服务(FCFS)算法部分主要代码……………………………………07 3)最短寻道时间优先(SSTF)算法部分主要代码……………………………07 4)扫描调度(SCAN)算法部分主要代码………………………………………09 5)循环扫描(C-SCAN)

4、算法部分主要代码……………………………………09 7.课程设计结果显示 ………………………………………………………………10 1)先来先服务(FCFS)算法测试结果…………………………………………10 2)最短寻道时间优先(SSTF)算法测试结果…………………………………11 3)扫描调度(SCAN)算法测试结果……………………………………………12 4)循环扫描(C-SCAN)算法测试结果…………………………………………13 8.课程设计总结 ……………………………………………………………………14 9.心得体会 …………………………………………………………………………15

5、10.参考资料 ………………………………………………………………………15 磁盘调度算法 一.需求分析 编译程序运用磁盘的四种调度算法实现对磁盘的调度,四种算法分别为先来先服务(FCFS)算法,最短寻道时间优先(SSTF)算法,扫描调度(SCAN)算法,循环扫描(C-SCAN)算法。 二.总体设计及分类简介 磁盘调度中常用的有四种算法,功能分别如下: 1.先来先服务(FCFS)算法。即先来的请求先被响应。FCFS策略看起来似乎是相当"公平"的,但是当请求的频率过高的时候FCFS策略的响应时间就会大大延长。FCFS策略为我们建立起一个随机访问机制的模型,但是假如用这个策略反复响应从

6、里到外的请求,那么将会消耗大量的时间。为了尽量降低寻道时间,看来我们需要对等待着的请求进行适当的排序,而不是简单的使用FCFS策略。这个过程就叫做磁盘调度管理。有时候FCFS也被看作是最简单的磁盘调度算法。 2. 最短寻道时间优先(SSTF)算法。要求访问的磁道,与当前磁头所在的磁道距离最近,以使每次的寻道时间最短。 3.扫描调度(SCAN)算法。该算法不仅考虑到欲访问的磁道与当前磁道间的距离,更优先考虑的是磁头当前的移动方向。例如,当磁头正在自里向外移动时,SCAN算法所考虑的下一个访问对象,应是其欲访问的磁道,既在当前磁道之外,又是距离最近的。这样自里向外的访问,直至再无更外的磁道

7、需要访问时,才将磁道换向自外向里移动。这时,同样也是每次选择这样的进程来调度,也就是要访问的当前位置内距离最近者,这样,磁头又逐步地从外向里移动,直至再无更里面的磁道要访问,从而避免了出现“饥饿”现像。 4.循环扫描(C-SCAN)算法。当磁头刚从里向外移动而越过了某一磁道时,恰好又有一进程请求访问此磁道,这时,该里程就必须等待,为了减少这种延迟,CSCAN算法规定磁头单向移动,而本实验过程中我们所设计的是磁头从里向外移动,而从外向里移动时只须改方向而已,本实验未实现。但本实验已完全能演示循环扫描的全过程。 三.课程设计目的 1.熟悉并掌握磁盘管理系统的设计方法,加深对所学各种磁盘调

8、度算法及其算法的特点的了解。 2.掌握磁盘调度的基本概念,比较各种磁盘调度算法的优劣 四.课程设计要求 从课程设计的目的出发,通过设计工作的各个环节,达到以下设计要求: 1.对系统进行功能模块分析、控制模块分析正确; 2.系统设计要实用; 3.编程简练,可用,功能全面,具有较好的健壮性; 4.说明书、流程图要清楚。 五. 详细设计及算法流程图 1. 总流程图 输入磁道的个数 输入所需功能的前置编号 开始 输入数字为1~4? 输入当前磁道号 退出 数字为0? 输入错误 结果显示 结束 2. 先来先服务(FCFS)算法流程图 开始 sum=0,j,i

9、first=0,now i=0;i=0;i--)co

10、ut<a[j] if(a[n-1]<=now) if(a[0]>=now) while(a[k]=0)&&(r=now) Int d; while(a[k]

11、 确定磁头访问的方向 移动的总道数 结束 循环 循环 5. 循环扫描(C-SCAN)算法流程图 int a[],int n for(i=0;i=now) 磁头位置在两侧磁道之间 确定磁头访问的方向 移动的总道数 结束 六.课程设计具体步骤 1.定义函数部分主要代码 #include #include using namespace s

12、td; void FCFS(int a[],int n); void SSTF(int a[],int n); void SCAN(int a[],int n); void CSCAN(int a[],int n); 2. 先来先服务(FCFS)算法部分主要代码 void FCFS(int a[],int n) { int sum=0,j,i,first=0,now; cout<<"请输入当前磁道号:"; cin>>now;//确定当前磁头所在位置 cout<<"磁盘调度顺序为:"<

13、 } for(i=0,j=1;ja[j]) { temp=a[i]; a[i]=a[j]; a[j]=temp; } } if(a[n-1]<=now)//当前磁

14、头位置大于最外围欲访问磁道 { for(i=n-1;i>=0;i--) cout<-1;j--) //访问磁头位置里侧的磁道 { cout

15、<=0;

16、i--) cout<

17、 七.课程设计结果显示 1.先来先服务(FCFS)算法测试结果 2. 最短寻道时间优先(SSTF)算法测试结果 3.扫描调度(SCAN)算法测试结果 4.循环扫描(C-SCAN)算法测试结果 八.课程设计总结 计算机磁盘是一种很重要也很常用的外部设备,其分配也有一定的分配策略。在操作系统中,作业对磁盘的请求常常要排队,由此需要一些高效率的磁盘分配策略算法。(1)先来先服务算法为一种最简单的磁盘调度算法,它直接根据作业请求磁盘的先后顺序对磁盘进行寻访,公平、简单,每个作业的磁盘请求都可以得到处理,不会出现某个作业的请求长期得不到满足的情况,但未对寻道

18、方案进行优化;(2)最短寻道时间优先算法优先选择距离当前磁头位置最近的作业磁道请求,可以使得每次寻道时所用的时间都最短,但不能保证平均周转时间及带权周转时间最短;(3)电梯算法同时考虑下一个作业磁道请求与当前磁头位置的距离和当前磁头移动方向先选择当前磁头之外距离其最近的磁道进行访问,直到再无更外的磁道请求,再将磁臂换向,访问磁头内侧距离当前磁头位置最近的作业磁道请求,避免了饥饿现象的出现,每个作业的磁盘请求都可以得到处理,且使每次寻道时间相对较短;(4)N_SCAN算法同时考虑下一个作业磁道请求与当前磁头位置的距离和当前磁头移动方向,但每次磁臂调转方向时,将同时处理在磁头向一侧移动过程当中输入

19、的作业请求,先选择当前磁头之外距离其最近的磁道进行访问,直到再无更外的磁道请求,接下来一并考虑在磁头向外侧移动过程当中输入的作业请求与磁头内侧未被处理的作业磁道请求,此算法对中间磁道请求比较有利。总之,各种算法都有其长处,也各有不足,需要在实际应用中权衡利弊,择优使用才能达到最好的效果。 九.心得体会 在这几天的课程设计中,由于之前做过相似的实验,所以在一开的实验设计流程图时还是很快就完成了,不过在接下来的编写代码的阶段里,出现很大的问题,花费了很多的时间。好在有老师的耐心细心的指导,一步一步的验证,一点一点的改正。每一次的运行看到错误都在慢慢的减少,正确的设计结果也在不断的靠近,最终取得

20、了成功。由于自己的知识和能力还不到位,在课程设计时间里经历了很多困难和挑战,但我认为,在这过程中的每一次的错误和故障,都使我收获颇丰,使我成长了很多。 当然,这个磁盘调度系统的设计远非完美,还有很多地方可以改进,例如界面可以更加友好,资源可以更加节约,算法也还有优化的余地,但是时间有限,经历也有限,在课程设计时间允许的范围内只能做到这样,我会在课余时间自行完善该磁盘调度算法程序。 每一次的课程设计都是自己对所学知识的强化,是一次难得的动手机会。在课程设计的每一个步骤的执行中,都要认真的反复的去做,因为一个小小的错误都会导致课程设计结果发生巨大的偏差。完成一个成功的设计,会让自己学会很多很多

21、的东西,并且能够很清楚的看到自己的不足,查补缺漏,继续学习。通过自己的动手动脑,既增加了知识,又给了我专业知识以及专业技能上的提升,对提高自己的思维能力和操作能力有很大的帮助。同时我也会更加努力,认真学习,争取在以后的课程中做得更好! 十.参考资料 《计算机操作系统》清华大学出版社 《计算机操作系统实验指导》清华大学出版社 附录: #include #include using namespace std; void FCFS(int a[],int n); void SSTF(int a[],int n); void

22、SCAN(int a[],int n); void CSCAN(int a[],int n); int main() { int n; //磁道的个数 int s; //功能号 cout<<"请输入当前磁道的个数,按Enter键显示生成的随机磁道号:"<>n; int *a=new int[n]; cout<<"生成的随机磁道号为:"; srand((unsigned)time(NULL)); for(int

23、 i=0;i

24、dl; cout<<" ┃ 1、先来先服务算法(FCFS) ┃"<

25、描算法(SCAN) ┃"<

26、 ┃"<>s; if(s>4) { cout<<"数据输入有误!请重新输入:"<

27、 case 2:SSTF(a, n);break; case 3:SCAN(a, n);break; case 4:CSCAN(a,n);break; } } } return 0; } //先来先服务调度算法(FCFS) void FCFS(int a[],int n) { int sum=0,j,i,first=0,now; cout<<"请输入当前磁道号:"; cin>>now;//确定当前磁头所在位置 cout<<"磁盘调度顺序为:"<

28、)//按访问顺序输出磁道号 { cout<

29、按递增排序 for(i=0;ia[j]) { temp=a[i]; a[i]=a[j]; a[j]=temp; } } cout<<"按递增顺序排好的磁道显示为:"<>now;//确定当前磁头所在位置 cout<<"磁盘调度顺序为:"<

30、w)//当前磁头位置大于最外围欲访问磁道 { for(i=n-1;i>=0;i--) cout<=now)//当前磁头位置小于最里欲访问磁道 { for(i=0;i

31、 r=k;//磁头欲访问磁道 while((l>=0)&&(r

32、访问完 { for(j=r;j-1;j--) //访问磁头位置里侧的磁道 { cout<

33、m<a[j]) { temp=a[i]; a[i]=a[j]; a[j]=temp; } } cout<<"按递增顺序排好的磁道为:"<

34、<<" "; } cout<>now; //以下算法确定磁道访问顺序 if(a[n-1]<=now) //磁头位置大于最外围欲访问磁道 { for(i=n-1;i>=0;i--) cout<=now) //磁头位置小于最里欲访问磁道 { for(i=0;i

35、<" "; sum=a[n-1]-now; } else //磁头位置在最里侧磁道与最外侧磁道之间 { int d; while(a[k]

36、ut<<"请输入当前磁头移动的方向 (0 表示向内 ,1表示向外) : "; cin>>d; //确定磁头访问的方向 cout<<"磁盘调度顺序为:"; if(d==0||d==1) { if(d==0) //磁头向内 { for(j=l;j>=0;j--) { cout<

37、 for(j=r;j

38、for(j=l;j>=0;j--) { cout<

39、 int now,l,r; int i,j,sum=0; int k=1; for(i=0;ia[j]) { temp=a[i]; a[i]=a[j]; a[j]=temp; } } cout<<"按递增顺序排好的磁道为:"<

40、"; cin>>now;//确定当前磁道号 if(a[n-1]<=now)//磁头位置大于最外围欲访问磁道 { for(i=0;i=now)//磁头位置小于最里欲访问磁道 { for(i=0;i

41、 } else //磁头位置在最里侧磁道与最外侧磁道之间 { int d; while(a[k]>d; //确定磁头访问的方向 cout<<"

42、磁盘调度顺序为:"; if(d==0||d==1) { if(d==1) //磁头向外侧访问 { for(j=r;j

43、2*a[n-1]-now-2*a[0]+a[l]; } if(d==0) //磁头向内侧访问 { for(j=r-1;j>=0;j--) { cout<=r;j--) { cout<

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服