=now)//磁头位置小于最里欲访问磁道{for(i=0;i =now)//磁头位置小于最里欲访问磁道{for(i=0;i

全文预览

操作系统实验三磁盘调度算法的实现

上传者:非学无以广才 |  格式:doc  |  页数:10 |  大小:140KB

文档介绍
-1]<=now)//磁头位置大于最外围欲访问磁道{for(i=0;i<n;i++)cout<<a[i]<<"";sum=now-2*a[0]+a[n-1];}elseif(a[0]>=now)//磁头位置小于最里欲访问磁道{for(i=0;i<n;i++)cout<<a[i]<<"";sum=a[n-1]-now;}else//磁头位置在最里侧磁道与最外侧磁道之间{intd;while(a[k]<now){k++;}l=k-1;//在磁头位置的前一个欲访问磁道r=k;//磁头欲访问磁道 cout<<"请输入当前磁头移动的方向(0表示向内,1表示向外):";cin>>d;//确定磁头访问的方向 cout<<"磁盘调度顺序为:";if(d==0||d==1) {if(d==1)//磁头向外侧访问{for(j=r;j<n;j++)//先访问外侧磁道再转向最里欲访问磁道{cout<<a[j]<<""; }for(j=0;j<r;j++) {cout<<a[j]<<""; }sum=2*a[n-1]-now-2*a[0]+a[l]; }if(d==0)//磁头向内侧访问{ for(j=r-1;j>=0;j--) {cout<<a[j]<<""; } for(j=n-1;j>=r;j--)// {cout<<a[j]<<""; } sum=2*a[n-1]-2*a[0]+now-a[r]; } } else cout<<"请输入0或1!";}cout<<endl;cout<<"移动的总道数:"<<sum<<endl;}实验结果:1.先来先服务算法(FCFS)测试结果2.最短寻道时间算法(SSTF)测试结果3.循环扫描算法(SCAN)测试结果4.循环扫描算法(CSCAN)测试结果由以上测试结果可知,在相同的实验前提下,SSTF移动的总道数最少,性能最优附录(可包括源程序清单或其它说明)

收藏

分享

举报
下载此文档