操作系统实验十精读.docVIP

  1. 1、本文档共20页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
操作系统 实 验 报 告 课程名称 操作系统实验 课程编号 0906553 实验项目名称 磁盘调度算法 学号 年级 姓名 专业 学生所在学院 指导教师 实验室名称地点 哈尔滨工程大学 计算机科学与技术学院 第一讲 磁盘调度算法 一、实验概述 1. 实验名称 磁盘调度算法 2. 实验目的 ??通过学习EOS实现磁盘调度算法的机制,掌握磁盘调度算法执行的条件和时机。 ??观察EOS实现的FCFS、SSTF和SCAN磁盘调度算法,了解常用的磁盘调度算法。 ??编写磁盘调度算法,加深对各种扫描算法的理解。验证设计 .1 准备实验 4.2 验证先来先服务(FCFS)磁盘调度算法 4.3 验证最短寻道时间优先(SSTF)磁盘调度算法 4.4 验证SSTF算法造成的线程“饥饿”现象 4.5 验证扫描(SCAN)磁盘调度算法 4.6 改写SCAN算法 4.7 编写循环扫描(CSCAN)磁盘调度算法 4.8 验证SSTF、SCAN及CSCAN算法中的“磁臂粘着”现象 4.9 编写N-Step-SCAN磁盘调度算法 二、实验环境 操作系统:Windows XP 编译器:Tevalation OS Lab 语言:C 三、实验过程 1. 设计思路和流程图 SCAN算法流程图: SSTF算法流程图: CSACN流程图: N-Step-SCAN算法调度: 2. 需要解决的问题及解答 (1)在执行SCAN、N-Step-SCAN?磁盘调度算法时,如果在EOS控制台中多次输入“ds”命令,调度的顺序会发生变化,说明造成这种现象的原因(提示:注意这两种算法使用的全局变量)。尝试修改源代码,使这两种算法在多次执行时,都能确保调度的顺序一致(提示:可以参考?io/block.c?文件中IopReceiveRequest?函数和?IopProcessNextRequest?函数判断磁盘调度算法开始工作和结束工作的方法)。 答:ScanInside是一个全局变量,当第一次执行“ds”命令时,调用IopDiskSchedule?函数,ScanInside被修改了一次,再次执行“ds”命令时,ScanInside不会被重置,因此输出的结果会不一样。只需在for循环结束后添加如下代码,就能确保调度的顺序一致。 (2)尝试在io/block.c文件中定义一个全局的函数指针变量DiskScheduleFunc,该函数指针初始指向实现了FCFS算法的IopDiskSchedule函数。修改io/block.c文件中的IopProcessNextRequest函数,在该函数中不再直接调用IopDiskSchedule函数,而是调用函数指针DiskScheduleFunc指向的磁盘调度算法函数;ke/sysproc.c文件中的ConsoleCmdDiskSchedule函数中也不再直接调用IopDiskSchedule函数,也要修改为调用函数指针DiskScheduleFunc指向的磁盘调度算法函数。最后,添加一个控制台命令“sstf”,该命令使函数指针DiskScheduleFunc指向实现了SSTF算法的函数。这样,在EOS启动后默认会执行FCFS算法,执行控制台命令“sstf”后,会执行SSTF算法。按照这种方式依次实现“fcfs”、“scan”、“cscan”和“nstepscan”命令。说明这种在EOS运行时动态切换磁盘调度算法的好处。 答:首先在block.c?中定义一个全局的函数指针变量DiskScheduleFunc。 修改IopProcessNextRequest?函数和ConsoleCmdDiskSchedule?函数,使其不再直接调用IopDiskSchedule?函数而是调用函数指针DiskScheduleFunc指向的磁盘调度算法函数。 调用函数前先声明。 添加一个控制台命令“sstf”,该命令使函数指针DiskScheduleFunc?指向实现了?SSTF?算法的函数。 (3)分析已经实现的各种磁盘调度算法的优缺点,尝试实现更多其它的磁盘调度算法。 答:先来先服务算法是一种比较简单的磁盘调度算法,它根据进程请求访问磁盘的先后次序进行调度,此算法的优点是公平、简单,且每个进程的请求都能依次得到处理,不会出现某一进程的请求长期得不到满足的情况,在对磁盘的访问请求比较多的情况下,致使平均寻道时间可能较长;最短寻道时间优先算法选择这样的进程,其要求访问的磁道与当前磁头所在的磁道距离最近,以使每次的寻道时间最短,该算法可以得到比较好的吞吐量,但

文档评论(0)

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

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

1亿VIP精品文档

相关文档