操作系统实验第六次磁盘调度 下载本文

内容发布更新时间 : 2024/11/17 20:43:41星期一 下面是文章的全部内容请认真阅读。

操作系统实验第六次磁盘调度

操作系统 实 验 报 告

课程名称 实验项目名称 学号 姓名 学生所在学院 实验室名称地点 操作系统实验 磁盘调度算法 年级 专业 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