磁碟訪問題

2021-06-25 17:37:17 字數 1203 閱讀 7314

資料儲存在

磁碟上的排列方式會影響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的開始處。若系統順序處理這些記錄,使用單緩衝區,每個記錄處理時間為4ms,則處理這10個記錄的最長時間為_(15)_;若對資訊進行優化分布後,處理這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。同時緩衝區只有乙個,在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.

Cygwin訪問windows磁碟目錄

剛剛接觸 cygwin 頭乙個問題就是 cygwin 如何訪問 windows 的各個磁碟目錄,以及在 windows 平台下如何訪問 cygwin 中的目錄。執行 mount 命令後可以看到 windows 下的碟符被對映到 cygdrive 特殊目錄下。mount c cygwin bin on...

Linux 磁碟配額 訪問控制列表

quota 磁碟配額 核心中實現,檔案系統 針對檔案系統 兩種配額標準 空間配額 1k blocks 檔案配額 使用者最多可以穿件的檔案 兩種配額型別 軟限制硬限制 對管理員無效 指定特殊的掛載選項 etc fstab usrquota grpquota mount o remount 磁碟 aqu...

記憶體,磁碟,cache等訪問速度

google 工程師jeff dean 首先在他關於分布式系統的ppt文件列出來的,到處被引用的很多。numbers everyone should know l1 cache reference 讀取cpu的一級快取 0.5 ns branch mispredict 轉移 分支 5 ns l2 c...