教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 政务民生 >

磁盘调度算法(CSCAN、N-step-SCAN)(2)

来源:网络收集 时间:2026-01-20
导读: elseif(array[0]>=start) { } else { while(array[k] printf(\调度结果: \); if(d==0) { } else { for(j=r;j for(j=l;j>=0;j--) { } sux=-start-array[0]+2*array[x-1]; start=q; printf(\,array[j]); printf(\,arr

elseif(array[0]>=start) { } else {

while(array[k]

printf(\调度结果: \); if(d==0) { } else {

for(j=r;j

for(j=l;j>=0;j--) { }

sux=-start-array[0]+2*array[x-1]; start=q;

printf(\,array[j]); printf(\,array[j]); for(j=l;j>=0;j--) { }

for(j=r;j

sux=start-2*array[0]+array[x-1]; start=q;

printf(\,array[j]); printf(\,array[j]); k++; for(i=0;i

printf(\,array[i]); sux=array[x-1]-start;

q=array[j];

q=array[j];

s=s+sux;

q=array[j];

q=array[j];

s=s+sux;

- 4 -

{

}

}

avg=sux/x;

printf(\移动的总道数: %d \\n\,sux); printf(\平均寻道长度: %d \\n\,avg); }

void SCAN(intarray[],intx,intd)

int k=1; intl,r; inti,j,sux=0; intavg; inttexp; int q;

for(i=0;i

{ } { }

elseif(array[0]>=start) {

printf(\调度结果: \); for(i=0;i

printf(\,array[i]); printf(\调度结果: \); for(i=x-1;i>=0;i--) { }

sux=start-q; s=s+sux; start=q;

printf(\,array[i]); for(j=i+1;j

if(array[i]>array[j]) { }

texp=array[i]; array[i]=array[j]; array[j]=texp;

if(array[x-1]<=start)

q=array[i];

q=array[i];

- 5 -

}

}

sux=array[x-1]-start; start=q;

s=s+sux;

else {

while(array[k]

printf(\调度结果: \); if(d==0) { } else { }

for(j=r;j

for(j=l;j>=0;j--) { }

sux=-start-array[0]+2*array[x-1]; start=q;

printf(\,array[j]); printf(\,array[j]); for(j=l;j>=0;j--) { }

for(j=r;j

sux=start-2*array[0]+array[x-1]; start=q;

printf(\,array[j]); printf(\,array[j]); k++;

q=array[j];

q=array[j];

s=s+sux;

q=array[j];

q=array[j];

s=s+sux;

- 6 -

}

}

avg=sux/x;

printf(\该子队列移动的总道数: %d \\n\,sux); printf(\该子队列平均寻道长度: %d \\n\,avg);

voidNStepSCAN(intarray[],intx) {

intw,N,d; int b[100],c[100]; inti=0,j=0,k=0,n=1; intave;

scanf(\,&start);

printf(\请输入子队列的个数:\\n\); scanf(\,&N); while(N<1||N>x) { }

printf(\超出范围,文件中的磁道数不够分组,请重新输入:\\n\);

printf(\请输入当前磁道号:\\n\);

scanf(\,&N);

printf(\请输入当前移动臂的移动的方向 (1 磁道号增加方向,0磁道号减小方向) : \); scanf(\,&d); w=x/N; while(N!=1)

{ } {

for(i=k,j=0;i

c[j]=array[i]; j=0;

for(i=k;i

SCAN(b,w,d); N=N-1; n=n+1;

b[j]=array[i]; k=k+1;

printf(\第%d个队列的排序结果为:\\n\,n);

if(N==1)

printf(\最后一个队列的调度结果为:\\n\);

- 7 -

SCAN(c,x-k,d); }

int main() {

int c; int C=1; FILE *fp;

int Track[xaxsize]; inti=0,count;

fp=fopen(\,\); if(fp==NULL) { }

while(!feof(fp)) { } count=i;

printf(\磁道读取结果:\\n\); for(i=0;i

printf(\); while(C==1) {

printf(\操作系统课程设计 \\n\);

printf(\,Track[i]); fscanf(fp,\,&Track[i]); i++;

printf(\请先将磁道输入在Track.txt文件中再执行程序,谢谢! \\n\); exit(0); } ave=s/x;

printf(\该调度总的结果为:\\n\); printf(\移动的总道数: %d \\n\,s); printf(\平均寻道长度: %d \\n\,ave);

printf(\磁盘调度算法 \\n\); printf(\巢湖学院 \\n\);

printf(\级计本(3)班程张磊梁浩何生飞 \\n\); printf(\算法 \\n\);

printf(\算法 \\n\); printf(\请输入你的选择的算法(输入0结束程序) \\n\); scanf(\,&c); if(c==0) exit(0);

printf(\);

while(c!=1&&c!=2)

- 8 -

…… 此处隐藏:564字,全部文档内容请下载后查看。喜欢就下载吧 ……
磁盘调度算法(CSCAN、N-step-SCAN)(2).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/447200.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)