模拟实现磁盘调度算法.doc

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

模拟实现磁盘调度算法

. .《操作系统》课程实验实验课题:模拟实现磁盘调度算法姓名:**** 学号:

***** 年级班级:

08级信息与计算科学教学班级:

操作系统专业方向:

08信本软件方向指导教师:

实验时间:

XXXX年级班级:

08级信息与计算科学教学班级:

操作系统专业方向:

08信本软件方向指导教师:

实验时间:

2010:a、观察、体会操作系统的磁盘调度方法,并通过一个简单的磁盘调度模拟程序的实现,加深对磁盘调度的理解。b、提高实际动手编程能力,为日后从事软件开发工作打下坚实基础。

2 实验要求:

a、使用模块化设计思想来设计。

b、给出主函数和各个算法函数的流程图。

c、学生可按照自身条件,随意选择采用的算法。

二、实验算法分析总流程图

三、实验内容及实验步骤1 实验内容a、模拟实现磁盘调

度算法:

FCFS,最短寻道优先,电梯算法(实现其中之一种以上)。

b、磁道请求服务顺序由用户输入(可通过从指定的文本文件(TXT文件)中取出)。

2 实验步骤1) 打开microsoft vasual C++ 6.0“开始”菜单—所有程序—单击“microsoft vasual C++ 6.0”,进入创建页面。2)单击标题栏“文件”选择“新建”进入界面如下:

选择‘工程,win32 console application’编辑工程名称‘zhuxuemin4’存储在d盘,创建‘创建新工作区’确定。3)创建文件:

单击标题栏“文件”选择“新建”进入界面类似于上面的界面。4)在建好的文件中加入附件中的源程序,并进行编译。

四、实验原始记录及结果分析1 先来先服务调度算法2 最短寻道优先调度算法3 电梯调度算法

五、参考代码#include #include#include#include const int MAXQUEUE=200; //定义请求队列最大长度//磁道号请求结构体定义typedef struct TRACK_Node{ int iGo; //要访问的磁道号int iVisited; //磁道是否已经访问标志(1:

已访问;

0:

末访问)}TRACK; TRACK queue[MAXQUEUE]; //磁道号请求队列数组int iReqNum=0; //磁道访问请求数int iStart=0; //磁头初始

位置int iNow=0; //磁头当前位置int iSum=0; //总移动磁道数int iInput; //用户当前输入的整数char sFileName[20]; //文件名void Init() //初始化函数{int i; for(i=0;i2 实验要求:

a、使用模块化设计思想来设计。

b、给出主函数和各个算法函数的流程图。

c、学生可按照自身条件,随意选择采用的算法。

二、实验算法分析总流程图

三、实验内容及实验步骤1 实验内容a、模拟实现磁盘调度算法:

FCFS,最短寻道优先,电梯算法(实现其中之一种以上)。

b、磁道请求服务顺序由用户输入(可通过从指定的文本文件(TXT文件)中取出)。

2 实验步骤1) 打开microsoft vasual C++ 6.0“开始”菜单—所有程序—单击“microsoft vasual C++ 6.0”,进入创建页面。2)单击标题栏“文件”选择“新建”进入界面如下:

选择‘工程,win32 console application’编辑工程名称‘zhuxuemin4’存储在d盘,创建‘创建新工作区’确定。3)创建文件:

单击标题栏“文件”选择“新建”进入界面类似于上面的界面。4)在建好的文件中加入附件中的源程序,并进行编译。

四、实验原始记录及结果分析1 先来先服务调度算法2 最短寻道优先调度算法3 电梯调度算法

五、参考代码#include #include#include#include const int MAXQUEUE=200; //定义请求队列最大长度//磁道号请求结构体定义typedef struct TRACK_Node{ int iGo; //要访问的磁道号int iVisited; //磁道是否已经访问标志(1:

已访问;

0:

末访问)}TRACK; TRACK queue[MAXQUEUE]; //磁道号请求队列数组int iReqNum=0; //磁道访问请求数int iStart=0; //磁头初始位置int iNow=0; //磁头当前位置int iSum=0; //总移动磁道数int iInput; //用户当前输入的整数char sFileName[20]; //文件名void Init() //初始化函数{int i; for(i=0;i"iInput; //从标准输入获取用户当前输入的整数switch(iInput) //用户输入的整数以选择算法{case 1: FCFS(); //先来先服务调度算法break; case 2: SSTF(); //最短寻道优先调度算法break; case 3:SCAN(); //电梯调度算法break; default: printf("\n 输入的算法编号错误!!\n\n"); return; } //switch(iInput) bGoOn= false; strcpy(sGoOn," "); cout" 要继续进行磁盘调度算法模拟吗?(Y/N) "sGoOn; bGoOn=(sGoOn[0]=='y'||sGoOn[0]=='Y'); } //while bGoOn } //if(ReadTrackFile()==-1) } word教育资料;i++) 达到当天最大量API KEY 超过次数限制

相关文档
最新文档