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演算法規定磁頭單向移動。