1. 程式人生 > >騰訊題目——求磁頭平均尋道長度

騰訊題目——求磁頭平均尋道長度

題目:

若磁頭的當前位置在第100磁軌,現在有一磁碟讀寫請求序列如下:23,376,205,132,19,61,190,398,29,4,18,40。若採用最短尋道時間優先演算法,則平均尋道長度是多少?

133

58.3

57.7

70.9

解析:
移臂排程演算法在於有效利用磁碟,保證磁碟的快速訪問。移臂排程主要有以下幾種演算法:

先來先服務演算法(FCFS):該演算法只考慮訪問請求的先後順序。如上題當前位置為100,則順序為(100),23,376,205,132,19,61,190,398,29,4,18,40,因此磁頭移動磁軌總數為(100-23)+(376-23)+(376-205)+ (205-132)+(132-19)+(61-19)+(190-61)+(398-190)+(398-29)+(29-4)+(18-4)+(40-18) = 1596,平均移動磁軌數為1596/12 =133.0;

最短尋道時間優先演算法(SSTF):從等待的訪問者中挑選尋找時間最短的那個請求執行。如上題當前位置為100,則順序為(100),132,190,205,61,40,29,23,19,18,4,376,398,因此磁頭移動磁軌總數為(132-100)+(190-132)+(205-190)+(205-61)+(61-40)+(40-29)+(29-23)+(23-19)+(19-18)+(18-4)+(376-4)+(398-376)=700,平均移動磁軌數為700/12 =58.3;

電梯排程(SCAN):按當前位置找出最近的那個數,當前位置指向最近數決定方向,依次排列數字,排到盡頭,再按當位置和最近數的相反方面依次排列數字。如上題當前位置為100,則順序為(100),132,190,205,376,398,61,40,29,23,19,18,4,因此磁頭移動磁軌總數為(132-100)+(190-132)+(205-190)+(376-205)+(398-376)+(398-61)+(61-40)+(40-29)+(29-23)+(23-19)+(19-18)+(18-4)=692,平均移動磁軌數為692/12 =57.7;

單向掃描排程演算法(CSCAN):由當前位置到從小到大排列數字,再將剩下的數由小到大排。如上題當前位置為100,則順序為(100),132,190,205,376,398,4,18,19,23,29,40,61,因此磁頭移動磁軌總數為(132-100)+(190-132)+(205-190)+(376-205)+(398-376)+(398-4)+(18-4)+(19-18)+(23-19)+(29-23)+(40-29)+(61-40)=749,平均移動磁軌數為749/12 =62.4;

因此答案選擇58.3。