- 1、本文档共20页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 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)分析已经实现的各种磁盘调度算法的优缺点,尝试实现更多其它的磁盘调度算法。
答:先来先服务算法是一种比较简单的磁盘调度算法,它根据进程请求访问磁盘的先后次序进行调度,此算法的优点是公平、简单,且每个进程的请求都能依次得到处理,不会出现某一进程的请求长期得不到满足的情况,在对磁盘的访问请求比较多的情况下,致使平均寻道时间可能较长;最短寻道时间优先算法选择这样的进程,其要求访问的磁道与当前磁头所在的磁道距离最近,以使每次的寻道时间最短,该算法可以得到比较好的吞吐量,但
您可能关注的文档
- (附件02)防风防汛事故专项应急精读.doc
- 生物的生殖和发育复习-wi总汇.ppt
- (精校版)2016年海南化学高考文档版(含)精读.doc
- (氯碱操作工考)精读.doc
- 生物的遗传和变异复习(2016-4-5)总汇.ppt
- (苏教版)九年级语文上册期末精读.doc
- 北京一五九中2015-2016学年高一上学期期中考试语文精读.doc
- (中英文)针灸穴位定位精读.doc
- 、衰老、凋亡和癌变(含)精读.doc
- 北师大版三年级语文上册表格式精读.doc
- 2025年网络文学平台版权运营模式创新与版权保护体系构建.docx
- 数字藏品市场运营策略洞察:2025年市场风险与应对策略分析.docx
- 全球新能源汽车产业政策法规与市场前景白皮书.docx
- 工业互联网平台安全标准制定:安全防护与合规性监管策略.docx
- 剧本杀剧本创作审核标准2025年优化与行业自律.docx
- 2025年新能源电动巡逻车在城市安防中的应用对城市环境的影响分析.docx
- 全渠道零售案例精选:2025年行业创新实践报告.docx
- 2025年网约车司乘纠纷处理机制优化与行业可持续发展报告.docx
- 2025年宠物烘焙食品市场法规政策解读:合规经营与风险规避.docx
- 2025年宠物行业数据安全监管政策影响分析报告.docx
文档评论(0)