logo资料库

磁盘调度算法实验报告.doc

第1页 / 共9页
第2页 / 共9页
第3页 / 共9页
第4页 / 共9页
第5页 / 共9页
第6页 / 共9页
第7页 / 共9页
第8页 / 共9页
资料共9页,剩余部分请下载后查看
1.依次输入 9 个磁道数:40 90 170 38 110 20 144 48 59 磁盘调度算法实验报告文档 2.选择调度算法: 先来先服务算法访问顺序和平均寻道长度: 最短寻道时间优先的访问顺序和平均寻道长度:
扫描算法的磁道访问顺序和平均寻道长度: 1.移动壁由里向外 2.移动壁由外向里 循环算法的磁道访问顺序和平均寻道长度: 1.移动壁由里向外
2.移动壁由外向里 源代码为: #include #include void FCFS(int b[],int n,int init) { //先来先服务 int i,s,sum; int a[20]; for(i=0;i
int a[20]; for(i=0;i=0;i--) { s=a[0]; p=0; for(j=0;j<=i;j++) if(abs(a[j]-k)=0;i--) { biaoji=0; for(j=0;j<=i;j++) if(a[j]-k<0) { biaoji=1; p=j; break; } if(biaoji==1) { s=a[p]; for(j=0;j<=i;j++) if(a[j]
p=j; } a[p]=a[i]; printf("第%d 次访问的磁道:%d\n",n-i,s); sum+=k-s; k=s; } else { s=a[0]; for(j=0;j<=i;j++) if(a[j]-k<=s-k) { s=a[j]; p=j; } a[p]=a[i]; printf("第%d 次访问的磁道:%d\n",n-i,s); sum+=abs(k-s); k=s; } } printf("平均寻道长度:%f\n",sum*1.0/n); } void SCAN2(int b[],int n,int k) { //循环算法 int i,j,s,sum=0,p,biaoji; int a[20]; for(i=0;i=0;i--) { biaoji=0; for(j=0;j<=i;j++) if(a[j]-k>0) { biaoji=1; p=j; break; } if(biaoji==1) {
s=a[p]; for(j=0;j<=i;j++) if(a[j]>k&&a[j]-karray[j])//对磁道号进行从小到大排列
temp=array[i]; array[i]=array[j]; array[j]=temp; { } } } printf("请输入当前的磁道号:"); scanf("%d",&now); if(array[m-1]<=now)//判断整个数组里的数是否都小于当前磁道号 { printf("CSCAN 调度结果: for(i=0;i=now)//判断整个数组里的数是否都大于当前磁道号 { printf("CSCAN 调度结果: for(i=0;i
for(j=l;j>=0;j--) { printf("%d ",array[j]); } for(j=m-1;j>=r;j--) { printf("%d ",array[j]); } sum=2*(array[m-1]-array[0])-array[r]+now;//计算移动距离 }//磁道号减小方向 else { for(j=r;j
分享到:
收藏