導航:首頁 > 源碼編譯 > 磁碟最短尋找時間調度演算法分析題

磁碟最短尋找時間調度演算法分析題

發布時間:2022-12-28 12:59:35

『壹』 最短尋找時間優先演算法

最短尋找時間優先(SSTF)就是每次都找最近的,初始位於40,每次都找最近的,訪問序列就是40,44,20,12,4,76,80,一共移動了4+24+8+8+72+4=120個柱面,所以總共花費的尋找時間就是120*3=360毫秒

『貳』 磁碟調度演算法

  上文介紹了磁碟的結構,本文介紹磁碟的調度演算法相關的內容。
   本文內容

   尋找時間(尋道時間) T s :在讀/寫數據前,需要將磁頭移動到指定磁軌所花費的時間。
  尋道時間分兩步:

  則尋道時間 T s = s + m * n。

  磁頭移動到指定的磁軌,但是不一定正好在所需要讀/寫的扇區,所以需要通過磁碟旋轉使磁頭定位到目標扇區。

   延遲時間T R :通過旋轉磁碟,使磁頭定位到目標扇區所需要的時間。設磁碟轉速為r(單位:轉/秒,或轉/分),則 平均所需延遲時間T R = (1/2)*(1/r) = 1/2r。

   傳輸時間T R :從磁碟讀出或向磁碟中寫入數據所經歷的時間,假設磁碟轉速為r,此次讀/寫的位元組數為b,每個磁軌上的位元組數為N,則傳輸時間 T R = (b/N) * (1/r) = b/(rN)。

  總的平均時間 T a = T s + 1/2r + b/(rN) ,由於延遲時間和傳輸時間都是與磁碟轉速有關的,且是線性相關。而轉速又是磁碟的固有屬性,因此無法通過操作系統優化延遲時間和傳輸時間。所以只能優化尋找時間。

  演算法思想: 根據進程請求訪問磁碟的先後順序進行調度。
  假設磁頭的初始位置是100號磁軌,有多個進程先後陸續地請求訪問55、58、39、18、90、160、150、38、184號磁軌。
  按照先來先服務演算法規則,按照請求到達的順序,磁頭需要一次移動到55、58、39、18、90、160、150、38、184號磁軌。

  磁頭共移動了 45 + 3 + 19 + 21 + 72 + 70 + 10 + 112 + 146 = 498個磁軌。響應一個請求平均需要移動498 / 9 = 55.3個磁軌(平均尋找長度)。
  優點: 公平;如果請求訪問的磁軌比較集中的話,演算法性能還算可以
  缺點: 如果大量進程競爭使用磁碟,請求訪問的磁軌很分散,FCFS在性能上很差,尋道時間長

  演算法思想: 優先處理的磁軌是與當前磁頭最近的磁軌。可以保證每次尋道時間最短,但是不能保證總的尋道時間最短 。(其實是貪心演算法的思想,只是選擇眼前最優,但是總體未必最優)。

  假設磁頭的初始位置是100號磁軌,有多個進程先後陸續地請求訪問55、58、39、18、90、160、150、38、184號磁軌。

  磁頭總共移動了(100 -18)+ (184 -18) = 248個磁軌。響應一個請求平均需要移動248 / 9 = 27.5個磁軌(平均尋找長度)。
  缺點: 可能產生飢餓現象
  本例中,如果在處理18號磁軌的訪問請求時又來了一個38號磁軌的訪問請求,處理38號磁軌的訪問請求又來了一個18號磁軌訪問請求。如果有源源不斷的18號、38號磁軌訪問請求,那麼150、160、184號磁軌請求的訪問就永遠得不到滿足,從而產生飢餓現象。這里產生飢餓的原因是 磁頭在一小塊區域來回移動。

  SSTF演算法會產生飢餓的原因在於:磁頭有可能再一個小區域內來回得移動。為了防止這個問題,可以規定: 磁頭只有移動到請求最外側磁軌或最內側磁軌才可以反向移動,如果在磁頭移動的方向上已經沒有請求,就可以立即改變磁頭移動,不必移動到最內/外側的磁軌。 這就是掃描演算法的思想。由於磁頭移動的方式很像電梯,因此也叫 電梯演算法

  假設某磁碟的磁軌為0~200號,磁頭的初始位置是100號磁軌,且此時磁頭正在往磁軌號增大的方向移動,有多個進程先後陸續的訪問55、58、39、18、90、160、150、38、184號磁軌。

  磁頭共移動了(184 - 100)+ (184 -18) = 250個磁軌。響應一個請求平均需要移動 250 / 9 = 27.5個磁軌(平均尋找長度)。

  優點: 性能較好,尋道時間較短,不會產生飢餓現象。
  缺點: SCAN演算法對於各個位置磁軌的響應頻率不平均 。(假設此時磁頭正在往右移動,且剛處理過90號磁軌,那麼下次處理90號磁軌的請求就需要等待低頭移動很長一段距離;而響應了184號磁軌的請求之後,很快又可以再次響應184號磁軌請求了。)

  SCAN演算法對各個位置磁軌的響應頻率不平均,而C-SCAN演算法就是為了解決這個問題。規定只有磁頭朝某個特定方向移動時才處理磁軌訪問請求,而 返回時直接快速移動至最靠邊緣的並且需要訪問的磁軌上而不處理任何請求。
  通俗理解就是SCAN算在改變磁頭方向時不處理磁碟訪問請求而是直接移動到另一端最靠邊的磁碟訪問請求的磁軌上。

  假設某磁碟的磁軌為0~200號,磁頭的初始位置是100號磁軌,且此時磁頭正在往磁軌號增大的方向移動,有多個進程先後陸續的訪問55、58、39、18、90、160、150、38、184號磁軌。

  磁頭共移動了(184 -100)+ (184 - 18)+(90 - 18)=322個磁軌。響應一個請求平均需要移動322 / 9 = 35.8個磁軌(平均尋找長度)。

  優點: 相比於SCAN演算法,對於各個位置磁軌響應頻率很平均。
  缺點: 相比於SCAN演算法,平均尋道時間更長。

