磁盘调度算法代码Word文档格式.docx
- 文档编号:21298432
- 上传时间:2023-01-29
- 格式:DOCX
- 页数:10
- 大小:15.55KB
磁盘调度算法代码Word文档格式.docx
《磁盘调度算法代码Word文档格式.docx》由会员分享,可在线阅读,更多相关《磁盘调度算法代码Word文档格式.docx(10页珍藏版)》请在冰豆网上搜索。
voidprint(Node*);
//输出链表函数
Node*head,*p,*q;
//建立一个链表
intit,c=0,f,s;
//c为链表长度,f是开始的磁道号,s是选择哪个算法
head=(Node*)malloc(sizeof(Node));
head->
next=NULL;
q=head;
cout<
<
"
/**************磁盘调度算法***************/"
endl;
新建一个单链表,以0作为结束标志:
;
cin>
>
it;
while(it!
=0)
{
p=(Node*)malloc(sizeof(Node));
p->
data=it;
q->
next=p;
q=p;
c++;
}
从几号磁道开始:
f;
print(head);
链表长度为:
c<
1、先来先服务算法FCFS"
2、最短寻道时间优先算法SSTF"
3、电梯调度算法(扫描算法SCAN)"
0、退出"
请选择:
s;
while(s!
switch(s)
case1:
cout<
你选择了:
先来先服务算法FCFS"
fcfs(head,c,f);
break;
case2:
最短寻道时间优先算法SSTF"
sstf(head,c,f);
case3:
电梯调度算法(扫描算法SCAN)"
scan(head,c,f);
退出请选0,继续请选1,2,3:
}
/***********************************************************/
voidfcfs(Node*head,intc,intf)//先来先服务算法
Node*l;
//*m,*n;
floatnum=0;
l=head->
next;
for(inti=0;
i<
c;
i++)
num+=abs(l->
data-f);
f=l->
data;
l=l->
num=num/c;
先来先服务的寻道顺序是:
平均寻道长度:
num<
/*****************************************************************/
voidsstf(Node*head,intc,intf)
Node*p,*q,*r,*s,*l,*m;
l=(Node*)malloc(sizeof(Node));
l->
m=l;
p=head->
s=head;
r=head->
intmin=abs(f-r->
data);
for(intj=0;
j<
c-i-1;
j++)
p=p->
q=q->
if(abs(f-p->
data)<
min)
{
min=abs(f-p->
r=p;
s=q;
num+=abs(f-r->
f=r->
s->
next=r->
r->
m->
next=r;
m=r;
最短寻道时间优先顺序是:
print(l);
/***************************************************************/
voidscan(Node*head,intc,intf)//扫描算法(电梯调度算法)
intmin,max,i=0,j=0;
Node*p,*q,*r,*s,*m,*n,*x,*y;
r=(Node*)malloc(sizeof(Node));
//存放比开始磁道小的磁道
s=r;
m=(Node*)malloc(sizeof(Node));
//存放比开始磁道大的磁道
n=m;
x=(Node*)malloc(sizeof(Node));
x->
y=x;
while(p->
next!
=NULL)
if(p->
data-f>
0)
next=p->
n->
n=p;
p=q->
i++;
else
s=p;
j++;
data>
=f)
q=r;
//对比开始磁道小的磁道排序
p=r->
while(q->
next->
max=q->
max)
max=p->
data=q->
data=max;
//print(r);
q=m;
p=m->
min=q->
data<
min)
min=p->
data=min;
//print(m);
x=m;
y=x->
while(y->
num+=abs(f-y->
f=y->
y=y->
扫描算法的顺序是:
print(x);
平均寻道长度为:
/*****************************************************/
voidprint(Node*head)//输出链表
Node*p;
单链表显示:
if(p==NULL)
单链表为空:
elseif(p->
next==NULL)
p->
->
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 磁盘 调度 算法 代码