欢迎来到天天文库
浏览记录
ID:56078912
大小:41.50 KB
页数:6页
时间:2020-03-16
《SCAN磁盘调度模拟实现.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、信息科学与电气工程学院上机实验报告学号:姓名:班级:课程:操作系统指导教师:时间:2017年11月29日SCAN磁盘调度模拟实现一.实验目的1)理解磁盘调度相关理论;2)掌握多种磁盘调度算法;3)彻底掌握SCAN磁盘调度算法。二、实验内容本实验主要针对操作系统中磁盘调度相关理论进行实验。要求实验者设计一个程序,该程序模拟操作系统的磁盘调度,调度采用SCAN算法。1)设计磁盘调度请求队列(请求数≥10);2)设定单位寻道时间;3)可动态修改发出磁盘请求的时间和磁道号;4)实现SCAN磁盘调度算法;5)
2、实现动态调度并输出调度序列。#include"stdafx.h"#include#include#include#include#definemaxsize1000/*********************判断输入数据是否有效**************************/intdecide(charstr[])//判断输入数据是否有效{inti=0;while(str[i]!=' '){if(str[i]<'0
3、'
4、
5、str[i]>'9'){return0;break;}i++;}returni;}/******************将字符串转换成数字***********************/inttrans(charstr[],inta)//将字符串转换成数字{inti;intsum=0;for(i=0;i6、*******************/int*bubble(intcidao[],intm){inti,j;inttemp;for(i=0;icidao[j]){temp=cidao[i];cidao[i]=cidao[j];cidao[j]=temp;}}cout<<"排序后的磁盘序列为";for(i=0;i7、<8、>>str;//对输入数据进行有效性判断a=decide(str);if(a==0){cout<<"输入数据的类型错误,请重新输入"<=0;i--)cout<9、if(cidao[0]>=now)//若当前磁道号小于请求序列中最小者则直接由内向外依次给予各请//求服务,此情况同最短寻道优先{cout<<"磁盘扫描序列为";for(i=0;icidao[0]&&now10、1表示向外0表示向内):";cin>>d;if(d==0)//选择移动臂方向向内则先向内扫描{cout<<"磁盘扫描序列为";for(j=l;j>=0;j--){cout<
6、*******************/int*bubble(intcidao[],intm){inti,j;inttemp;for(i=0;icidao[j]){temp=cidao[i];cidao[i]=cidao[j];cidao[j]=temp;}}cout<<"排序后的磁盘序列为";for(i=0;i7、<8、>>str;//对输入数据进行有效性判断a=decide(str);if(a==0){cout<<"输入数据的类型错误,请重新输入"<=0;i--)cout<9、if(cidao[0]>=now)//若当前磁道号小于请求序列中最小者则直接由内向外依次给予各请//求服务,此情况同最短寻道优先{cout<<"磁盘扫描序列为";for(i=0;icidao[0]&&now10、1表示向外0表示向内):";cin>>d;if(d==0)//选择移动臂方向向内则先向内扫描{cout<<"磁盘扫描序列为";for(j=l;j>=0;j--){cout<
7、<8、>>str;//对输入数据进行有效性判断a=decide(str);if(a==0){cout<<"输入数据的类型错误,请重新输入"<=0;i--)cout<9、if(cidao[0]>=now)//若当前磁道号小于请求序列中最小者则直接由内向外依次给予各请//求服务,此情况同最短寻道优先{cout<<"磁盘扫描序列为";for(i=0;icidao[0]&&now10、1表示向外0表示向内):";cin>>d;if(d==0)//选择移动臂方向向内则先向内扫描{cout<<"磁盘扫描序列为";for(j=l;j>=0;j--){cout<
8、>>str;//对输入数据进行有效性判断a=decide(str);if(a==0){cout<<"输入数据的类型错误,请重新输入"<=0;i--)cout<9、if(cidao[0]>=now)//若当前磁道号小于请求序列中最小者则直接由内向外依次给予各请//求服务,此情况同最短寻道优先{cout<<"磁盘扫描序列为";for(i=0;icidao[0]&&now10、1表示向外0表示向内):";cin>>d;if(d==0)//选择移动臂方向向内则先向内扫描{cout<<"磁盘扫描序列为";for(j=l;j>=0;j--){cout<
9、if(cidao[0]>=now)//若当前磁道号小于请求序列中最小者则直接由内向外依次给予各请//求服务,此情况同最短寻道优先{cout<<"磁盘扫描序列为";for(i=0;icidao[0]&&now10、1表示向外0表示向内):";cin>>d;if(d==0)//选择移动臂方向向内则先向内扫描{cout<<"磁盘扫描序列为";for(j=l;j>=0;j--){cout<
10、1表示向外0表示向内):";cin>>d;if(d==0)//选择移动臂方向向内则先向内扫描{cout<<"磁盘扫描序列为";for(j=l;j>=0;j--){cout<
此文档下载收益归作者所有