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

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/2682880.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。

注意事项

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

磁盘调度专业课程设计方案报告j附代码.doc

1、磁盘调度课程设计任务书 学 院 计算机与信息学院 专 业 网络工程 课程名称 计算机操作系统 题 目 磁盘调度 完毕期限 自6月3日至6月30日共4周 内 容 及 任 务 一、项目目 通过设计一种磁盘调度模仿系统,从而使磁盘调度算法更加形象化,容易使人理解,使磁盘调度特点更简朴明了,能使使用者加深对先来先服务算法、最短寻道时间优先算法、扫描算法以及循环扫描算法等磁盘调度算法理解。 二、项目任务重要内容和规定 磁盘调度算法重要涉及四种算法,先来先服务算法(FCFS)、最短寻道时间优先算法(SSTF)、扫描算法(SCAN)、循环扫描算法(C

2、SCAN)。 三、 项目设计(研究)思路 1.先来先服务算法(FCFS): 输入磁道号,按先来先服务方略输出磁盘祈求序列,求平均寻道长度,输出移动平均磁道数。 2.最短寻道时间优先算法(SSTF):磁道号用冒泡法从小到大排序,输出排好序磁道序列,输入当前磁道号,依照前磁道在已排序列中位置,选取扫描顺序,求出平均寻道长度,输出移动平均磁道数。 3.扫描算法(SCAN):将磁道号用冒泡法从小到大排序,输出排好序序列,输入当前磁道号,选取移动臂移动方向,依照当前磁道在已排序列中位置,选取扫描顺序,求出平均寻道长度,输出移动平均磁道数。 4.循环扫描算法(CSCAN):将磁道号用冒泡法从小到

3、大排序,输出排好序序列,输入当前磁道号,规定移动臂单向重复从内向外移动,依照当前磁道在已排序列中位置,选取扫描顺序,求出平均寻道长度,输出移动平均磁道数。 四、详细成果形式和规定 设计一种磁盘调度程序,按顾客不同选取,用不同算法进行不同模仿。 进 度 安 排 起止日期 工作内容 /6/3-/6/10 理解磁盘调度原理背景、查询有关资料设计规划设计总体思路 /6/11-/6/20 编写代码实现各某些功能、综合各个模块详细操作 /6/21-/6/30 进行测试软件以及对软件进行调试、修改。最后编写文档 主 要 参 考 资 料 [1]汤小丹,梁红兵.计算机操

4、作系统[M].西安:西安电子科技大学出版社, [1]何钦铭,颜晖.C语言程序设计[M].北京:高等教诲出版社, [2]严蔚敏,吴伟民. 数据构造(C语言版)[M].北京:清华大学出版社, 指引教师 意见 (签字): 年 月 日 系(教研室)主任意见 (签字): 年 月 日 设备管理课程设计阐明书 学院名称: 滁州学院

5、 班级名称: 网络工程 学生姓名:王大龙、王俊、王鹏、杨涛、张炎 学 号:、 题 目: 磁盘调度 指引教师: 李元金 起止日期: 6月8—6月30日 目录 第一某些:正文某些 5 一、选题背景 5 二、设计理念 5 三、过程阐述 6 3.1系统概要设计 6 3.2详细设计

6、 6 3.2.1设计任务 6 3.2.2设计规定 6 3.2.3算法思想 6 四、成果分析 12 4.1 先来先服务(FCFS) 12 4.2 最短寻道时间优先算法(SSTF) 12 4.3 扫描算法(SCAN) 13 4.4 循环扫描算法(CSCAN) 13 五、结论(或总结) 14 第二某些:参照文献 14 第三某些:指引教师评语 15 第四某些:成绩评估 15 第一某些:正文某些 一、选题背景 为了加深对操作系统原理进一步结识,加强实践动手能力和程序开发能力培养,提高分析问题解决问题能力

