天津理工大学 操作系统实验3磁盘调度算法的实现之欧阳法创编.docx
《天津理工大学 操作系统实验3磁盘调度算法的实现之欧阳法创编.docx》由会员分享,可在线阅读,更多相关《天津理工大学 操作系统实验3磁盘调度算法的实现之欧阳法创编.docx(12页珍藏版)》请在冰点文库上搜索。
天津理工大学操作系统实验3磁盘调度算法的实现之欧阳法创编
实验报告
时间:
2021.03.09
创作:
欧阳法
学院(系)名称:
计算机与通信工程学院
姓名
王远志
学号
20135632
专业
计算机科学与技术
班级
2013级3班
实验项目
实验二:
磁盘调度算法的实现
课程名称
操作系统
课程代码
0668036
实验时间
2015年12月11日第5-8节
实验地点
软件实验室7-219
批改意见
成绩
教师签字:
实验内容:
1.本实验是模拟操作系统的磁盘寻道方式,运用磁盘访问顺序的不同来设计磁盘的调度算法。
2.实现的磁盘调度算法有FCFS,SSTF,SCAN,CSCAN和NStepSCAN算法。
3.设定开始磁道号寻道范围,依据起始扫描磁道号和最大磁道号数,随机产生要进行寻道的磁道号序列。
4.选择磁盘调度算法,显示该算法的磁道访问顺序,计算出移动的磁道总数和平均寻道总数。
5.按算法的寻道效率进行排序,并对各算法的性能进行分析比较。
实验要求:
1.详细描述实验设计思想、程序结构及各模块设计思路;
2.详细描述程序所用数据结构及算法;
3.明确给出测试用例和实验结果;
4.为增加程序可读性,在程序中进行适当注释说明;
5.认真进行实验总结,包括:
设计中遇到的问题、解决方法与收获等;
6.实验报告撰写要求结构清晰、描述准确逻辑性强;
7.实验过程中,同学之间可以进行讨论互相提高,但绝对禁止抄袭。
【实验过程记录(源程序、测试用例、测试结果及心得体会等)】
#include
usingnamespacestd;
constintMaxNumber=100;
intTrackOrder[MaxNumber];
intMoveDistance[MaxNumber];//----移动距离;
intFindOrder[MaxNumber];//-----寻好序列。
doubleAverageDistance;//-----平均寻道长度
booldirection;//-----方向true时为向外,false为向里
intBeginNum;//----开始磁道号。
intM;//----磁道数。
intN;//-----提出磁盘I/O申请的进程数
intSortOrder[MaxNumber];//----排序后的序列
boolFinished[MaxNumber];
voidInith()
{
cout<<"请输入磁道数:
";
cin>>M;
cout<<"请输入提出磁盘I/O申请的进程数:
cin>>N;
cout<<"请依次输入要访问的磁道号:
for(inti=0;icin>>TrackOrder[i];for(intj=0;jMoveDistance[j]=0;cout<<"请输入开始磁道号:";cin>>BeginNum;for(intk=0;kFinished[k]=false;for(intl=0;lSortOrder[l]=TrackOrder[l];}//=====================排序函数,将各进程申请的磁道按从小到大排列=================voidSort(){//------冒泡排序inttemp;for(inti=N-1;i>=0;i--)for(intj=0;j{if(SortOrder[j]>SortOrder[j+1]){temp=SortOrder[j];SortOrder[j]=SortOrder[j+1];SortOrder[j+1]=temp;}}}//============FCFS,先来先服务=================================voidFCFS(){inttemp;temp=BeginNum;//--------将BeginNum赋给temp作为寻道时的当前所在磁道号for(inti=0;i{MoveDistance[i]=abs(TrackOrder[i]-temp);//-------计算移动磁道数temp=TrackOrder[i];//-------寻到后,将此道作为当前所在磁道号,赋给tempFindOrder[i]=TrackOrder[i];//-----寻好的赋给寻好序列}}//========SSTF,最短寻道法=============================voidSSTF(){inttemp,n;intA=M;temp=BeginNum;//--------将BeginNum赋给temp作为寻道时的当前所在磁道号for(inti=0;i{for(intj=0;j{if(abs(TrackOrder[j]-temp){A=abs(TrackOrder[j]-temp);n=j;}elsecontinue;}Finished[n]=true;//-------将已经寻找到的Finished赋值为trueMoveDistance[i]=A;//-------寻道长度temp=TrackOrder[n];//-------当前寻道号。A=M;//-----重置A值FindOrder[i]=TrackOrder[n];//----寻好的赋给寻好序列}}//=====================SCAN,扫描算法==========================voidSCAN(){intm,n,temp;temp=BeginNum;Sort();//------排序cout<<"请选择开始方向:1--向外;0---向里";//------选择扫描方向cin>>m;if(m==1)direction=true;elseif(m==0)direction=false;elsecout<<"输入错误";for(inti=0;i{if(SortOrder[i]continue;else{n=i;break;}}if(direction==true)//------选择向外{for(inti=n;i{MoveDistance[i-n]=abs(SortOrder[i]-temp);temp=SortOrder[i];FindOrder[i-n]=SortOrder[i];}for(intj=n-1;j>=0;j--){MoveDistance[N-1-j]=abs(SortOrder[j]-temp);temp=SortOrder[j];FindOrder[N-1-j]=SortOrder[j];}}else//-------选择向里{for(inti=n-1;i>=0;i--){MoveDistance[N-i-4]=abs(SortOrder[i]-temp);temp=SortOrder[i];FindOrder[N-i-4]=SortOrder[i];}for(intj=n;j{MoveDistance[j]=abs(SortOrder[j]-temp);temp=TrackOrder[j];FindOrder[j]=SortOrder[j];}}}//=================CSCAN,循环扫描算法=======================voidCSCAN(){intm,n,temp;temp=BeginNum;Sort();cout<<"请选择开始方向:1--向外;0---向里";cin>>m;if(m==1)direction=true;elseif(m==0)direction=false;elsecout<<"输入错误";for(inti=0;i{if(SortOrder[i]continue;else{n=i;break;}}if(direction==true){for(inti=n;i{MoveDistance[i-n]=abs(SortOrder[i]-temp);temp=SortOrder[i];FindOrder[i-n]=SortOrder[i];}for(intj=0;j{MoveDistance[N-n+j]=abs(SortOrder[j]-temp);temp=SortOrder[j];FindOrder[N-n+j]=SortOrder[j];}}else{for(inti=n-1;i>=0;i--){MoveDistance[n-1-i]=abs(SortOrder[i]-temp);temp=SortOrder[i];FindOrder[n-1-i]=SortOrder[i];}for(intj=N-1;j>=n;j--){MoveDistance[N-j+n-1]=abs(SortOrder[j]-temp);temp=SortOrder[j];FindOrder[N-j+n-1]=SortOrder[j];}}}//========计算平均寻道时间==============voidCount(){intTotal=0;for(inti=0;i{Total+=MoveDistance[i];}AverageDistance=((double)Total)/((double)N);}voidShow(){cout<<"================从"<cout<for(inti=0;i{cout<}cout<"<cout<}intmain(){inty=1;ints;Inith();while(y){cout<<"请选择寻道方式:1--FCFS;2--SSTF;3--SCAN;4--CSCSN;";cin>>s;switch(s){case1:FCFS();Count();Show();break;case2:SSTF();Count();Show();break;case3:SCAN();Count();Show();break;case4:CSCAN();Count();Show();break;}cout<<"是否继续选择寻道算法?1--是;2--否";intp;cin>>p;y=p;}return0;}实验结果:FCFS方式:Sstf方式:SCAN方式:4.CSCSN时间:2021.03.09创作:欧阳法
cin>>TrackOrder[i];
for(intj=0;jMoveDistance[j]=0;cout<<"请输入开始磁道号:";cin>>BeginNum;for(intk=0;kFinished[k]=false;for(intl=0;lSortOrder[l]=TrackOrder[l];}//=====================排序函数,将各进程申请的磁道按从小到大排列=================voidSort(){//------冒泡排序inttemp;for(inti=N-1;i>=0;i--)for(intj=0;j{if(SortOrder[j]>SortOrder[j+1]){temp=SortOrder[j];SortOrder[j]=SortOrder[j+1];SortOrder[j+1]=temp;}}}//============FCFS,先来先服务=================================voidFCFS(){inttemp;temp=BeginNum;//--------将BeginNum赋给temp作为寻道时的当前所在磁道号for(inti=0;i{MoveDistance[i]=abs(TrackOrder[i]-temp);//-------计算移动磁道数temp=TrackOrder[i];//-------寻到后,将此道作为当前所在磁道号,赋给tempFindOrder[i]=TrackOrder[i];//-----寻好的赋给寻好序列}}//========SSTF,最短寻道法=============================voidSSTF(){inttemp,n;intA=M;temp=BeginNum;//--------将BeginNum赋给temp作为寻道时的当前所在磁道号for(inti=0;i{for(intj=0;j{if(abs(TrackOrder[j]-temp){A=abs(TrackOrder[j]-temp);n=j;}elsecontinue;}Finished[n]=true;//-------将已经寻找到的Finished赋值为trueMoveDistance[i]=A;//-------寻道长度temp=TrackOrder[n];//-------当前寻道号。A=M;//-----重置A值FindOrder[i]=TrackOrder[n];//----寻好的赋给寻好序列}}//=====================SCAN,扫描算法==========================voidSCAN(){intm,n,temp;temp=BeginNum;Sort();//------排序cout<<"请选择开始方向:1--向外;0---向里";//------选择扫描方向cin>>m;if(m==1)direction=true;elseif(m==0)direction=false;elsecout<<"输入错误";for(inti=0;i{if(SortOrder[i]continue;else{n=i;break;}}if(direction==true)//------选择向外{for(inti=n;i{MoveDistance[i-n]=abs(SortOrder[i]-temp);temp=SortOrder[i];FindOrder[i-n]=SortOrder[i];}for(intj=n-1;j>=0;j--){MoveDistance[N-1-j]=abs(SortOrder[j]-temp);temp=SortOrder[j];FindOrder[N-1-j]=SortOrder[j];}}else//-------选择向里{for(inti=n-1;i>=0;i--){MoveDistance[N-i-4]=abs(SortOrder[i]-temp);temp=SortOrder[i];FindOrder[N-i-4]=SortOrder[i];}for(intj=n;j{MoveDistance[j]=abs(SortOrder[j]-temp);temp=TrackOrder[j];FindOrder[j]=SortOrder[j];}}}//=================CSCAN,循环扫描算法=======================voidCSCAN(){intm,n,temp;temp=BeginNum;Sort();cout<<"请选择开始方向:1--向外;0---向里";cin>>m;if(m==1)direction=true;elseif(m==0)direction=false;elsecout<<"输入错误";for(inti=0;i{if(SortOrder[i]continue;else{n=i;break;}}if(direction==true){for(inti=n;i{MoveDistance[i-n]=abs(SortOrder[i]-temp);temp=SortOrder[i];FindOrder[i-n]=SortOrder[i];}for(intj=0;j{MoveDistance[N-n+j]=abs(SortOrder[j]-temp);temp=SortOrder[j];FindOrder[N-n+j]=SortOrder[j];}}else{for(inti=n-1;i>=0;i--){MoveDistance[n-1-i]=abs(SortOrder[i]-temp);temp=SortOrder[i];FindOrder[n-1-i]=SortOrder[i];}for(intj=N-1;j>=n;j--){MoveDistance[N-j+n-1]=abs(SortOrder[j]-temp);temp=SortOrder[j];FindOrder[N-j+n-1]=SortOrder[j];}}}//========计算平均寻道时间==============voidCount(){intTotal=0;for(inti=0;i{Total+=MoveDistance[i];}AverageDistance=((double)Total)/((double)N);}voidShow(){cout<<"================从"<cout<for(inti=0;i{cout<}cout<"<cout<}intmain(){inty=1;ints;Inith();while(y){cout<<"请选择寻道方式:1--FCFS;2--SSTF;3--SCAN;4--CSCSN;";cin>>s;switch(s){case1:FCFS();Count();Show();break;case2:SSTF();Count();Show();break;case3:SCAN();Count();Show();break;case4:CSCAN();Count();Show();break;}cout<<"是否继续选择寻道算法?1--是;2--否";intp;cin>>p;y=p;}return0;}实验结果:FCFS方式:Sstf方式:SCAN方式:4.CSCSN时间:2021.03.09创作:欧阳法
MoveDistance[j]=0;
cout<<"请输入开始磁道号:
cin>>BeginNum;
for(intk=0;kFinished[k]=false;for(intl=0;lSortOrder[l]=TrackOrder[l];}//=====================排序函数,将各进程申请的磁道按从小到大排列=================voidSort(){//------冒泡排序inttemp;for(inti=N-1;i>=0;i--)for(intj=0;j{if(SortOrder[j]>SortOrder[j+1]){temp=SortOrder[j];SortOrder[j]=SortOrder[j+1];SortOrder[j+1]=temp;}}}//============FCFS,先来先服务=================================voidFCFS(){inttemp;temp=BeginNum;//--------将BeginNum赋给temp作为寻道时的当前所在磁道号for(inti=0;i{MoveDistance[i]=abs(TrackOrder[i]-temp);//-------计算移动磁道数temp=TrackOrder[i];//-------寻到后,将此道作为当前所在磁道号,赋给tempFindOrder[i]=TrackOrder[i];//-----寻好的赋给寻好序列}}//========SSTF,最短寻道法=============================voidSSTF(){inttemp,n;intA=M;temp=BeginNum;//--------将BeginNum赋给temp作为寻道时的当前所在磁道号for(inti=0;i{for(intj=0;j{if(abs(TrackOrder[j]-temp){A=abs(TrackOrder[j]-temp);n=j;}elsecontinue;}Finished[n]=true;//-------将已经寻找到的Finished赋值为trueMoveDistance[i]=A;//-------寻道长度temp=TrackOrder[n];//-------当前寻道号。A=M;//-----重置A值FindOrder[i]=TrackOrder[n];//----寻好的赋给寻好序列}}//=====================SCAN,扫描算法==========================voidSCAN(){intm,n,temp;temp=BeginNum;Sort();//------排序cout<<"请选择开始方向:1--向外;0---向里";//------选择扫描方向cin>>m;if(m==1)direction=true;elseif(m==0)direction=false;elsecout<<"输入错误";for(inti=0;i{if(SortOrder[i]continue;else{n=i;break;}}if(direction==true)//------选择向外{for(inti=n;i{MoveDistance[i-n]=abs(SortOrder[i]-temp);temp=SortOrder[i];FindOrder[i-n]=SortOrder[i];}for(intj=n-1;j>=0;j--){MoveDistance[N-1-j]=abs(SortOrder[j]-temp);temp=SortOrder[j];FindOrder[N-1-j]=SortOrder[j];}}else//-------选择向里{for(inti=n-1;i>=0;i--){MoveDistance[N-i-4]=abs(SortOrder[i]-temp);temp=SortOrder[i];FindOrder[N-i-4]=SortOrder[i];}for(intj=n;j{MoveDistance[j]=abs(SortOrder[j]-temp);temp=TrackOrder[j];FindOrder[j]=SortOrder[j];}}}//=================CSCAN,循环扫描算法=======================voidCSCAN(){intm,n,temp;temp=BeginNum;Sort();cout<<"请选择开始方向:1--向外;0---向里";cin>>m;if(m==1)direction=true;elseif(m==0)direction=false;elsecout<<"输入错误";for(inti=0;i{if(SortOrder[i]continue;else{n=i;break;}}if(direction==true){for(inti=n;i{MoveDistance[i-n]=abs(SortOrder[i]-temp);temp=SortOrder[i];FindOrder[i-n]=SortOrder[i];}for(intj=0;j{MoveDistance[N-n+j]=abs(SortOrder[j]-temp);temp=SortOrder[j];FindOrder[N-n+j]=SortOrder[j];}}else{for(inti=n-1;i>=0;i--){MoveDistance[n-1-i]=abs(SortOrder[i]-temp);temp=SortOrder[i];FindOrder[n-1-i]=SortOrder[i];}for(intj=N-1;j>=n;j--){MoveDistance[N-j+n-1]=abs(SortOrder[j]-temp);temp=SortOrder[j];FindOrder[N-j+n-1]=SortOrder[j];}}}//========计算平均寻道时间==============voidCount(){intTotal=0;for(inti=0;i{Total+=MoveDistance[i];}AverageDistance=((double)Total)/((double)N);}voidShow(){cout<<"================从"<cout<for(inti=0;i{cout<}cout<"<cout<}intmain(){inty=1;ints;Inith();while(y){cout<<"请选择寻道方式:1--FCFS;2--SSTF;3--SCAN;4--CSCSN;";cin>>s;switch(s){case1:FCFS();Count();Show();break;case2:SSTF();Count();Show();break;case3:SCAN();Count();Show();break;case4:CSCAN();Count();Show();break;}cout<<"是否继续选择寻道算法?1--是;2--否";intp;cin>>p;y=p;}return0;}实验结果:FCFS方式:Sstf方式:SCAN方式:4.CSCSN时间:2021.03.09创作:欧阳法
Finished[k]=false;
for(intl=0;lSortOrder[l]=TrackOrder[l];}//=====================排序函数,将各进程申请的磁道按从小到大排列=================voidSort(){//------冒泡排序inttemp;for(inti=N-1;i>=0;i--)for(intj=0;j{if(SortOrder[j]>SortOrder[j+1]){temp=SortOrder[j];SortOrder[j]=SortOrder[j+1];SortOrder[j+1]=temp;}}}//============FCFS,先来先服务=================================voidFCFS(){inttemp;temp=BeginNum;//--------将BeginNum赋给temp作为寻道时的当前所在磁道号for(inti=0;i{MoveDistance[i]=abs(TrackOrder[i]-temp);//-------计算移动磁道数temp=TrackOrder[i];//-------寻到后,将此道作为当前所在磁道号,赋给tempFindOrder[i]=TrackOrder[i];//-----寻好的赋给寻好序列}}//========SSTF,最短寻道法=============================voidSSTF(){inttemp,n;intA=M;temp=BeginNum;//--------将BeginNum赋给temp作为寻道时的当前所在磁道号for(inti=0;i{for(intj=0;j{if(abs(TrackOrder[j]-temp){A=abs(TrackOrder[j]-temp);n=j;}elsecontinue;}Finished[n]=true;//-------将已经寻找到的Finished赋值为trueMoveDistance[i]=A;//-------寻道长度temp=TrackOrder[n];//-------当前寻道号。A=M;//-----重置A值FindOrder[i]=TrackOrder[n];//----寻好的赋给寻好序列}}//=====================SCAN,扫描算法==========================voidSCAN(){intm,n,temp;temp=BeginNum;Sort();//------排序cout<<"请选择开始方向:1--向外;0---向里";//------选择扫描方向cin>>m;if(m==1)direction=true;elseif(m==0)direction=false;elsecout<<"输入错误";for(inti=0;i{if(SortOrder[i]continue;else{n=i;break;}}if(direction==true)//------选择向外{for(inti=n;i{MoveDistance[i-n]=abs(SortOrder[i]-temp);temp=SortOrder[i];FindOrder[i-n]=SortOrder[i];}for(intj=n-1;j>=0;j--){MoveDistance[N-1-j]=abs(SortOrder[j]-temp);temp=SortOrder[j];FindOrder[N-1-j]=SortOrder[j];}}else//-------选择向里{for(inti=n-1;i>=0;i--){MoveDistance[N-i-4]=abs(SortOrder[i]-temp);temp=SortOrder[i];FindOrder[N-i-4]=SortOrder[i];}for(intj=n;j{MoveDistance[j]=abs(SortOrder[j]-temp);temp=TrackOrder[j];FindOrder[j]=SortOrder[j];}}}//=================CSCAN,循环扫描算法=======================voidCSCAN(){intm,n,temp;temp=BeginNum;Sort();cout<<"请选择开始方向:1--向外;0---向里";cin>>m;if(m==1)direction=true;elseif(m==0)direction=false;elsecout<<"输入错误";for(inti=0;i{if(SortOrder[i]continue;else{n=i;break;}}if(direction==true){for(inti=n;i{MoveDistance[i-n]=abs(SortOrder[i]-temp);temp=SortOrder[i];FindOrder[i-n]=SortOrder[i];}for(intj=0;j{MoveDistance[N-n+j]=abs(SortOrder[j]-temp);temp=SortOrder[j];FindOrder[N-n+j]=SortOrder[j];}}else{for(inti=n-1;i>=0;i--){MoveDistance[n-1-i]=abs(SortOrder[i]-temp);temp=SortOrder[i];FindOrder[n-1-i]=SortOrder[i];}for(intj=N-1;j>=n;j--){MoveDistance[N-j+n-1]=abs(SortOrder[j]-temp);temp=SortOrder[j];FindOrder[N-j+n-1]=SortOrder[j];}}}//========计算平均寻道时间==============voidCount(){intTotal=0;for(inti=0;i{Total+=MoveDistance[i];}AverageDistance=((double)Total)/((double)N);}voidShow(){cout<<"================从"<cout<for(inti=0;i{cout<}cout<"<cout<}intmain(){inty=1;ints;Inith();while(y){cout<<"请选择寻道方式:1--FCFS;2--SSTF;3--SCAN;4--CSCSN;";cin>>s;switch(s){case1:FCFS();Count();Show();break;case2:SSTF();Count();Show();break;case3:SCAN();Count();Show();break;case4:CSCAN();Count();Show();break;}cout<<"是否继续选择寻道算法?1--是;2--否";intp;cin>>p;y=p;}return0;}实验结果:FCFS方式:Sstf方式:SCAN方式:4.CSCSN时间:2021.03.09创作:欧阳法
SortOrder[l]=TrackOrder[l];
}
//=====================排序函数,将各进程申请的磁道按从小到大排列=================
voidSort()
{//------冒泡排序
inttemp;
for(inti=N-1;i>=0;i--)
for(intj=0;j
if(SortOrder[j]>SortOrder[j+1])
temp=SortOrder[j];
SortOrder[j]=SortOrder[j+1];
SortOrder[j+1]=temp;
//============FCFS,先来先服务=================================
voidFCFS()
temp=BeginNum;//--------将BeginNum赋给temp作为寻道时的当前所在磁道号
for(inti=0;i{MoveDistance[i]=abs(TrackOrder[i]-temp);//-------计算移动磁道数temp=TrackOrder[i];//-------寻到后,将此道作为当前所在磁道号,赋给tempFindOrder[i]=TrackOrder[i];//-----寻好的赋给寻好序列}}//========SSTF,最短寻道法=============================voidSSTF(){inttemp,n;intA=M;temp=BeginNum;//--------将BeginNum赋给temp作为寻道时的当前所在磁道号for(inti=0;i{for(intj=0;j{if(abs(TrackOrder[j]-temp){A=abs(TrackOrder[j]-temp);n=j;}elsecontinue;}Finished[n]=true;//-------将已经寻找到的Finished赋值为trueMoveDistance[i]=A;//-------寻道长度temp=TrackOrder[n];//-------当前寻道号。A=M;//-----重置A值FindOrder[i]=TrackOrder[n];//----寻好的赋给寻好序列}}//=====================SCAN,扫描算法==========================voidSCAN(){intm,n,temp;temp=BeginNum;Sort();//------排序cout<<"请选择开始方向:1--向外;0---向里";//------选择扫描方向cin>>m;if(m==1)direction=true;elseif(m==0)direction=false;elsecout<<"输入错误";for(inti=0;i{if(SortOrder[i]continue;else{n=i;break;}}if(direction==true)//------选择向外{for(inti=n;i{MoveDistance[i-n]=abs(SortOrder[i]-temp);temp=SortOrder[i];FindOrder[i-n]=SortOrder[i];}for(intj=n-1;j>=0;j--){MoveDistance[N-1-j]=abs(SortOrder[j]-temp);temp=SortOrder[j];FindOrder[N-1-j]=SortOrder[j];}}else//-------选择向里{for(inti=n-1;i>=0;i--){MoveDistance[N-i-4]=abs(SortOrder[i]-temp);temp=SortOrder[i];FindOrder[N-i-4]=SortOrder[i];}for(intj=n;j{MoveDistance[j]=abs(SortOrder[j]-temp);temp=TrackOrder[j];FindOrder[j]=SortOrder[j];}}}//=================CSCAN,循环扫描算法=======================voidCSCAN(){intm,n,temp;temp=BeginNum;Sort();cout<<"请选择开始方向:1--向外;0---向里";cin>>m;if(m==1)direction=true;elseif(m==0)direction=false;elsecout<<"输入错误";for(inti=0;i{if(SortOrder[i]continue;else{n=i;break;}}if(direction==true){for(inti=n;i{MoveDistance[i-n]=abs(SortOrder[i]-temp);temp=SortOrder[i];FindOrder[i-n]=SortOrder[i];}for(intj=0;j{MoveDistance[N-n+j]=abs(SortOrder[j]-temp);temp=SortOrder[j];FindOrder[N-n+j]=SortOrder[j];}}else{for(inti=n-1;i>=0;i--){MoveDistance[n-1-i]=abs(SortOrder[i]-temp);temp=SortOrder[i];FindOrder[n-1-i]=SortOrder[i];}for(intj=N-1;j>=n;j--){MoveDistance[N-j+n-1]=abs(SortOrder[j]-temp);temp=SortOrder[j];FindOrder[N-j+n-1]=SortOrder[j];}}}//========计算平均寻道时间==============voidCount(){intTotal=0;for(inti=0;i{Total+=MoveDistance[i];}AverageDistance=((double)Total)/((double)N);}voidShow(){cout<<"================从"<cout<for(inti=0;i{cout<}cout<"<cout<}intmain(){inty=1;ints;Inith();while(y){cout<<"请选择寻道方式:1--FCFS;2--SSTF;3--SCAN;4--CSCSN;";cin>>s;switch(s){case1:FCFS();Count();Show();break;case2:SSTF();Count();Show();break;case3:SCAN();Count();Show();break;case4:CSCAN();Count();Show();break;}cout<<"是否继续选择寻道算法?1--是;2--否";intp;cin>>p;y=p;}return0;}实验结果:FCFS方式:Sstf方式:SCAN方式:4.CSCSN时间:2021.03.09创作:欧阳法
MoveDistance[i]=abs(TrackOrder[i]-temp);//-------计算移动磁道数
temp=TrackOrder[i];//-------寻到后,将此道作为当前所在磁道号,赋给temp
FindOrder[i]=TrackOrder[i];//-----寻好的赋给寻好序列
//========SSTF,最短寻道法=============================
voidSSTF()
inttemp,n;
intA=M;
for(inti=0;i{for(intj=0;j{if(abs(TrackOrder[j]-temp){A=abs(TrackOrder[j]-temp);n=j;}elsecontinue;}Finished[n]=true;//-------将已经寻找到的Finished赋值为trueMoveDistance[i]=A;//-------寻道长度temp=TrackOrder[n];//-------当前寻道号。A=M;//-----重置A值FindOrder[i]=TrackOrder[n];//----寻好的赋给寻好序列}}//=====================SCAN,扫描算法==========================voidSCAN(){intm,n,temp;temp=BeginNum;Sort();//------排序cout<<"请选择开始方向:1--向外;0---向里";//------选择扫描方向cin>>m;if(m==1)direction=true;elseif(m==0)direction=false;elsecout<<"输入错误";for(inti=0;i{if(SortOrder[i]continue;else{n=i;break;}}if(direction==true)//------选择向外{for(inti=n;i{MoveDistance[i-n]=abs(SortOrder[i]-temp);temp=SortOrder[i];FindOrder[i-n]=SortOrder[i];}for(intj=n-1;j>=0;j--){MoveDistance[N-1-j]=abs(SortOrder[j]-temp);temp=SortOrder[j];FindOrder[N-1-j]=SortOrder[j];}}else//-------选择向里{for(inti=n-1;i>=0;i--){MoveDistance[N-i-4]=abs(SortOrder[i]-temp);temp=SortOrder[i];FindOrder[N-i-4]=SortOrder[i];}for(intj=n;j{MoveDistance[j]=abs(SortOrder[j]-temp);temp=TrackOrder[j];FindOrder[j]=SortOrder[j];}}}//=================CSCAN,循环扫描算法=======================voidCSCAN(){intm,n,temp;temp=BeginNum;Sort();cout<<"请选择开始方向:1--向外;0---向里";cin>>m;if(m==1)direction=true;elseif(m==0)direction=false;elsecout<<"输入错误";for(inti=0;i{if(SortOrder[i]continue;else{n=i;break;}}if(direction==true){for(inti=n;i{MoveDistance[i-n]=abs(SortOrder[i]-temp);temp=SortOrder[i];FindOrder[i-n]=SortOrder[i];}for(intj=0;j{MoveDistance[N-n+j]=abs(SortOrder[j]-temp);temp=SortOrder[j];FindOrder[N-n+j]=SortOrder[j];}}else{for(inti=n-1;i>=0;i--){MoveDistance[n-1-i]=abs(SortOrder[i]-temp);temp=SortOrder[i];FindOrder[n-1-i]=SortOrder[i];}for(intj=N-1;j>=n;j--){MoveDistance[N-j+n-1]=abs(SortOrder[j]-temp);temp=SortOrder[j];FindOrder[N-j+n-1]=SortOrder[j];}}}//========计算平均寻道时间==============voidCount(){intTotal=0;for(inti=0;i{Total+=MoveDistance[i];}AverageDistance=((double)Total)/((double)N);}voidShow(){cout<<"================从"<cout<for(inti=0;i{cout<}cout<"<cout<}intmain(){inty=1;ints;Inith();while(y){cout<<"请选择寻道方式:1--FCFS;2--SSTF;3--SCAN;4--CSCSN;";cin>>s;switch(s){case1:FCFS();Count();Show();break;case2:SSTF();Count();Show();break;case3:SCAN();Count();Show();break;case4:CSCAN();Count();Show();break;}cout<<"是否继续选择寻道算法?1--是;2--否";intp;cin>>p;y=p;}return0;}实验结果:FCFS方式:Sstf方式:SCAN方式:4.CSCSN时间:2021.03.09创作:欧阳法
for(intj=0;j{if(abs(TrackOrder[j]-temp){A=abs(TrackOrder[j]-temp);n=j;}elsecontinue;}Finished[n]=true;//-------将已经寻找到的Finished赋值为trueMoveDistance[i]=A;//-------寻道长度temp=TrackOrder[n];//-------当前寻道号。A=M;//-----重置A值FindOrder[i]=TrackOrder[n];//----寻好的赋给寻好序列}}//=====================SCAN,扫描算法==========================voidSCAN(){intm,n,temp;temp=BeginNum;Sort();//------排序cout<<"请选择开始方向:1--向外;0---向里";//------选择扫描方向cin>>m;if(m==1)direction=true;elseif(m==0)direction=false;elsecout<<"输入错误";for(inti=0;i{if(SortOrder[i]continue;else{n=i;break;}}if(direction==true)//------选择向外{for(inti=n;i{MoveDistance[i-n]=abs(SortOrder[i]-temp);temp=SortOrder[i];FindOrder[i-n]=SortOrder[i];}for(intj=n-1;j>=0;j--){MoveDistance[N-1-j]=abs(SortOrder[j]-temp);temp=SortOrder[j];FindOrder[N-1-j]=SortOrder[j];}}else//-------选择向里{for(inti=n-1;i>=0;i--){MoveDistance[N-i-4]=abs(SortOrder[i]-temp);temp=SortOrder[i];FindOrder[N-i-4]=SortOrder[i];}for(intj=n;j{MoveDistance[j]=abs(SortOrder[j]-temp);temp=TrackOrder[j];FindOrder[j]=SortOrder[j];}}}//=================CSCAN,循环扫描算法=======================voidCSCAN(){intm,n,temp;temp=BeginNum;Sort();cout<<"请选择开始方向:1--向外;0---向里";cin>>m;if(m==1)direction=true;elseif(m==0)direction=false;elsecout<<"输入错误";for(inti=0;i{if(SortOrder[i]continue;else{n=i;break;}}if(direction==true){for(inti=n;i{MoveDistance[i-n]=abs(SortOrder[i]-temp);temp=SortOrder[i];FindOrder[i-n]=SortOrder[i];}for(intj=0;j{MoveDistance[N-n+j]=abs(SortOrder[j]-temp);temp=SortOrder[j];FindOrder[N-n+j]=SortOrder[j];}}else{for(inti=n-1;i>=0;i--){MoveDistance[n-1-i]=abs(SortOrder[i]-temp);temp=SortOrder[i];FindOrder[n-1-i]=SortOrder[i];}for(intj=N-1;j>=n;j--){MoveDistance[N-j+n-1]=abs(SortOrder[j]-temp);temp=SortOrder[j];FindOrder[N-j+n-1]=SortOrder[j];}}}//========计算平均寻道时间==============voidCount(){intTotal=0;for(inti=0;i{Total+=MoveDistance[i];}AverageDistance=((double)Total)/((double)N);}voidShow(){cout<<"================从"<cout<for(inti=0;i{cout<}cout<"<cout<}intmain(){inty=1;ints;Inith();while(y){cout<<"请选择寻道方式:1--FCFS;2--SSTF;3--SCAN;4--CSCSN;";cin>>s;switch(s){case1:FCFS();Count();Show();break;case2:SSTF();Count();Show();break;case3:SCAN();Count();Show();break;case4:CSCAN();Count();Show();break;}cout<<"是否继续选择寻道算法?1--是;2--否";intp;cin>>p;y=p;}return0;}实验结果:FCFS方式:Sstf方式:SCAN方式:4.CSCSN时间:2021.03.09创作:欧阳法
if(abs(TrackOrder[j]-temp){A=abs(TrackOrder[j]-temp);n=j;}elsecontinue;}Finished[n]=true;//-------将已经寻找到的Finished赋值为trueMoveDistance[i]=A;//-------寻道长度temp=TrackOrder[n];//-------当前寻道号。A=M;//-----重置A值FindOrder[i]=TrackOrder[n];//----寻好的赋给寻好序列}}//=====================SCAN,扫描算法==========================voidSCAN(){intm,n,temp;temp=BeginNum;Sort();//------排序cout<<"请选择开始方向:1--向外;0---向里";//------选择扫描方向cin>>m;if(m==1)direction=true;elseif(m==0)direction=false;elsecout<<"输入错误";for(inti=0;i{if(SortOrder[i]continue;else{n=i;break;}}if(direction==true)//------选择向外{for(inti=n;i{MoveDistance[i-n]=abs(SortOrder[i]-temp);temp=SortOrder[i];FindOrder[i-n]=SortOrder[i];}for(intj=n-1;j>=0;j--){MoveDistance[N-1-j]=abs(SortOrder[j]-temp);temp=SortOrder[j];FindOrder[N-1-j]=SortOrder[j];}}else//-------选择向里{for(inti=n-1;i>=0;i--){MoveDistance[N-i-4]=abs(SortOrder[i]-temp);temp=SortOrder[i];FindOrder[N-i-4]=SortOrder[i];}for(intj=n;j{MoveDistance[j]=abs(SortOrder[j]-temp);temp=TrackOrder[j];FindOrder[j]=SortOrder[j];}}}//=================CSCAN,循环扫描算法=======================voidCSCAN(){intm,n,temp;temp=BeginNum;Sort();cout<<"请选择开始方向:1--向外;0---向里";cin>>m;if(m==1)direction=true;elseif(m==0)direction=false;elsecout<<"输入错误";for(inti=0;i{if(SortOrder[i]continue;else{n=i;break;}}if(direction==true){for(inti=n;i{MoveDistance[i-n]=abs(SortOrder[i]-temp);temp=SortOrder[i];FindOrder[i-n]=SortOrder[i];}for(intj=0;j{MoveDistance[N-n+j]=abs(SortOrder[j]-temp);temp=SortOrder[j];FindOrder[N-n+j]=SortOrder[j];}}else{for(inti=n-1;i>=0;i--){MoveDistance[n-1-i]=abs(SortOrder[i]-temp);temp=SortOrder[i];FindOrder[n-1-i]=SortOrder[i];}for(intj=N-1;j>=n;j--){MoveDistance[N-j+n-1]=abs(SortOrder[j]-temp);temp=SortOrder[j];FindOrder[N-j+n-1]=SortOrder[j];}}}//========计算平均寻道时间==============voidCount(){intTotal=0;for(inti=0;i{Total+=MoveDistance[i];}AverageDistance=((double)Total)/((double)N);}voidShow(){cout<<"================从"<cout<for(inti=0;i{cout<}cout<"<cout<}intmain(){inty=1;ints;Inith();while(y){cout<<"请选择寻道方式:1--FCFS;2--SSTF;3--SCAN;4--CSCSN;";cin>>s;switch(s){case1:FCFS();Count();Show();break;case2:SSTF();Count();Show();break;case3:SCAN();Count();Show();break;case4:CSCAN();Count();Show();break;}cout<<"是否继续选择寻道算法?1--是;2--否";intp;cin>>p;y=p;}return0;}实验结果:FCFS方式:Sstf方式:SCAN方式:4.CSCSN时间:2021.03.09创作:欧阳法
A=abs(TrackOrder[j]-temp);
n=j;
elsecontinue;
Finished[n]=true;//-------将已经寻找到的Finished赋值为true
MoveDistance[i]=A;//-------寻道长度
temp=TrackOrder[n];//-------当前寻道号。
A=M;//-----重置A值
FindOrder[i]=TrackOrder[n];//----寻好的赋给寻好序列
//=====================SCAN,扫描算法==========================
voidSCAN()
intm,n,temp;
temp=BeginNum;
Sort();//------排序
cout<<"请选择开始方向:
1--向外;0---向里";//------选择扫描方向
cin>>m;
if(m==1)
direction=true;
elseif(m==0)
direction=false;
else
cout<<"输入错误";
for(inti=0;i{if(SortOrder[i]continue;else{n=i;break;}}if(direction==true)//------选择向外{for(inti=n;i{MoveDistance[i-n]=abs(SortOrder[i]-temp);temp=SortOrder[i];FindOrder[i-n]=SortOrder[i];}for(intj=n-1;j>=0;j--){MoveDistance[N-1-j]=abs(SortOrder[j]-temp);temp=SortOrder[j];FindOrder[N-1-j]=SortOrder[j];}}else//-------选择向里{for(inti=n-1;i>=0;i--){MoveDistance[N-i-4]=abs(SortOrder[i]-temp);temp=SortOrder[i];FindOrder[N-i-4]=SortOrder[i];}for(intj=n;j{MoveDistance[j]=abs(SortOrder[j]-temp);temp=TrackOrder[j];FindOrder[j]=SortOrder[j];}}}//=================CSCAN,循环扫描算法=======================voidCSCAN(){intm,n,temp;temp=BeginNum;Sort();cout<<"请选择开始方向:1--向外;0---向里";cin>>m;if(m==1)direction=true;elseif(m==0)direction=false;elsecout<<"输入错误";for(inti=0;i{if(SortOrder[i]continue;else{n=i;break;}}if(direction==true){for(inti=n;i{MoveDistance[i-n]=abs(SortOrder[i]-temp);temp=SortOrder[i];FindOrder[i-n]=SortOrder[i];}for(intj=0;j{MoveDistance[N-n+j]=abs(SortOrder[j]-temp);temp=SortOrder[j];FindOrder[N-n+j]=SortOrder[j];}}else{for(inti=n-1;i>=0;i--){MoveDistance[n-1-i]=abs(SortOrder[i]-temp);temp=SortOrder[i];FindOrder[n-1-i]=SortOrder[i];}for(intj=N-1;j>=n;j--){MoveDistance[N-j+n-1]=abs(SortOrder[j]-temp);temp=SortOrder[j];FindOrder[N-j+n-1]=SortOrder[j];}}}//========计算平均寻道时间==============voidCount(){intTotal=0;for(inti=0;i{Total+=MoveDistance[i];}AverageDistance=((double)Total)/((double)N);}voidShow(){cout<<"================从"<cout<for(inti=0;i{cout<}cout<"<cout<}intmain(){inty=1;ints;Inith();while(y){cout<<"请选择寻道方式:1--FCFS;2--SSTF;3--SCAN;4--CSCSN;";cin>>s;switch(s){case1:FCFS();Count();Show();break;case2:SSTF();Count();Show();break;case3:SCAN();Count();Show();break;case4:CSCAN();Count();Show();break;}cout<<"是否继续选择寻道算法?1--是;2--否";intp;cin>>p;y=p;}return0;}实验结果:FCFS方式:Sstf方式:SCAN方式:4.CSCSN时间:2021.03.09创作:欧阳法
if(SortOrder[i]continue;else{n=i;break;}}if(direction==true)//------选择向外{for(inti=n;i{MoveDistance[i-n]=abs(SortOrder[i]-temp);temp=SortOrder[i];FindOrder[i-n]=SortOrder[i];}for(intj=n-1;j>=0;j--){MoveDistance[N-1-j]=abs(SortOrder[j]-temp);temp=SortOrder[j];FindOrder[N-1-j]=SortOrder[j];}}else//-------选择向里{for(inti=n-1;i>=0;i--){MoveDistance[N-i-4]=abs(SortOrder[i]-temp);temp=SortOrder[i];FindOrder[N-i-4]=SortOrder[i];}for(intj=n;j{MoveDistance[j]=abs(SortOrder[j]-temp);temp=TrackOrder[j];FindOrder[j]=SortOrder[j];}}}//=================CSCAN,循环扫描算法=======================voidCSCAN(){intm,n,temp;temp=BeginNum;Sort();cout<<"请选择开始方向:1--向外;0---向里";cin>>m;if(m==1)direction=true;elseif(m==0)direction=false;elsecout<<"输入错误";for(inti=0;i{if(SortOrder[i]continue;else{n=i;break;}}if(direction==true){for(inti=n;i{MoveDistance[i-n]=abs(SortOrder[i]-temp);temp=SortOrder[i];FindOrder[i-n]=SortOrder[i];}for(intj=0;j{MoveDistance[N-n+j]=abs(SortOrder[j]-temp);temp=SortOrder[j];FindOrder[N-n+j]=SortOrder[j];}}else{for(inti=n-1;i>=0;i--){MoveDistance[n-1-i]=abs(SortOrder[i]-temp);temp=SortOrder[i];FindOrder[n-1-i]=SortOrder[i];}for(intj=N-1;j>=n;j--){MoveDistance[N-j+n-1]=abs(SortOrder[j]-temp);temp=SortOrder[j];FindOrder[N-j+n-1]=SortOrder[j];}}}//========计算平均寻道时间==============voidCount(){intTotal=0;for(inti=0;i{Total+=MoveDistance[i];}AverageDistance=((double)Total)/((double)N);}voidShow(){cout<<"================从"<cout<for(inti=0;i{cout<}cout<"<cout<}intmain(){inty=1;ints;Inith();while(y){cout<<"请选择寻道方式:1--FCFS;2--SSTF;3--SCAN;4--CSCSN;";cin>>s;switch(s){case1:FCFS();Count();Show();break;case2:SSTF();Count();Show();break;case3:SCAN();Count();Show();break;case4:CSCAN();Count();Show();break;}cout<<"是否继续选择寻道算法?1--是;2--否";intp;cin>>p;y=p;}return0;}实验结果:FCFS方式:Sstf方式:SCAN方式:4.CSCSN时间:2021.03.09创作:欧阳法
continue;
n=i;
break;
if(direction==true)//------选择向外
for(inti=n;i{MoveDistance[i-n]=abs(SortOrder[i]-temp);temp=SortOrder[i];FindOrder[i-n]=SortOrder[i];}for(intj=n-1;j>=0;j--){MoveDistance[N-1-j]=abs(SortOrder[j]-temp);temp=SortOrder[j];FindOrder[N-1-j]=SortOrder[j];}}else//-------选择向里{for(inti=n-1;i>=0;i--){MoveDistance[N-i-4]=abs(SortOrder[i]-temp);temp=SortOrder[i];FindOrder[N-i-4]=SortOrder[i];}for(intj=n;j{MoveDistance[j]=abs(SortOrder[j]-temp);temp=TrackOrder[j];FindOrder[j]=SortOrder[j];}}}//=================CSCAN,循环扫描算法=======================voidCSCAN(){intm,n,temp;temp=BeginNum;Sort();cout<<"请选择开始方向:1--向外;0---向里";cin>>m;if(m==1)direction=true;elseif(m==0)direction=false;elsecout<<"输入错误";for(inti=0;i{if(SortOrder[i]continue;else{n=i;break;}}if(direction==true){for(inti=n;i{MoveDistance[i-n]=abs(SortOrder[i]-temp);temp=SortOrder[i];FindOrder[i-n]=SortOrder[i];}for(intj=0;j{MoveDistance[N-n+j]=abs(SortOrder[j]-temp);temp=SortOrder[j];FindOrder[N-n+j]=SortOrder[j];}}else{for(inti=n-1;i>=0;i--){MoveDistance[n-1-i]=abs(SortOrder[i]-temp);temp=SortOrder[i];FindOrder[n-1-i]=SortOrder[i];}for(intj=N-1;j>=n;j--){MoveDistance[N-j+n-1]=abs(SortOrder[j]-temp);temp=SortOrder[j];FindOrder[N-j+n-1]=SortOrder[j];}}}//========计算平均寻道时间==============voidCount(){intTotal=0;for(inti=0;i{Total+=MoveDistance[i];}AverageDistance=((double)Total)/((double)N);}voidShow(){cout<<"================从"<cout<for(inti=0;i{cout<}cout<"<cout<}intmain(){inty=1;ints;Inith();while(y){cout<<"请选择寻道方式:1--FCFS;2--SSTF;3--SCAN;4--CSCSN;";cin>>s;switch(s){case1:FCFS();Count();Show();break;case2:SSTF();Count();Show();break;case3:SCAN();Count();Show();break;case4:CSCAN();Count();Show();break;}cout<<"是否继续选择寻道算法?1--是;2--否";intp;cin>>p;y=p;}return0;}实验结果:FCFS方式:Sstf方式:SCAN方式:4.CSCSN时间:2021.03.09创作:欧阳法
MoveDistance[i-n]=abs(SortOrder[i]-temp);
temp=SortOrder[i];
FindOrder[i-n]=SortOrder[i];
for(intj=n-1;j>=0;j--)
MoveDistance[N-1-j]=abs(SortOrder[j]-temp);
FindOrder[N-1-j]=SortOrder[j];
else//-------选择向里
for(inti=n-1;i>=0;i--)
MoveDistance[N-i-4]=abs(SortOrder[i]-temp);
FindOrder[N-i-4]=SortOrder[i];
for(intj=n;j{MoveDistance[j]=abs(SortOrder[j]-temp);temp=TrackOrder[j];FindOrder[j]=SortOrder[j];}}}//=================CSCAN,循环扫描算法=======================voidCSCAN(){intm,n,temp;temp=BeginNum;Sort();cout<<"请选择开始方向:1--向外;0---向里";cin>>m;if(m==1)direction=true;elseif(m==0)direction=false;elsecout<<"输入错误";for(inti=0;i{if(SortOrder[i]continue;else{n=i;break;}}if(direction==true){for(inti=n;i{MoveDistance[i-n]=abs(SortOrder[i]-temp);temp=SortOrder[i];FindOrder[i-n]=SortOrder[i];}for(intj=0;j{MoveDistance[N-n+j]=abs(SortOrder[j]-temp);temp=SortOrder[j];FindOrder[N-n+j]=SortOrder[j];}}else{for(inti=n-1;i>=0;i--){MoveDistance[n-1-i]=abs(SortOrder[i]-temp);temp=SortOrder[i];FindOrder[n-1-i]=SortOrder[i];}for(intj=N-1;j>=n;j--){MoveDistance[N-j+n-1]=abs(SortOrder[j]-temp);temp=SortOrder[j];FindOrder[N-j+n-1]=SortOrder[j];}}}//========计算平均寻道时间==============voidCount(){intTotal=0;for(inti=0;i{Total+=MoveDistance[i];}AverageDistance=((double)Total)/((double)N);}voidShow(){cout<<"================从"<cout<for(inti=0;i{cout<}cout<"<cout<}intmain(){inty=1;ints;Inith();while(y){cout<<"请选择寻道方式:1--FCFS;2--SSTF;3--SCAN;4--CSCSN;";cin>>s;switch(s){case1:FCFS();Count();Show();break;case2:SSTF();Count();Show();break;case3:SCAN();Count();Show();break;case4:CSCAN();Count();Show();break;}cout<<"是否继续选择寻道算法?1--是;2--否";intp;cin>>p;y=p;}return0;}实验结果:FCFS方式:Sstf方式:SCAN方式:4.CSCSN时间:2021.03.09创作:欧阳法
MoveDistance[j]=abs(SortOrder[j]-temp);
temp=TrackOrder[j];
FindOrder[j]=SortOrder[j];
//=================CSCAN,循环扫描算法=======================
voidCSCAN()
Sort();
1--向外;0---向里";
for(inti=0;i{if(SortOrder[i]continue;else{n=i;break;}}if(direction==true){for(inti=n;i{MoveDistance[i-n]=abs(SortOrder[i]-temp);temp=SortOrder[i];FindOrder[i-n]=SortOrder[i];}for(intj=0;j{MoveDistance[N-n+j]=abs(SortOrder[j]-temp);temp=SortOrder[j];FindOrder[N-n+j]=SortOrder[j];}}else{for(inti=n-1;i>=0;i--){MoveDistance[n-1-i]=abs(SortOrder[i]-temp);temp=SortOrder[i];FindOrder[n-1-i]=SortOrder[i];}for(intj=N-1;j>=n;j--){MoveDistance[N-j+n-1]=abs(SortOrder[j]-temp);temp=SortOrder[j];FindOrder[N-j+n-1]=SortOrder[j];}}}//========计算平均寻道时间==============voidCount(){intTotal=0;for(inti=0;i{Total+=MoveDistance[i];}AverageDistance=((double)Total)/((double)N);}voidShow(){cout<<"================从"<cout<for(inti=0;i{cout<}cout<"<cout<}intmain(){inty=1;ints;Inith();while(y){cout<<"请选择寻道方式:1--FCFS;2--SSTF;3--SCAN;4--CSCSN;";cin>>s;switch(s){case1:FCFS();Count();Show();break;case2:SSTF();Count();Show();break;case3:SCAN();Count();Show();break;case4:CSCAN();Count();Show();break;}cout<<"是否继续选择寻道算法?1--是;2--否";intp;cin>>p;y=p;}return0;}实验结果:FCFS方式:Sstf方式:SCAN方式:4.CSCSN时间:2021.03.09创作:欧阳法
if(SortOrder[i]continue;else{n=i;break;}}if(direction==true){for(inti=n;i{MoveDistance[i-n]=abs(SortOrder[i]-temp);temp=SortOrder[i];FindOrder[i-n]=SortOrder[i];}for(intj=0;j{MoveDistance[N-n+j]=abs(SortOrder[j]-temp);temp=SortOrder[j];FindOrder[N-n+j]=SortOrder[j];}}else{for(inti=n-1;i>=0;i--){MoveDistance[n-1-i]=abs(SortOrder[i]-temp);temp=SortOrder[i];FindOrder[n-1-i]=SortOrder[i];}for(intj=N-1;j>=n;j--){MoveDistance[N-j+n-1]=abs(SortOrder[j]-temp);temp=SortOrder[j];FindOrder[N-j+n-1]=SortOrder[j];}}}//========计算平均寻道时间==============voidCount(){intTotal=0;for(inti=0;i{Total+=MoveDistance[i];}AverageDistance=((double)Total)/((double)N);}voidShow(){cout<<"================从"<cout<for(inti=0;i{cout<}cout<"<cout<}intmain(){inty=1;ints;Inith();while(y){cout<<"请选择寻道方式:1--FCFS;2--SSTF;3--SCAN;4--CSCSN;";cin>>s;switch(s){case1:FCFS();Count();Show();break;case2:SSTF();Count();Show();break;case3:SCAN();Count();Show();break;case4:CSCAN();Count();Show();break;}cout<<"是否继续选择寻道算法?1--是;2--否";intp;cin>>p;y=p;}return0;}实验结果:FCFS方式:Sstf方式:SCAN方式:4.CSCSN时间:2021.03.09创作:欧阳法
if(direction==true)
for(inti=n;i{MoveDistance[i-n]=abs(SortOrder[i]-temp);temp=SortOrder[i];FindOrder[i-n]=SortOrder[i];}for(intj=0;j{MoveDistance[N-n+j]=abs(SortOrder[j]-temp);temp=SortOrder[j];FindOrder[N-n+j]=SortOrder[j];}}else{for(inti=n-1;i>=0;i--){MoveDistance[n-1-i]=abs(SortOrder[i]-temp);temp=SortOrder[i];FindOrder[n-1-i]=SortOrder[i];}for(intj=N-1;j>=n;j--){MoveDistance[N-j+n-1]=abs(SortOrder[j]-temp);temp=SortOrder[j];FindOrder[N-j+n-1]=SortOrder[j];}}}//========计算平均寻道时间==============voidCount(){intTotal=0;for(inti=0;i{Total+=MoveDistance[i];}AverageDistance=((double)Total)/((double)N);}voidShow(){cout<<"================从"<cout<for(inti=0;i{cout<}cout<"<cout<}intmain(){inty=1;ints;Inith();while(y){cout<<"请选择寻道方式:1--FCFS;2--SSTF;3--SCAN;4--CSCSN;";cin>>s;switch(s){case1:FCFS();Count();Show();break;case2:SSTF();Count();Show();break;case3:SCAN();Count();Show();break;case4:CSCAN();Count();Show();break;}cout<<"是否继续选择寻道算法?1--是;2--否";intp;cin>>p;y=p;}return0;}实验结果:FCFS方式:Sstf方式:SCAN方式:4.CSCSN时间:2021.03.09创作:欧阳法
for(intj=0;j{MoveDistance[N-n+j]=abs(SortOrder[j]-temp);temp=SortOrder[j];FindOrder[N-n+j]=SortOrder[j];}}else{for(inti=n-1;i>=0;i--){MoveDistance[n-1-i]=abs(SortOrder[i]-temp);temp=SortOrder[i];FindOrder[n-1-i]=SortOrder[i];}for(intj=N-1;j>=n;j--){MoveDistance[N-j+n-1]=abs(SortOrder[j]-temp);temp=SortOrder[j];FindOrder[N-j+n-1]=SortOrder[j];}}}//========计算平均寻道时间==============voidCount(){intTotal=0;for(inti=0;i{Total+=MoveDistance[i];}AverageDistance=((double)Total)/((double)N);}voidShow(){cout<<"================从"<cout<for(inti=0;i{cout<}cout<"<cout<}intmain(){inty=1;ints;Inith();while(y){cout<<"请选择寻道方式:1--FCFS;2--SSTF;3--SCAN;4--CSCSN;";cin>>s;switch(s){case1:FCFS();Count();Show();break;case2:SSTF();Count();Show();break;case3:SCAN();Count();Show();break;case4:CSCAN();Count();Show();break;}cout<<"是否继续选择寻道算法?1--是;2--否";intp;cin>>p;y=p;}return0;}实验结果:FCFS方式:Sstf方式:SCAN方式:4.CSCSN时间:2021.03.09创作:欧阳法
MoveDistance[N-n+j]=abs(SortOrder[j]-temp);
FindOrder[N-n+j]=SortOrder[j];
MoveDistance[n-1-i]=abs(SortOrder[i]-temp);
FindOrder[n-1-i]=SortOrder[i];
for(intj=N-1;j>=n;j--)
MoveDistance[N-j+n-1]=abs(SortOrder[j]-temp);
FindOrder[N-j+n-1]=SortOrder[j];
//========计算平均寻道时间==============
voidCount()
intTotal=0;
for(inti=0;i{Total+=MoveDistance[i];}AverageDistance=((double)Total)/((double)N);}voidShow(){cout<<"================从"<cout<for(inti=0;i{cout<}cout<"<cout<}intmain(){inty=1;ints;Inith();while(y){cout<<"请选择寻道方式:1--FCFS;2--SSTF;3--SCAN;4--CSCSN;";cin>>s;switch(s){case1:FCFS();Count();Show();break;case2:SSTF();Count();Show();break;case3:SCAN();Count();Show();break;case4:CSCAN();Count();Show();break;}cout<<"是否继续选择寻道算法?1--是;2--否";intp;cin>>p;y=p;}return0;}实验结果:FCFS方式:Sstf方式:SCAN方式:4.CSCSN时间:2021.03.09创作:欧阳法
Total+=MoveDistance[i];
AverageDistance=((double)Total)/((double)N);
voidShow()
cout<<"================从"<cout<for(inti=0;i{cout<}cout<"<cout<}intmain(){inty=1;ints;Inith();while(y){cout<<"请选择寻道方式:1--FCFS;2--SSTF;3--SCAN;4--CSCSN;";cin>>s;switch(s){case1:FCFS();Count();Show();break;case2:SSTF();Count();Show();break;case3:SCAN();Count();Show();break;case4:CSCAN();Count();Show();break;}cout<<"是否继续选择寻道算法?1--是;2--否";intp;cin>>p;y=p;}return0;}实验结果:FCFS方式:Sstf方式:SCAN方式:4.CSCSN时间:2021.03.09创作:欧阳法
cout<for(inti=0;i{cout<}cout<"<cout<}intmain(){inty=1;ints;Inith();while(y){cout<<"请选择寻道方式:1--FCFS;2--SSTF;3--SCAN;4--CSCSN;";cin>>s;switch(s){case1:FCFS();Count();Show();break;case2:SSTF();Count();Show();break;case3:SCAN();Count();Show();break;case4:CSCAN();Count();Show();break;}cout<<"是否继续选择寻道算法?1--是;2--否";intp;cin>>p;y=p;}return0;}实验结果:FCFS方式:Sstf方式:SCAN方式:4.CSCSN时间:2021.03.09创作:欧阳法
for(inti=0;i{cout<}cout<"<cout<}intmain(){inty=1;ints;Inith();while(y){cout<<"请选择寻道方式:1--FCFS;2--SSTF;3--SCAN;4--CSCSN;";cin>>s;switch(s){case1:FCFS();Count();Show();break;case2:SSTF();Count();Show();break;case3:SCAN();Count();Show();break;case4:CSCAN();Count();Show();break;}cout<<"是否继续选择寻道算法?1--是;2--否";intp;cin>>p;y=p;}return0;}实验结果:FCFS方式:Sstf方式:SCAN方式:4.CSCSN时间:2021.03.09创作:欧阳法
cout<}cout<"<cout<}intmain(){inty=1;ints;Inith();while(y){cout<<"请选择寻道方式:1--FCFS;2--SSTF;3--SCAN;4--CSCSN;";cin>>s;switch(s){case1:FCFS();Count();Show();break;case2:SSTF();Count();Show();break;case3:SCAN();Count();Show();break;case4:CSCAN();Count();Show();break;}cout<<"是否继续选择寻道算法?1--是;2--否";intp;cin>>p;y=p;}return0;}实验结果:FCFS方式:Sstf方式:SCAN方式:4.CSCSN时间:2021.03.09创作:欧阳法
cout<"<cout<}intmain(){inty=1;ints;Inith();while(y){cout<<"请选择寻道方式:1--FCFS;2--SSTF;3--SCAN;4--CSCSN;";cin>>s;switch(s){case1:FCFS();Count();Show();break;case2:SSTF();Count();Show();break;case3:SCAN();Count();Show();break;case4:CSCAN();Count();Show();break;}cout<<"是否继续选择寻道算法?1--是;2--否";intp;cin>>p;y=p;}return0;}实验结果:FCFS方式:Sstf方式:SCAN方式:4.CSCSN时间:2021.03.09创作:欧阳法
"<cout<}intmain(){inty=1;ints;Inith();while(y){cout<<"请选择寻道方式:1--FCFS;2--SSTF;3--SCAN;4--CSCSN;";cin>>s;switch(s){case1:FCFS();Count();Show();break;case2:SSTF();Count();Show();break;case3:SCAN();Count();Show();break;case4:CSCAN();Count();Show();break;}cout<<"是否继续选择寻道算法?1--是;2--否";intp;cin>>p;y=p;}return0;}实验结果:FCFS方式:Sstf方式:SCAN方式:4.CSCSN时间:2021.03.09创作:欧阳法
cout<}intmain(){inty=1;ints;Inith();while(y){cout<<"请选择寻道方式:1--FCFS;2--SSTF;3--SCAN;4--CSCSN;";cin>>s;switch(s){case1:FCFS();Count();Show();break;case2:SSTF();Count();Show();break;case3:SCAN();Count();Show();break;case4:CSCAN();Count();Show();break;}cout<<"是否继续选择寻道算法?1--是;2--否";intp;cin>>p;y=p;}return0;}实验结果:FCFS方式:Sstf方式:SCAN方式:4.CSCSN时间:2021.03.09创作:欧阳法
intmain()
inty=1;
ints;
Inith();
while(y)
cout<<"请选择寻道方式:
1--FCFS;2--SSTF;3--SCAN;4--CSCSN;";
cin>>s;
switch(s)
case1:
FCFS();Count();Show();break;
case2:
SSTF();Count();Show();break;
case3:
SCAN();Count();Show();break;
case4:
CSCAN();Count();Show();break;
cout<<"是否继续选择寻道算法?
1--是;2--否";
intp;
cin>>p;
y=p;
return0;
实验结果:
FCFS方式:
Sstf方式:
SCAN方式:
4.CSCSN
copyright@ 2008-2023 冰点文库 网站版权所有
经营许可证编号:鄂ICP备19020893号-2