scan算法
A. 习题精编上 磁盘寻到算法中的LOOK 和 C_LOOK 是啥意思啊
LOOK 和 C_LOOK 分别是回看的扫描和循环扫描,它与scan ,cscan不通之处是scan扫描是要回到磁道最外出或最里处才返回,而LOOK只需要到达要访问的磁道最外或最里处就会返回。比如磁道1—1000,分别要访问150,300,800道的内容,那如果现在在500磁道,向磁道小的方向访问的话,scan 算法会移到磁道1后再返回,LOOK算法移到磁道150或就会返回了了。同理 C_LOOK 与cscan的不同之处类似
B. 求磁盘调度算法scan算法的java代码
1、先来先服务算法(FCFS)First Come First Service
这是一种比较简单的磁盘调度算法。它根据进程请求访问磁盘的先后次序进行调度。此算法的优点是公平、简单,且每个进程的请求都能依次得到处理,不会出现某一进程的请求长期得不到满足的情况。此算法由于未对寻道进行优化,在对磁盘的访问请求比较多的情况下,此算法将降低设备服务的吞吐量,致使平均寻道时间可能较长,但各进程得到服务的响应时间的变化幅度较小。
先来先服务 (125)86.147.91.177.94.150.102.175.130
[java] view plain print?
C. 电脑技术 操作系统 LOOK SCAN算法
C-LOOK=10到5到90到80到70到60到20=160
C-SCAN=10到5到0到199到90到80到70到60到20=388
LOOK=10到5到20到60到70到80到90=90
SCAN=10到5到0到20到60到70到80到90=100
D. 常见的磁盘调度算法有哪些,有什么优缺点
1.先来先服务(FCFS)
2.最短寻道时间优先(SSTF)
3.扫描(scan)算法
4循环扫描(CSCAN)算法
5.NStep和FSCAN调度算法
E. 不会发生饥饿现象的调度算法
不会发生饥饿现象的调度算法,这叫什么话呀?我们中国人现在不都是衣食无忧了吗?怎么还会饥饿现象出现呢?你不是想到了什么时候的年代的事?
F. 这是个关于SCAN算法的c语言描述,程序无错,运行有错
你的代码是有问题的,网络这个没法完整的上传代码
#include<stdio.h>
#include<stdlib.h>
#include<malloc.h>
#include<math.h>
typedefintstatus;
#defineOK1#defineERROR0
typedefstructlikelist
{
intdata;
structlikelist*front,*next;//建立双向链表
}Listnode;
Listnode*Create_list(Listnode*head,intn)//建立链表
{
Listnode*p,*q;
inti;
head=(Listnode*)malloc(sizeof(Listnode));
if(!head)
{
exit(-1);//创建不成功则退出程序
}
head->next=NULL;
p=head->next;
q=head;
printf("请输入%d个进程所要访问的磁道号:",n);
for(i=0;i<n;i++)
{
p=(Listnode*)malloc(sizeof(Listnode));
if(!p)
{
exit(-1);
}
q->next=p;
scanf("%d",&p->data);
p->front=q;
p->next=NULL;
q=p;
}
printf("输入磁道号已经完成 ");//用于测试程序在哪里执行出错
returnhead;
}
Listnode*Sort_list(Listnode*head)//对链表排序
{
inta;
if(!head->next)
{
printf("表空!");
exit(-1);
}
Listnode*p,*q;
p=head->next;
q=p->next;
for(;q->next!=NULL;p=p->next,q=q->next)
{
if((p->data)>(q->data))
{
a=p->data;
p->data=q->data;
q->data=a;
}
}/*while(q->next!=NULL){if((p->data)>(q->data)){a=p->data;p->data=q->data;q->data=a;}p=p->next;q=q->next;}*/
returnhead;
}
voidFangwen_list(Listnode*head,intn,intm)//访问链表,向磁道增加的方向,m用于记录开始访问的磁道号,n记录总共磁道号数目
{
Listnode*p,*q;//定义指向节点的指针
inti,j;
floatdistance=0;
floatsum=0;
floatave;
p=head->next;
printf("将要从%d号磁道向磁道号增加的方向访问: ",m);
printf("被访问的下一个磁道号 本次移动的距离 ");
for(i=0;i<n;i++)
{
if(p->data>=m)
{
q=p->front;
j=i;
break;
}
else
{
continue;
}
}
for(;i<n;i++)
{
printf(" %d",p->data);
distance=(float)fabs(m-(p->data));
m=p->data;
sum=(float)(sum+distance);
printf(" %f ",distance);//用于格式化的输出,
p=p->next;
}
printf(" ");
/*
for(;q!=head;)
{
printf(" %d",q->data);
distance=(float)fabs(m-q->data);
m=q->data;
sum=(float)(sum+distance);
printf(" %f ",distance);
q=q->front;
}
printf(" ");
*/
ave=(float)sum/n;//计算出平均长度
printf("平均寻道长度为:%.2f ",ave);
}
intmain()
{
Listnode*head;
intn;
intm;
printf("请输入进程要访问的磁道的总数:");
scanf("%d",&n);
head=Create_list(head,n);//链表返回头指针应该赋值,
Sort_list(head);
printf("请输入你要最开始访问的磁道号:");
scanf("%d",&m);
Fangwen_list(head,n,m);
system("pause");
return0;
}
G. 求计算机操作系统的高手帮做一个题(急得很啊)
移动顺序:223.198.176.156.149.142.136.245
共移动总量
8
仅做参考千万莫模仿有恐误人子弟
H. 目前常用的磁盘调度算法有哪几种每种算法优先考虑的问题是什么
(1)先来先服务(FCFS,First-Come First-Served)
此算法根据进程请求访问磁盘的先后次序进行调度。
(2)最短寻道时间优先(SSTF ,ShortestSeekTimeFirst)
该算法选择这样的进程,其要求访问的磁道与当前磁头所在的磁道距离最近,以使每次的寻道时间最短,但这种调度算法却不能保证平均寻道时间最短。
(3)扫描(SCAN)算法
SCAN算法不仅考虑到欲访问的磁道与当前磁道的距离,更优先考虑的是磁头的当前移动方向。
(4)循环扫描(CSCAN)算法
CSCAN算法规定磁头单向移动,避免了扫描算法导致的某些进程磁盘请求的严重延迟。
(5) N-Step-SCAN和FSCAN调度算法
1) N-Step-SCAN算法。为克服前述SSTF、SCAN、CSCAN等调度算法都可能出现的磁臂停留在某处不动的情况即磁臂粘着现象,将磁盘请求队列分成若干个长度为N的子队列,按先来先服务算法依次处理这些子队列,而各队列分别以扫描算法进行处理。
2) FSCAN算法
FSCAN算法实质上是N步SCAN算法的简化。它只将磁盘请求访问队列分成两个子队列。一是当前所有请求磁盘I/O的进程形成的队列,由磁盘调度按SCAN算法进行处理。另一个队列则是在 扫描期间,新出现的所有请求磁盘I/O进程的队列,放入另一等待处理的请求队列。这样,所有的新请求都将被推迟到下一次扫描时处理。
I. 磁盘调度 算法
(1)FCFS(先来先服务):
143-86=57
147-86=61
147-91=56
177-91=86
177-94=97
150-94=56
150-102=48
175-102=73
175-130=45
57+61+56+86+97+56+48+73+45=579
(2)SSTF(最短寻道时间优先):
寻道顺序:143(当前),147,150,130,102,94,91,86,175,177;
4+3+20+28+8+3+5+89+2=162
(3)SCAN:
当前方向:从143#向磁道号增加的方向
依次访问:143(当前),147,150,175,177
再从递减方向:130,102,94,91,86
4+3+25+2+47+28+8+3+5=125
(4)LOOK:(即SCAN,电梯调度算法)
(5)CSCAN:
当前方向:从143#向磁道号增加的方向
依次访问:143(当前),147,150,175,177
再从0开始增加方向:86,91,94,102,130
4+3+25+2+91+5+3+8+28=169
J. scan与cscan有什么异同
CSCAN美国Horner公司开发的一种通信网络,采用Controller Area Network技术。
循环扫描CSCAN(Circular SCAN)
为了减少SCAN算法造成的某些进程的请求被严重推迟,CSCAN算法规定磁头单向移动。