㈠ 目前常用的磁碟調度演算法有哪幾種每種演算法優先考慮的問題是什麼
先來先服務演算法:這個演算法實際上不考慮訪問者要求訪問的物理位置,而只是考慮訪問者提出訪問請求的先後次序。
最短尋道時間優先演算法:要求訪問的磁軌,與當前磁頭所在的磁軌距離最近,以使每次的尋道時間最短。
掃描演算法:「電梯調度」是沿著臂的移動方向去選擇離當前讀寫詞頭最近的哪個磁軌的訪問者。
.循環掃描演算法:防止飢餓現象
㈡ 目前常用的磁碟調度演算法有哪幾種
磁碟調度在多道程序設計的計算機系統中,各個進程可能會不斷提出不同的對磁碟進行讀/寫操作的請求。由於有時候這些進程的發送請求的速度比磁碟響應的還要快,因此我們有必要為每個磁碟設備建立一個等待隊列,常用的磁碟調度演算法有以下四種:[1]
先來先服務演算法(FCFS),
最短尋道時間優先演算法(SSTF),
掃描演算法(SCAN),
循環掃描演算法(CSCAN)
㈢ 磁碟調度演算法
上文介紹了磁碟的結構,本文介紹磁碟的調度演算法相關的內容。
本文內容
尋找時間(尋道時間) 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演算法,平均尋道時間更長。
㈣ 關於《操作系統》中的磁碟調度演算法
(1)先來先服務調度演算法
由於該演算法就是按照磁軌請求序列的先後次序依次訪問磁軌的,因此磁軌的訪問序列(服務順序)就是:
110、180、32、115、15、120、60、70。
當前磁頭在50號磁軌。故磁頭移動道數為:
(110-50)+(180-110)+(180-32)+(115-32)+(115-15)+(120-15)+(120-60)+(70-60)=60+70+148+83+100+105+60+10=636
(2)單向掃描調度演算法
該演算法是沿磁頭移動方向訪問距離當前磁軌最近的磁軌,當到達一個頂端時立刻返回到另一個頂端繼續掃描。本題磁頭移動方向是磁軌增加的方向,當前磁頭在50號磁軌。因此磁軌的訪問序列(服務順序)就是:60、70、110、115、120、180、15、32。而磁頭移動道數與前面(1)問差不多,也是兩兩相減,然後求和。在此略
㈤ 求磁碟調度演算法scan演算法的java代碼
1、先來先服務演算法(FCFS)First Come First Service
這是一種比較簡單的磁碟調度演算法。它根據進程請求訪問磁碟的先後次序進行調度。此演算法的優點是公平、簡單,且每個進程的請求都能依次得到處理,不會出現某一進程的請求長期得不到滿足的情況。此演算法由於未對尋道進行優化,在對磁碟的訪問請求比較多的情況下,此演算法將降低設備服務的吞吐量,致使平均尋道時間可能較長,但各進程得到服務的響應時間的變化幅度較小。
先來先服務 (125)86.147.91.177.94.150.102.175.130
[java] view plain print?
㈥ 目前常用的磁碟調度演算法有哪幾種每種演算法優先考慮的問題是什麼
(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進程的隊列,放入另一等待處理的請求隊列。這樣,所有的新請求都將被推遲到下一次掃描時處理。
㈦ 磁碟調度 演算法
(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
㈧ 磁碟調度演算法
1、對於如下給定的一組磁碟訪問進行調度:
2、要求分別採用先來先服務、最短尋道優先以及電梯調度方法進行調度。
3、要求給出每種演算法中磁碟訪問的順序,計算出平均移動道數。
4、假定當前讀寫頭在90號,向磁軌號增加的方向移動。
輸入磁軌序列(-1結束): 30 50 100 180 20 90 150 70 80 10 160 -1
磁軌讀取結果: 30 50 100 180 20 90 150 70 80 10 160
1.先進先出演算法(FIFO)
2.最短服務時間優先演算法(SSTF)
3.掃描演算法(SCAN)
4.退出(exit)
請選擇演算法:1
當前的讀寫頭位於:90
FIFO 調度順序: 30 50 100 180 20 90 150 70 80 10 160
移動的總道數:810
平均尋道長度:73.6364
1.先進先出演算法(FIFO)
2.最短服務時間優先演算法(SSTF)
3.掃描演算法(SCAN)
4.退出(exit)
請選擇演算法:2
當前的讀寫頭位於:90
SSTF 調度順序: 90 80 70 50 30 20 10 100 150 160 180
移動的總道數:250
平均尋道長度:22.7273
1.先進先出演算法(FIFO)
2.最短服務時間優先演算法(SSTF)
3.掃描演算法(SCAN)
4.退出(exit)
請選擇演算法:3
當前的讀寫頭位於: 90
SCAN 調度順序:90 100 150 160 180 90 80 70 50 30 20 10
移動的總道數:260
平均尋道長度:23.6364
1.先進先出演算法(FIFO)
2.最短服務時間優先演算法(SSTF)
3.掃描演算法(SCAN)
4.退出(exit)
請選擇演算法:4