瀏覽單個文章
ag5h2wctyos
*停權中*
 

加入日期: Dec 2008
文章: 289
引用:
作者kaosonicz
可是根據以下這篇是可以同時讀寫的:
http://www.linwei.com.tw/knowhdd.html

引用這段:
=========================================================
Head 是由上、下多片讀寫頭固定在同一組Arm上,來回移動時是整組Arm一起移動,
一般讀寫原理是,例如﹕當10MB Data進來時,第1個Head先寫4096 Byte(視規格各
異),第2 Head寫4096 Byte,依此類推,呈垂直讀寫,所以1 支檔案是被分成很多段
存在各磁面上,讀取時也是同理,如此多磁頭同時讀寫可達到高速要求
,但現在又有更先進的科技出現。
========================================================


磁頭當然可以同時讀取 其所在位置的資料 問題是沒有用 資料搭不起來

除非你已經預先知道 同柱的資料是同一個檔案中的連續片段 而且可以命令它同時去讀取

然現實中 電腦硬碟的儲存是將檔案分割片段 隨機找空位儲存的 不可能預知下個片段在哪

只能先讀出一個叢集片段 再根據其上的位址索引 去找下一個片段叢集

即使下個片段 剛好也在同柱 也是先讀出上個片段判斷後才會知道 無法預先知道

這個過程 碟片並不會停止轉動 當它知道下一筆片段在同柱時 碟片已經轉出去了

必須等它再轉回來 才能讀取




以下是硬碟相關知識

硬碟出廠時 會先將磁盤以每 512 Byte 劃為一個磁區 ( Sector )

NTFS/FAT 32 預設是將 8 個 Sector ( 4KB ) 劃為一個儲存單位 稱作叢集

每個儲存單位 ( 叢集 ) 包含 上個叢集的位址 下個叢集的位址 修正碼 壞軌標記....等等

剩下的空間用以儲存資料

檔案會被先分割成一堆小於 4KB 的片段 " 隨機 " 儲存於 散落在各處的空叢集

讀取時 是根據每個叢集內的位址索引 去讀出下個片段叢集 再行組合還原

所以 你無法預知下個片段叢集位於何處 無法讓磁頭去同時讀取多個片段叢集




因為使用者 " 隨機 " 不順序 不特定增增刪刪大量大小不同的檔案後 會造成片段空間散落各處

所以儲存時 是 " 隨機由前而後 " 找空位置儲存

被存在同柱的位置 機率並不高 就算被存在同一柱 你也無法預先知道 只能先讀出上個片段 知道下個片段位址後 再去讀取 無法同時讀取

寫入也一樣 你無法預知下個空位在哪裡 也無法預知同柱是否剛好都是空位

只能寫入一片段 再找位置 再寫入一片段 無法多磁頭同時寫入





為何要將檔案分割儲存 而不完整儲存於連續空間 ?

因為檔案大小不固定 差異又很大

電腦無法預知檔案的大小 無法像手機資料的儲存般 預先規劃出連續空間

若每個檔案都要連續儲存 那在增增刪刪後

會留下許多較小檔案儲存過的空間 塞不進一個較大的檔案 而造成儲存空間的巨大浪費
舊 2009-06-11, 02:46 AM #68
回應時引用此文章
ag5h2wctyos離線中