欢迎来到天天文库
浏览记录
ID:1306907
大小:47.00 KB
页数:13页
时间:2017-11-10
《操作系统磁盘调度算法(c++)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、#include#include#includeusingnamespacestd;constintMaxNumber=100;intTrackOrder[MaxNumber];intMoveDistance[MaxNumber];//----移动距离;intFindOrder[MaxNumber];//-----寻好序列。doubleAverageDistance;//-----平均寻道长度booldirection;//-----方向true时为向外,fal
2、se为向里intBeginNum;//----开始磁道号。intM;//----磁道数。intN;//-----提出磁盘I/O申请的进程数intSortOrder[MaxNumber];//----排序后的序列boolFinished[MaxNumber];voidInith(){cout<<"请输入磁道数:";cin>>M;cout<<"请输入提出磁盘I/O申请的进程数:";cin>>N;cout<<"请依次输入要访问的磁道号:";for(inti=0;i>TrackOrder[i];for
3、(intj=0;j>BeginNum;for(intk=0;k=0;
4、i--)for(intj=0;jSortOrder[j+1]){temp=SortOrder[j];SortOrder[j]=SortOrder[j+1];SortOrder[j+1]=temp;}}}//============FCFS,先来先服务=================================voidFCFS(){inttemp;temp=BeginNum;//--------将BeginNum赋给temp作为寻道时的当前所在磁道号for(int
5、i=0;i6、------将BeginNum赋给temp作为寻道时的当前所在磁道号for(inti=0;i7、--寻道长度temp=TrackOrder[n];//-------当前寻道号。A=M;//-----重置A值FindOrder[i]=TrackOrder[n];//----寻好的赋给寻好序列}}//=====================SCAN,扫描算法==========================voidSCAN(){intm,n,temp;temp=BeginNum;Sort();//------排序cout<<"请选择开始方向:1--向外;0---向里";//------选择扫描方向cin>>m8、;if(m==1)direction=true;elseif(m==0)direction=false;elsecout<<"输入错误";for(inti=0;i
6、------将BeginNum赋给temp作为寻道时的当前所在磁道号for(inti=0;i7、--寻道长度temp=TrackOrder[n];//-------当前寻道号。A=M;//-----重置A值FindOrder[i]=TrackOrder[n];//----寻好的赋给寻好序列}}//=====================SCAN,扫描算法==========================voidSCAN(){intm,n,temp;temp=BeginNum;Sort();//------排序cout<<"请选择开始方向:1--向外;0---向里";//------选择扫描方向cin>>m8、;if(m==1)direction=true;elseif(m==0)direction=false;elsecout<<"输入错误";for(inti=0;i
7、--寻道长度temp=TrackOrder[n];//-------当前寻道号。A=M;//-----重置A值FindOrder[i]=TrackOrder[n];//----寻好的赋给寻好序列}}//=====================SCAN,扫描算法==========================voidSCAN(){intm,n,temp;temp=BeginNum;Sort();//------排序cout<<"请选择开始方向:1--向外;0---向里";//------选择扫描方向cin>>m
8、;if(m==1)direction=true;elseif(m==0)direction=false;elsecout<<"输入错误";for(inti=0;i
此文档下载收益归作者所有