7、培养合伙精神,以巩固和加深磁盘调度概念。操作系统是一门工程性很强课程,它不但规定学生掌握操作系统工作原理和理论知识,也规定学生实际动手能力,以加深对所学习内容理解,使学生纯熟地掌握计算机操作办法,使用各种软件工具,加强对课程内容理解。这次课程设计,就是通过模仿磁盘调度来加深对操作系统中磁盘调度概念理解,使咱们熟悉磁盘管理系统设计办法;加深对所学各种磁盘调度算法理解及其算法特点。 二、设计理念 2.1先来先服务(FCFS)方略,即先来祈求先被响应。FCFS方略看起来似乎是相称"公平",但是当祈求频率过高时候FCFS方略响应时间就会大大延长。FCFS方略为咱们建立起一种随机访问机制模型,但是

8、如果用这个方略重复响应从里到外祈求,那么将会消耗大量时间。为了尽量减少寻道时间,看来咱们需要对等待着祈求进行恰当排序,而不是简朴使用FCFS方略。这个过程就叫做磁盘调度管理。有时候FCFS也被看作是最简朴磁盘调度算法。 2.2最短时间优先(SSTF)算法选取这样进程。规定访问磁道,与当前磁头所在磁道距离近来,以使每次寻道时间最短。 2.3扫描(SCAN)调度算法:该算法不但考虑到欲访问磁道与当前磁道间距离,更优先考虑是磁头当前移动方向。例如,当磁头正在自里向外移动时,SCAN算法所考虑下一种访问对象,应是其欲访问磁道,既在当前磁道之外,又是距离近来。这样自里向外访问,直至再无更外磁道需要访

9、问时,才将磁道换向自外向里移动。这时,同样也是每次选取这样进程来调度,也就是要访问当前位置内距离近来者,这样,磁头又逐渐地从外向里移动,直至再无更里面磁道要访问,从而避免了浮现“饥饿”现像。 2.4循环扫描(CSCAN)算法:当磁头刚从里向外移动而越过了某一磁道时,正好又有一进程祈求访问此磁道,这时,该里程就必要等待,为了减少这种延迟,CSCAN算法规定磁头单向移动。 三、过程阐述 3.1系统概要设计 设计办法为任务分解、逐渐求精办法,先完毕各个模块功能(FCFS、SSTF、SCAN、CSCAN),并进行调试和验证,最后完毕系统完整设计,使设计过程得到可靠保证。 3.2 详细设计

10、 3.2.1设计任务 本系统划分为四个模块:先来先服务算法模块FCFS、最短寻道时间优先算法模块SSTF、扫描算法模块SCAN和循环扫描算法模块:CSCAN,用来实现磁盘调度模仿。 3.2.2设计规定 依照磁盘调度算法思想,编程实现先来先服务、最短寻道时间优先、扫描算法、循环扫描算法等,并通过数据分析比较各种算法平均寻道长度。 3.2.3算法思想 系统主界面可以灵活选取某种算法,算法涉及:先来先服务算法(FCFS)、最短寻道时间优先算法(SSTF)、扫描算法(SCAN)、循环扫描算法(CSCAN)。 (1)先来先服务算法(FCFS) 这是一种比较简朴磁盘调度算法。它依照进程祈求访

11、问磁盘先后顺序进行调度。此算法长处是公平、简朴,且每个进程祈求都能依次得到解决,不会浮现某一进程祈求长期得不到满足状况。此算法由于未对寻道进行优化,在对磁盘访问祈求比较多状况下,此算法将减少设备服务吞吐量,致使平均寻道时间也许较长,但各进程得到服务响应时间变化幅度较小。 (2)最短寻道时间优先算法(SSTF) 该算法选取这样进程,其规定访问磁道与当前磁头所在磁道距离近来,以使每次寻道时间最短,该算法可以得到比较好吞吐量,但却不能保证平均寻道时间最短。其缺陷是对顾客服务祈求响应机会不是均等,因而导致响应时间变化幅度很大。在服务祈求诸多状况下,对内外边沿磁道祈求将会无限期被延迟,有些祈求响应时

