全文预览

磁盘调度算法及代码的实现课程设计报告

上传者:业精于勤 |  格式:doc  |  页数:26 |  大小:0KB

文档介绍
头访问的方向移动的总道数结束六.课程设计具体步骤1.定义函数部分主要代码#include<iostream>#include<ctime>usingnamespacestd;voidFCFS(inta[],intn);voidSSTF(inta[],intn);voidSCAN(inta[],intn);voidCSCAN(inta[],intn);2.先来先服务(FCFS)算法部分主要代码voidFCFS(inta[],intn){intsum=0,j,i,first=0,now;cout<<"请输入当前磁道号:";cin>>now;//确定当前磁头所在位置cout<<"磁盘调度顺序为:"<<endl;for(i=0;i<n;i++){cout<<a[i]<<"";}for(i=0,j=1;j<n;i++,j++){first+=abs(a[j]-a[i]);}sum+=first+abs(now-a[0]);cout<<endl;cout<<"移动的总磁道数为:"<<sum<<endl;}3.最短寻道时间优先(SSTF)算法部分主要代码for(i=0;i<n;i++)for(j=i+1;j<n;j++){if(a[i]>a[j]){temp=a[i];a[i]=a[j];a[j]=temp;}}if(a[n-1]<=now)//当前磁头位置大于最外围欲访问磁道{for(i=n-1;i>=0;i--)cout<<a[i]<<"";sum=now-a[0];}if(l=-1)//磁头位置里侧的磁道已访问完{for(j=r;j<n;j++)//访问磁头位置外侧的磁道{cout<<a[j]<<"";}sum+=a[n-1]-a[0];}if(r==n)//磁头位置外侧的磁道已访问完{for(j=k-1;j>-1;j--)//访问磁头位置里侧的磁道{cout<<a[j]<<"";

收藏

分享

举报
下载此文档