操作系统课程设计磁盘调度报告.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
题 目:磁盘调度 一. 设计目的 本课程设计是学习完《计算机操作系统》课程后,进行的一次全 面的综合训练,通过课程设计,我们更好地掌握操作系统的原理及 实现方法,加深对操作系统基础理论和重要算法的理解,加强了动手 能力。 二. 课程设计内容和要求 编程序实现下述磁盘调度算法,并求出每种算法的平均寻道长度, 要求设计主界面以灵活选择某算法,且以下算法都要实现: 先来先服务算法(FCFS) 最短寻道时间优先算法(SSTF) 扫描算法(SCAN) 循环扫描算法(CSCAN) 三.算法及数据结构 3.1 算法的总体思想 设备的动态分配算法与进程调度相似,也是基于一定的分配策略 的。常用的分配策略有先请求先分配、优先级高者先分配等策略。 在多道程序系统中,低效率通常是由于磁盘类旋转设备使用不当造 成的。操作系统中,对磁盘的访问要求来自多方面,常常需要排队。 这时,对众多的访问要求按一定的次序响应,会直接影响磁盘的工 作效率,进而影响系统的性能。访问磁盘的时间因子由 3 部分构成, 它们是查找(查找磁道)时间、等待(旋转等待扇区)时间和数据 1 传输时间,其中查找时间是决定因素。因此,磁盘调度算法先考虑 优化查找策略,需要时再优化旋转等待策略。 平均寻道长度(L)为所有磁道所需移动距离之和除以总的所需 访问的磁道数(N),即: L=(M1+M2+……+Mi+……+MN)/N 其中 Mi 为所需访问的磁道号所需移动的磁道数。 启动磁盘执行输入输出操作时,要把移动臂移动到指定的柱面, 再等待指定扇区的旋转到磁头位置下,然后让指定的磁头进行读写, 完成信息传送。因此,执行一次输入输出所花的时间有: 寻找时间——磁头在移动臂带动下移动到指定柱面所花的时间。 延迟时间——指定扇区旋转到磁头下所需的时间。 传送时间——由磁头进程读写完成信息传送的时间。 其中传送信息所花的时间,是在硬件设计就固定的。而寻找时 间和延迟时间是与信息在磁盘上的位置有关。 为了减少移动臂进行移动花费的时间,每个文件的信息不是按 盘面上的磁道顺序存放满一个盘面后,再放到下一个盘面上。而是 按柱面存放,同一柱面上的各磁道被放满信息后,再放到下一个柱 面上。所以各磁盘的编号按柱面顺序(从 0 号柱面开始),每个柱面 按磁道顺序,每个磁道又按扇区顺序进行排序。 3.2 算法实现 1.先来先服务算法(FCFS) 先来先服务(FCFS)调度:按先来后到次序服务,未作优化。 最简单的移臂调度算法是“先来先服务”调度算法,这个算法实际 上不考虑访问者要求访问的物理位置,而只是考虑访问者提出访问 请求的先后次序。例如,如果现在读写磁头正在 100 号柱面上执行 输出操作,而等待访问者依次要访问的柱面为 55,58,39,18,90,160,150,38,184 那么,当 100 号柱面上的操作结 束后,移动臂将按请求的先后次序先移到 55 号柱面,最后到达 184 2 号柱面。 采用先来先服务算法决定等待访问者执行输入输出操作的次序 时,移动臂来回地移动。先来先服务算法花费的寻找时间较长,所 以执行输入输出操作的总时间也很长。 void FCFS(int a[],int begin,int len) { int b[100],i; for(i=0;ilen;i++) b[i]=a[i]; double sum=0,avg; for(i=0;ilen;i++) { sum+=abs(begin-b[i]); cout第i+1次访问的磁道是:b[i]endl; begin=b[i]; } cout平均寻道长度:sum*1.0/lenendl; } 2.短寻道时间优先算法(SSTF) 最短寻找时间优先调度算法总是从等待访问者中挑选寻找时间 最短的那个请求先执行的,而不管访问者到来的先后次序。现在仍 利用同一个例子来讨论,现在当 100 号柱面的操作结束后,应该先 处理 90 号柱面的请求,然后到达 58 号柱面执行操作,随后处理 55 号柱面请求,后继操作的次序应该是 39,38,18,150,160,184.采用 最短寻找时间优先算法决定等待访问者执行操作的次序时,读写磁 头总共移动多个柱面的距离,与先来先服务、算法比较,大幅度地 减少了寻找时间,因而缩短了为各访问者请求服务的平均时间,也 就提高了系统效率。 但最短查找时间优先(SSTF)调度,FCFS 会引起读写头在盘面上的 大范围移动,SSTF 查找距离磁头最短(也就是查找时间最短)的请 求作为下一次服务的对象。SSTF 查找模式有高度局部化的倾向,会 推迟一些请求的服务,甚至引起无限拖延(又称饥饿)。 3 void SSTF(int a[],int begin,int len) { int i,j,p,min,q,b[100]; for

文档评论(0)

damoyihao + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档