12、间将不可预期。 (3)扫描算法(SCAN) 扫描算法不但考虑到欲访问磁道与当前磁道距离,更优先考虑是磁头当前移动方向。例如,当磁头正在自里向外移动时,扫描算法所选取下一种访问对象应是其欲访问磁道既在当前磁道之外,又是距离近来。这样自里向外地访问,直到再无更外磁道需要访问才将磁臂换向,自外向里移动。这时,同样也是每次选取这样进程来调度,即其要访问磁道,在当前磁道之内,从而避免了饥饿现象浮现。由于这种算法中磁头移动规律颇似电梯运营,故又称为电梯调度算法。此算法基本上克服了最短寻道时间优先算法服务集中于中间磁道和响应时间变化比较大缺陷,而具备最短寻道时间优先算法长处即吞吐量较大,平均响应时间较小

13、但由于是摆动式扫描办法,两侧磁道被访问频率仍低于中间磁道。 (4)循环扫描算法(CSCAN) 循环扫描算法是对扫描算法改进。如果对磁道访问祈求是均匀分布,当磁头到达磁盘一端,并反向运动时落在磁头之后访问祈求相对较少。这是由于这些磁道刚被解决,而磁盘另一端祈求密度相称高,且这些访问祈求等待时间较长,为理解决这种状况,循环扫描算法规定磁头单向移动。例如,只自里向外移动,当磁头移到最外被访问磁道时,磁头及时返回到最里欲访磁道,即将最小磁道号紧接着最大磁道号构成循环,进行扫描。 3.2.4算法设计 (1)先来先服务算法模块:void FCFS(int array[],int m)输入磁道号,

14、按先来先服务方略输出磁盘祈求序列,求平均寻道长度,输出移动平均磁道数。 FCFS算法流程图 (2)最短寻道时间优先算法模块:void SSTF(int array[],int m)将磁道号用冒泡法从小到大排序,输出排好序磁道序列,输入当前磁道号,依照前磁道在已排序列中位置,选取扫描顺序,求出平均寻道长度,输出移动平均磁道数。 SSTF算法流程图 (3)扫描算法模块:void SCAN(int array[],int m)将磁道号用冒泡法从小到大排序,输出排好序序列,输入当前磁道号,选取移动臂移动方向,依照当前磁道在已排序列中位置,选取扫描顺序,求出平均寻道长度,

15、输出移动平均磁道数。 SCAN算法流程图 (4)循环扫描算法模块:void CSCAN(int array[],int m)将磁道号用冒泡法从小到大排序,输出排好序序列,输入当前磁道号,规定移动臂单向重复从内向外移动,依照当前磁道在已排序列中位置,选取扫描顺序,求出平均寻道长度,输出移动平均磁道数。 CSCAN算法流程图 四、成果分析 4.1 先来先服务(FCFS) 图4.1.1 FCFS算法运营成果 4.2 最短寻道时间优先算法(SSTF) 图4.1.1 SSTF算法运营成果 4.3 扫描算法(SCAN) 图4.1.3 SCAN算法运营成果 4.4

16、循环扫描算法(CSCAN) 图4.1.3 CSCAN算法运营成果 五、结论(或总结) 本系统具备很强健壮性,当输入错误数据类型时,系统提示顾客输入数据类型错误,让顾客重新输入,保证系统稳定性,不会由于顾客误操作而致使系统瘫痪;虽然是在dos状态下,但是本系统界面还是设计比较美丽,具备比较好交互性;对于软件中重用代码,设计成一种函数,实当代码重用。本系统是在dos状态下进行编译执行,没有图形化界面,可以设计出一种图形化界面,使顾客操作更加简朴,明了。 通过对这次操作系统课程设计亲自参加和操作,使我深刻体会到了:只要你想做只要你想学没有弄不懂得事情,工程里面也不能不在乎细节,等等。感觉