『叄』 磁碟調度演算法SSTF演算法 不限制編程語言,可以選用C/C++等

Java版的磁碟調度演算法,

其中演算法包含

1 先來先服務

2 最短時間優先

3 最短時間優先

4 單向掃描演算法

程序是動畫演示的,程序以圓模擬磁軌,以方塊模擬磁頭根據演算法在界面上演示。
程序運行截圖如下圖所示:

『肆』 求使用磁碟調度演算法的最短尋道時間優先的C++程序

dev c++

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
typedef struct ci
{
int num;
int visited;
}CD;

int count=0;

void SSTF(int start,CD L[],int n)
{
int i,j,next;
int min=32767;
for(i=0;i<n;i++)
{
if(L[i].visited==0)
if(min>=abs(L[i].num-start))
{
min=abs(L[i].num-start);
next=L[i].num;
j=i;
}
}
printf("\n\t%d\t\t%d",next,min);
L[j].visited=1;
count++;
if(count<n)SSTF(next,L,n);
}

int main()
{
int n,i,start;
printf("請輸入磁碟請求序列大小:");
scanf("%d",&n);
CD L[n];
printf("\n請輸入磁碟請求序列(以空格隔開):");
for(i=0;i<n;i++)
{
scanf("%d",&L[i].num);
L[i].visited=0;
}
printf("\n請輸入開始磁軌號:");
scanf("%d",&start);
printf("\n下一個被訪問的磁軌\t移動磁軌數");
SSTF(start,L,n);
printf("\n\n");
system("pause");
}

『伍』 有沒有大神會做這道採用電梯調度演算法執行磁碟調度的題

最短尋找樓層時間優先(SSTF-Shortest Seek Time First) [14]演算法,它注重電梯尋找樓層的優化。最短尋找樓層時間優先演算法選擇下一個服務對象的原則是最短尋找樓層的時間。這樣請求隊列中距當前能夠最先到達的樓層的請求信號就是下一個服務對象。在重載荷的情況下,最短尋找樓層時間優先演算法的平均響應時間較短,但響應時間的方差較大,原因是隊列中的某些請求可能長時間得不到響應,出現所謂的「餓死」現象。

『陸』 計算機三級的三道題目不會做啊!!!求教

1、盤塊的大小為4KB,每個盤塊號佔4B,則一個索引塊可含 4KB/4B=1K個盤塊號,於是兩級索引最多可含1K×1K =
1M個盤塊號,因此,允許的最大文件長度為4KB×1M = 4GB。

2、最短尋找時間優先調度演算法總是從等待訪問者中挑選尋找時間最短的那個請求先執行的,而不管訪問者到來的先後次序。現在當當前磁頭在第4道,離它最近的是5,移動1道,離5最近的是7,移動2道,離7最近的是11,以此類推,則最後的移動次序為5、7、11、21、22、0,移動倒數為1+2+4+10+1+22=40。

3、採用最短尋道時間優先調度演算法時與第二題類似,移動次序為16、13、9、20、24、29,移動總數為1+3+4+11+4+5=28。
「電梯調度」演算法是從移動臂當前位置開始沿著臂的移動方向去選擇離當前移動臂最近的那個柱訪問,如果沿臂的移動方向無請求訪問時,就改變臂的移動方向再選擇。現在移動方向是從大到小,那會先朝比當前柱面小的方向找離其最近的移動,當前在15,比它小又離它最近的是13,然後是9,比它小的訪問請求處理完了,就改變方向,於是離15最近的是16,然後是20,、24、29,最終的次序是13、9、16、20、24、29,移動總數是2+4+7+4+4+5=26.

