例題:在磁盤上存儲數據的排列方式會影響1/0服務的總時間。假設每個磁道被劃分成10個物理塊,每個物理塊存放1個邏輯記錄。邏輯記錄R1,R2....R10存放在同一個磁道上,記錄的排列順序如下表所示:
假定磁盤的旋轉速度為10ms/周,磁頭當前處在R1的開始處。若系統順序處理這些記錄,使用單緩沖區,每個記錄處理時間為2ms,則處理這10個記錄的最長時間為()。若對存儲數據的排列順序進行優化,處理10個記錄的最少時間為()。
問題一
A.30ms
B.60ms
C.94ms
D.102ms
問題二
A.30ms
B.60ms
C.102ms
D.94ms
整個磁盤如下圖所示,整個磁盤的旋轉速度為10ms/周,共10個磁盤,可知每個磁盤的讀取時間為1ms,對于每個磁盤而言,有讀取時間1ms,處理時間2ms。
接下來具體的看分析:
讀取R1:
對于磁盤R1而言,磁頭首先位于R1的開始處(即R10的末尾位置那條線),讀取R1花費1ms時間,磁頭到了R1的末尾處,又需要花費2ms處理它,所以可以得知經過3ms時候,磁頭已經旋轉到了R4的開始處(即R3的末尾處)。
讀取R2:
接下來需要讀取R2并處理R2,這個時候需要將磁頭旋轉到R2的開始處位置,那么需要順時針移動(R4-R1,共計8個磁盤花費8ms)才到R2的開始處,接下來,讀取R2(1ms)并處理R2(2ms)同樣需要花費3ms時間。這時候讀取R2花的時間是1ms+2ms+8ms=11ms
讀取R3:
磁盤也到了R5的開始,也需要旋轉同樣的8個磁盤,依次類推。除第一個磁盤R1不需要移動磁頭位置,其余9個磁盤都需要移動8個磁盤,即總時間為R1的時間(1+2)ms,后面9個磁盤的時間9*(8+1+2),共計102ms,所以第一空選擇D選項。
1+2+9*11=102ms.
改善后的磁盤,避免了磁頭的移動,即每個磁盤讀取和處理共計3ms,總共10個磁盤,需要花費3*10=30ms(如下圖所示),所以第二空選擇A選項。