17、很受益匪浅。懂得了操作系统磁盘调度四种算法:先来先服务算法(FCFS)、最短寻道时间优先算法(SSTF)、扫描算法(SCAN)和循环扫描算法(CSCAN)。加深了我对这门课程理解。锻炼了自己在考虑全局也不是细节能力。通过这次实验,再一次熟悉并进一步掌握了程序设计语言和算法设计。同步,我也深深体会到了团队重要性,如果没有同组人互相勉励和督促我跟本不能不久完毕任务。一滴水力量是有限,但汇聚成溪流将是美丽。虽然咱们每个人力量都是有限,但是激烈讨论、互相勉励使咱们在实践中成长。感谢和我一起面对同伴们,由于有你们我才变得勤奋。更感谢予以咱们谆谆辅导教师,在咱们踌躇困惑时予以咱们指引,谢谢您! 第二某些

18、参照文献 1.汤小丹,梁红兵.计算机操作系统[M].西安:西安电子科技大学出版社,. 2.何钦铭,颜晖.C语言程序设计[M].北京:高等教诲出版社,. 3.严蔚敏,吴伟民.数据构造(C语言版)[M].北京:清华大学出版社,. 学生签名: 填表日期: 年 月 日 第三某些: 指引教师评语 第四某些:成绩评估 指引教师签名: 填表日期: 年 月 日 附录: 程序源代码 #include"stdio.h" #include"

19、stdlib.h" #define maxsize 100 //定义最大数组域 #include //先来先服务调度算法 void FCFS(int array[],int m) { int sum=0,j,i; int avg; printf("\n FCFS调度成果: "); for(i=0;i<=m;i++)//输出FCFS磁盘调度成果 { printf("%d ",array[i]); } for(i=0,j=1;j

20、移动距离,abs函数取绝对值 } avg=sum/m;//计算平均寻道长度 printf("\n 移动总道数: %d \n",sum); printf(" 平均寻道长度: %d \n",avg); } //最短寻道时间优先调度算法 void SSTF(int array[],int m) { int temp; int k=1; int now,l,r; int i,j,sum=0; int avg; for(i=0;i

21、f(array[i]>array[j])//两磁道号之间比较 { temp=array[i]; array[i]=array[j]; array[j]=temp; } } } for( i=0;i

22、 { for(i=m-1;i>=0;i--)//将数组磁道号从大到小输出 printf("%d ",array[i]); sum=now-array[0];//计算移动距离 } else if(array[0]>=now)//判断整个数组里数与否都不不大于当前磁道号 { for(i=0;i

23、{ k++; } l=k-1; r=k; //拟定当前磁道在已排序列中位置 while((l>=0)&&(r

24、tf("%d ",array[r]); sum+=array[r]-now;//计算移动距离 now=array[r]; r=r+1; } } if(l=-1)//////////此时now为array[0],需要到达array[m-1],即前半段扫描结束,后半段尚有剩余 { for(j=r;j

25、/////此时now为array[m-1]需要到达array[0],后半段扫描结束,前半段尚有剩余 { for(j=l;j>=0;j--) { printf("%d ",array[j]); } sum+=array[m-1]-array[0];//计算移动距离 } } avg=sum/m; printf("\n 移动总道数: %d \n",sum); printf(" 平均寻道长度: %d \n",avg); } //扫描算法 void SCAN(int array[],int m)//先

26、要给出当前磁道号和移动臂移动方向,到了端点时磁臂到另一端点 { int temp; int k=1; int now,l,r,d; int i,j,sum=0; int avg; for(i=0;iarray[j])//对磁道号进行从小到大排列 { temp=array[i]; array[i]=array[j]; array[j]=temp; } } } for( i=0;i

27、 printf("%d ",array[i]);//输出排序后磁道号数组 } printf("\n 请输入当前磁道号:"); scanf("%d",&now); if(array[m-1]<=now)//判断整个数组里数与否都不大于当前磁道号 { printf("\n SCAN调度成果: "); for(i=m-1;i>=0;i--) { printf("%d ",array[i]);//将数组磁道号从大到小输出 } sum=now-array[0];//计算移动距离 } else if(array[0]>=now

28、)//判断整个数组里数与否都不不大于当前磁道号 { printf("\n SCAN调度成果: "); for(i=0;i

29、 scanf("%d",&d); printf("\n SCAN调度成果: "); if(d==0)//磁道号减小方向<- { for(j=l;j>=0;j--) { printf("%d ",array[j]); } for(j=r;j

30、//依照距离算 } else////////////////磁道增长方向-> { for(j=r;j=0;j--) { printf("%d ",array[j]); } sum=-now-array[0]+2*array[m-1];//计算移动距离 //////////sum=array[m-1]-now+array[m-1]-array[0] } } avg=sum/m; pr

31、intf("\n 移动总道数: %d \n",sum); printf(" 平均寻道长度: %d \n",avg); } //循环扫描算法 void CSCAN(int array[],int m) { int temp; int k=1; int now,l,r,d; int i,j,sum=0; int avg; for(i=0;iarray[j])//对磁道号进行从小到大排列 { temp=array[i];

