《操作系统》课程实验
实验课题:模拟实现磁盘调度算法
姓 名:
学 号:
年级班级:
教学班级:操作系统
专业方向:
指导教师:
实验时间:**** ***** 08级信息与计算科学 08信本软件方向 2010-12-9
一、实验名称:模拟实现磁盘调度算法
1 实验目的: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 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 Reset(); //重置访问标志、磁头当前位置、总移动磁道数 cout< cout< case 2: SSTF(); //最短寻道优先调度算法 break; case 3:SCAN(); //电梯调度算法 break; default: printf(\"\\n 输入的算法编号错误!!\\n\\n\"); return; } //switch(iInput) bGoOn= false; strcpy(sGoOn,\" \"); cout<<\" 要继续进行磁盘调度算法模拟吗?(Y/N) \"< 因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- huatuo6.com 版权所有 湘ICP备2023023988号-11
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务