磁盘读取
轉自:http://www.51testing.com/?uid-183504-action-viewspace-itemid-116788
數據存儲在磁盤上的排列方式會影響I/O服務的總時間。假設每磁道劃分成10個物理塊,每塊存放1個邏輯記錄。邏輯記錄R1,R2,﹍﹍ ,R10存放在同一個磁道上,記錄的安排順序如下表所示:
??物理塊?????? 1??? 2?? 3??? 4??? 5??? 6??? 7??? 8?? 9?? 10
邏輯記錄???? R1? R2 R3 R4 R5 R6 R7 R8 R9 R10
假定磁盤的旋轉速度為20MS/周,磁頭當前處在R1的開始處。若系統(tǒng)順序處理這些記錄,使用單緩沖區(qū),每個記錄處理時間為4MS,則處理這10個記錄的最長時間為_(15)_;若對信息進行優(yōu)化分布后,處理這10個記錄的最少時間為_(16)_。
(15)A.180ms????B.200 ms??C.204ms????D.220ms
(16)A.40ms???? B. 60ms?? C. 100ms?? D.160ms
分析:
首先我們來回憶一下讀磁盤數據的基礎知識:首先磁頭要移動到要訪問的磁道(這個時間是尋道時間 seek time, 在本題中不需要考慮),然后等待要訪問的物理塊轉動到磁頭下面(這個時間是潛伏時間 latency time),最后是讀物理塊,讀物理塊的時間是該物理塊從磁頭下經過的時間。對于大容量硬盤來說,讀取一小塊數據的時間,相對尋道時間和潛伏時間是非常少的,以至于經常被忽略的。但是這里不能忽略,它需要20/10=2ms的時間。
現在我們來分析這道題。首先請大家注意10個物理塊是從1到10依次排列的(可能有很多朋友在考慮第15題的時候忽視了這點),磁頭就在R1的開始之處。 毫無疑問,必須先用2ms的時間來讀出R1(讀完后磁頭處于R2的開始處),然后處理R1花費4ms。同時緩沖區(qū)只有一個,在R1被處理完之前,不能讀入其他物理塊(雖然在R1處理的過程中,磁頭經過了R2物理塊,可是無法讀入)。但是在R1被處理完時,經過4ms的旋轉磁頭已經處于R4的開始處,于是不得不要有8*2=16ms的潛伏時間,才能使磁頭到達R2的開始處,同樣讀出R2需要2ms,處理需要4ms,這樣在R2上花費的時間是16+2+4=22ms,同理R3-R10也是22ms ,而R1是2+4=6ms , 所以一共需要的時間是 6+9*22=204ms.對應的選項是C??
經過上述的分析,第16題就不難得到答案了,如果將R2安排到原R4的位置,R3安排到原R7的位置,依次類推(此時物理塊的排列為 R1 R8 R5 R2 R9 R6 R3 R10 R7 R4),這樣訪問R2-R9的潛伏時間都為0,此時處理10個物理塊的時間最少,為6*10=60 , 對應選項 B.
總結
- 上一篇: arrive get
- 下一篇: 二叉树相关题目