32、 array[i]=array[j]; array[j]=temp; } } } for( i=0;i

33、[i]);//将磁道号从小到大输出 } sum=now-array[0]+array[m-1];//计算移动距离 } else if(array[0]>=now)//判断整个数组里数与否都不不大于当前磁道号 { printf("\n CSCAN调度成果: "); for(i=0;i

34、以拟定K值 { k++; } l=k-1; r=k; printf("\n 请输入当前移动臂移动方向 (1 磁道号增长方向,0磁道号减小方向) :"); scanf("%d",&d); printf("\n CSCAN调度成果: "); if(d==0)////////////<- { for(j=l;j>=0;j--) { printf("%d ",array[j]); } for(j=m-1;j>=r;j--) { printf("%d ",array[j]);

35、 } sum=2*(array[m-1]-array[0])-array[r]+now;//计算移动距离 /////sum=now-array[0]+array[m-1]-array[0]+array[m-1]-array[r] 先<-再<-循环到尾再<- }//磁道号减小方向 else { for(j=r;j

36、m=2*(array[m-1]-array[0])+array[r-1]-now;//计算移动距离 ////////sum=array[m-1]-now+array[m-1]-array[0]+array[r-1]-array[0]//////////先->再循环到尾->再-> } }//磁道号增长方向 avg=sum/m; printf("\n 移动总道数: %d \n",sum); printf(" 平均寻道长度: %d \n",avg); } // 操作界面 int main() { system("color 97"); int c

37、 FILE *fp;//定义指针文献 int cidao[maxsize];//定义磁道号数组 int i=0,count; fp=fopen("D://cidao.txt","r+");//读取cidao.txt文献 if(fp==NULL)//判断文献与否存在 { printf("\n 请 先 设 置 磁 道!\n"); exit(0); } while(!feof(fp))//如果磁道文献存在 { fscanf(fp,"%d",&cidao[i]);//调入磁道号 i++; } count=i-1; printf(

38、"\n ***************************************************\n"); printf("\n *********************************************\n"); printf("\n --------------------------------------------------\n"); printf(" 操作系统课程设计--磁盘调度算法模仿"); printf("\n --------------------------------------------------\n"

39、); printf("\n 磁道读取成果:\n"); for(i=0;i<=count;i++) { printf("%5d",cidao[i]);//输出读取磁道磁道号 } printf("\n "); while(1) { printf("\n 算法选取:\n"); printf(" 1、先来先服务算法(FCFS)\n"); printf(" 2、最短寻道时间优先算法(SSTF)\n"); printf(" 3、扫描算法(SCAN)\n"); printf(" 4、循环扫描算法(CSCAN)\n")

40、 printf(" 5. 退出\n"); printf("\n"); printf("请选取:"); scanf("%d",&c); if(c>5) break; switch(c)//算法选取 { case 1: FCFS(cidao,count);//先来先服务算法 printf("\n"); break; case 2: SSTF(cidao,count);//最短寻道时间优先算法 printf("\n"); break; case 3: SCAN(cidao,count);//扫描算法 printf("\n"); break; case 4: CSCAN(cidao,count);//循环扫描算法 printf("\n"); break; case 5: exit(0); } } return 0; }

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

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

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

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

gongan.png浙公网安备33021202000488号   

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

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

客服