『柒』 在磁碟調度,sstf演算法中,為什麼說:總是選擇最小尋找時間並不能保證平均尋找時間最小

FCFS演算法根據進程請求訪問磁碟的先後順序進行調度,這是一種最簡單的調度演算法。該演算法的優點是具有公平性。如果只有少量進程需要訪問,且大部分請求都是訪問簇聚的文件扇區,則有望達到較好的性能;但如果有大量進程競爭使用磁碟,那麼這種演算法在性能上往往接近於隨機調度。所以,實際磁碟調度中考慮一些更為復雜的調度演算法。
1、演算法思想:按訪問請求到達的先後次序服務。
2、優點:簡單,公平。
3、缺點:效率不高,相鄰兩次請求可能會造成最內到最外的柱面尋道,使磁頭反復移動,增加了服務時間,對機械也不利。
4、例子:
假設磁碟訪問序列:98,183,37,122,14,124,65,67。讀寫頭起始位置:53。求:磁頭服務序列和磁頭移動總距離(道數)。
由題意和先來先服務演算法的思想,得到下圖所示的磁頭移動軌跡。由此:
磁頭服務序列為:98,183,37,122,14,124,65,67
磁頭移動總距離=(98-53)+(183-98)+|37-183|+(122-37)+|14-122|+(124-14)+|65-124|+(67-65)=640(磁軌) SSTF演算法選擇調度處理的磁軌是與當前磁頭所在磁軌距離最近的磁軌,以使每次的尋找時間最短。當然,總是選擇最小尋找時間並不能保證平均尋找時間最小,但是能提供比FCFS演算法更好的性能。這種演算法會產生「飢餓」現象。
1、演算法思想:優先選擇距當前磁頭最近的訪問請求進行服務,主要考慮尋道優先。
2、優點:改善了磁碟平均服務時間。
3、缺點:造成某些訪問請求長期等待得不到服務。
4、例子:對上例的磁碟訪問序列,可得磁頭移動的軌跡如下圖。 SCAN演算法在磁頭當前移動方向上選擇與當前磁頭所在磁軌距離最近的請求作為下一次服務的對象。由於磁頭移動規律與電梯運行相似,故又稱為電梯調度演算法。SCAN演算法對最近掃描過的區域不公平,因此,它在訪問局部性方面不如FCFS演算法和SSTF演算法好。
演算法思想:當設備無訪問請求時,磁頭不動;當有訪問請求時,磁頭按一個方向移動,在移 動過程中對遇到的訪問請求進行服務,然後判斷該方向上是否還有訪問請求,如果有則繼續掃描;否則改變移動方向,並為經過的訪問請求服務,如此反復。如下圖所示:
掃描演算法(電梯演算法)的磁頭移動軌跡
2、優點:克服了最短尋道優先的缺點,既考慮了距離,同時又考慮了方向。 在掃描演算法的基礎上規定磁頭單向移動來提供服務,回返時直接快速移動至起始端而不服務任何請求。由於SCAN演算法偏向於處理那些接近最里或最外的磁軌的訪問請求,所以使用改進型的C-SCAN演算法來避免這個問題。
釆用SCAN演算法和C-SCAN演算法時磁頭總是嚴格地遵循從盤面的一端到另一端,顯然,在實際使用時還可以改進,即磁頭移動只需要到達最遠端的一個請求即可返回,不需要到達磁碟端點。這種形式的SCAN演算法和C-SCAN演算法稱為LOOK和C-LOOK調度。這是因為它們在朝一個給定方向移動前會查看是否有請求。注意,若無特別說明,也可以默認SCAN演算法和C-SCAN演算法為LOOK和C-LOOK調度。

『捌』 磁碟調度 演算法

(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

閱讀全文

與磁碟最短尋找時間調度演算法分析題相關的資料

熱點內容
自己建了伺服器地址 瀏覽:698
命令按鈕的屬性設置 瀏覽:965
證券技術分析pdf 瀏覽:779
linux命令連接oracle 瀏覽:202
墊江停車收費樁怎麼上App 瀏覽:135
好興動app還款怎麼登錄不上去了 瀏覽:665
鄭州雲伺服器託管 瀏覽:722
伺服器地址跟蹤 瀏覽:980
免費google雲伺服器 瀏覽:516
摘譯和編譯的英文 瀏覽:359
熱泵壓縮機選型 瀏覽:121
op手機微信加密如何解除 瀏覽:386
如何在王牌戰爭找到高爆率伺服器 瀏覽:13
江浙小學語文輔導課用什麼APP 瀏覽:99
新夢幻大陸伺服器地址 瀏覽:241
網吧伺服器怎麼更換壁紙 瀏覽:530
linux命令方法 瀏覽:332
linux下載freetype 瀏覽:123
程序員入駐平台 瀏覽:327
程序員大戰外掛 瀏覽:745