下载此文档

磁盘调度算法的实现.doc


文档分类:IT计算机 | 页数:约15页 举报非法文档有奖
1/15
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/15 下载此文档
文档列表 文档介绍
姓名
学号
专业
班级
实验项目
实验三:磁盘调度算法的实现
课程名称
操作系统
课程代码
0668036
实验时间
2011 年11月06日
2011 年11月09日
2011 年12月13日
2011 年12月16日
实验地点
软件实验室7-215
批改意见
成绩
教师签字:
【实验环境】Windows操作系统环境下的个人微机
【实验目的】
了解操作系统磁盘调度的基本概念,磁盘调度程序的功能,常用的磁盘调度算法。
【实验要求】
学生应正确地设计有关的数据结构与各个功能模块,画出程序的流程图,编写程序,程序执行结果应正确。
【实验内容】
本实验是模拟操作系统的磁盘寻道方式,运用磁盘访问顺序的不同来设计磁盘的调度算法。
实现的磁盘调度算法有FCFS,SSTF,SCAN,CSCAN和 NStepSCAN算法。
设定开始磁道号寻道范围,依据起始扫描磁道号和最大磁道号数,随机产生要进行寻道的磁道号序列。
选择磁盘调度算法,显示该算法的磁道访问顺序,计算出移动的磁道总数和平均寻道总数。
按算法的寻道效率进行排序,并对各算法的性能进行分析比较。
【实验原理】
FCFS
这是一种最简单的磁盘调度算法。它根据进程请求访问磁盘的先后次序进行调度。
SSTF
该算法选择这样的进程:其要求访问的磁道与当前磁头所在的磁道距离最近,以使每次的寻道时间最短。
SCAN
该算法不仅考虑到欲访问的磁道与当前磁道间的距离,更优先考虑的是磁头当前的移动方向。例如,当磁头正在自里向外移动时,SCAN算法所考虑的下一个访问对象,应是其欲访问的磁道既在当前磁道之外,又是距离最近的。这样自里向外地访问,直至再无更外的磁道需要访问时,才将磁臂换向为自外向里移动。
CSCAN
CSCAN算法规定磁头单向移动,例如,只是自里向外移动,当磁头移到最外的磁道并访问后,磁头立即返回到最里的欲访问的磁道,亦即将最小磁道号紧接着最大磁道号构成循环,进行循环扫描。
NStepSCAN
N步SCAN算法是将磁盘请求队列分成若干个长度为N的子队列,磁盘调度将按FCFS算法依次处理这些子队列。而每处理一个队列时又是按SCAN算法,对一个队列处理完后,再处理其他队列。
【实验步骤、过程】
1、程序主要流程
(1)手动输入当前的磁道号,该磁道号在0<n<65536以内(65536是2的16次方),超出范围则需重新输入。
(2)手动输入要寻找磁道的范围。
(3)主菜单,选择要进行磁道调度算法,此时会随机生成一个在第二步生成磁道范围以内的10个磁道数,由SetDI方法生成,再将生成的随机磁道号以数组形式作为参数被某个算法调用。
2、程序部分代码
函数声明及数据定义
#include ""
#include ""
#include ""
void CopyL(int Sour[],int Dist[] ,int x); //数组Sour复制到数组Dist,复制到x个数
void SetDI(int DiscL[]); //随机生成磁道数
void Print(int Pri[],int x); //打印输出数组Pri
void DelInq(int Sour[],int x,int y); //数组Sour把x位置的数删除,并把y前面的数向前移动,y后的数保持不变(即会出现2个y)
void FCFS(int Han,int DiscL[]); //先来先服务算法(FCFS)void SSTF(int Han,int DiscL[]); //最短寻道时间优先算法(SSTF)
int SCAN(int Han,int DiscL[],int x,int y); //扫描算法(SCAN)
void FCFS(int Han,int DiscL[]); //先来先服务算法(FCFS)
void SSTF(int Han,int DiscL[]); //最短寻道时间优先算法(SSTF)
int SCAN(int Han,int DiscL[],int x,int y); //扫描算法(SCAN)
void CSCAN(int Han,int DiscL[]); //循环扫描算法(CSCAN)
void N_Step_SCAN(int Han1,int DiscL[]); //N步扫描算法(NStepScan)
void PaiXu(); //寻道长度由低到高排序
void Pri();
int NAll=0;
int Best[5][2]; //用作寻道长度由低到高排序时存放的数组
int Limit=0; //

磁盘调度算法的实现 来自淘豆网www.taodocs.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数15
  • 收藏数0 收藏
  • 顶次数0
  • 上传人799474576
  • 文件大小0 KB
  • 时间2013-08-10