内容发布更新时间 : 2024/12/25 12:49:56星期一 下面是文章的全部内容请认真阅读。
操作系统实验第六次磁盘调度
操作系统 实 验 报 告
课程名称 实验项目名称 学号 姓名 学生所在学院 实验室名称地点 操作系统实验 磁盘调度算法 年级 专业 2012 计算机科学与技术 课程编号 0906553 计算机科学与技术 指导教师 初妍 21B475
哈尔滨工程大学
计算机科学
与技术学院
1
第六讲 磁盘调度算法
一、实验概述
1. 实验名称
磁盘调度算法 2. 实验目的
(1)通过学习EOS 实现磁盘调度算法的机制,掌握磁盘调度算法执行的条件和时机;
(2)观察 EOS 实现的FCFS、SSTF和 SCAN磁盘调度算法,了解常用的磁盘调度算法;
(3)编写 CSCAN和 N-Step-SCAN磁盘调度算法,加深对各种扫描算法的理解。 3. 实验类型
验证性和设计性实验 4. 实验内容
(1)验证先来先服务(FCFS)磁盘调度算法; (2)验证最短寻道时间优先(SSTF)磁盘调度算法; (3)验证SSTF算法造成的线程“饥饿”现象; (4)验证扫描(SCAN)磁盘调度算法; (5)改写SCAN算法。
二、实验环境
在OS Lab实验环境的基础上,利用EOS操作系统,由汇编语言及C语言编写代码,对需要的项目进行生成、调试、查看和修改,并通过EOS应用程序使内核从源代码变为可以在虚拟机上使用。 三、实验过程
1. 设计思路和流程图 (1)改写SCAN算法
在已有 SCAN 算法源代码的基础上进行改写,要求不再使用双重循环,而是只遍历一次请求队列中的请求,就可以选中下一个要处理的请求。算法流程图如下图所示。
2
图 3.1.1 SCAN算法IopDiskSchedule函数
流程图
(2)编写循环扫描(CSCAN)磁盘调度算法
在已经完成的SCAN算法源代码的基础上进行改写,不再使用全局变量ScanInside确定磁头移动的方向,而是规定磁头只能从外向内移动。当磁头移动到最内的被访问磁道时,磁头立即移动到最外的被访问磁道,即将最大磁道号紧接着最小磁道号构成循环,进行扫描。算法流程图如下图所示。
图 3.1.2 CSCAN算法IopDiskSchedule函数流
程图
3