操作系统实训报告..docx

  1. 1、本文档共31页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
操作系统实训报告.

操作系统实训报 告题目:磁盘调度算法小组成员:姓名学号分工成绩组长邓志超2013021039源程序编写,修改,调试,运行指导教师:滕艳萍2016年6月磁盘调度算法?一.设计目的?本课程设计是学习完《计算机操作系统》课程后,进行的一次全面的综合训练,通过课程设计,我们更好地掌握操作系统的原理及实现方法,加深对操作系统基础理论和重要算法的理解,加强了动手能力。?二.课程设计内容和要求?编程序实现下述磁盘调度算法,并求出每种算法的平均寻道长度,要求设计主界面以灵活选择某算法,且以下算法都要实现:?先来先服务算法(FCFS)最短寻道时间优先算法(SSTF)?扫描算法(SCAN)?循环扫描算法(CSCAN)?三.算法及数据结构? 3.1算法的总体思想设备的动态分配算法与进程调度相似,也是基于一定的分配策略的。常用的分配策略有先请求先分配、优先级高者先分配等策略。在多道程序系统中,低效率通常是由于磁盘类旋转设备使用不当造成的。操作系统中,对磁盘的访问要求来自多方面,常常需要排队。这时,对众多的访问要求按一定的次序响应,会直接影响磁盘的工作效率,进而影响系统的性能。访问磁盘的时间因子由3部分构成,它们是查找(查找磁道)时间、等待(旋转等待扇区)时间和数据传输时间,其中查找时间是决定因素。因此,磁盘调度算法先考虑优化查找策略,需要时再优化旋转等待策略。?平均寻道长度(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号柱面。?采用先来先服务算法决定等待访问者执行输入输出操作的次序时,移动臂来回地移动。先来先服务算法花费的寻找时间较长,所以执行输入输出操作的总时间也很长。?void FCFS(int a[], int n){ int sum = 0, i, j, now; printf(请输入当前磁道号:\n); scanf(%d, now); sum += abs(a[0] - now); printf(从当前位置到第1个磁道移动的磁道数:\t%d\n, sum); for (i = 0, j = 1; j n; j++, i++){ sum += abs(a[j] - a[i]); printf(从第%d磁道到第%d磁道移动的磁道数:\t%d\n, i + 1, j + 1, abs(a[j] - a[i])); } printf(移动的总磁道数:%d\n, sum); printf(移动的平均磁道数:%.2lf\n, 1.0*sum / n); printf(请再次输入你想使用的方法:\n);}2.最短寻道时间优先算法(SSTF)?最短寻找时间优先调度算法总是从等待访问者中挑选寻找时间最短的那个请求先执行的,而不管访问者到来的先后次序。现在仍利用同一个例子来讨论,现在当100号柱面的操作结束后,应该先处理90号柱面的请求,然后到达58号柱面执行操作,随后处理55号柱面请求,后继操作的次序应该是39,38,18,150,160,184.采用最短寻找时间优先算法决定等待访问者执行操作的次序时,读写磁头总共移动多个柱面的距离,与先来先服务、算法比较,大幅度地减少了寻找时间,因而缩短了为各访问者请求服务的平均时间,也就提高了系统效率。?但最短查找时间优先(SSTF)调度,FCFS会引起读写头在盘

文档评论(0)

sa43sad5 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档