我的理解是:
1.OS的基本單位:4096bytes/cluster,也等同記憶體的一個page size
2.因為早期IBM的軟碟機基本單位是512bytes/sector,所以後來儲存媒體都這樣制定sector size
3.OS寫入一個單位為cluster,會被硬碟拆成8個sector邏輯定指寫入硬碟
Q:但是問題是,OS一個單位的資料還是4096bytes,硬碟是直接把資料/8*512bytes切割嗎?那他在LBA的時候是用什麼方式得知"那筆"資料的存放位置以及順序?總不可能向記憶體一樣給個大小和起始位置判別吧,真那樣也不會有碎片產生了
4.早期的分割表會讓硬碟起始位置在31.5k的位置開始記錄,所以不會對齊,從vista開始分割表就會對齊4K,網路上說是分割表導致儲存的起始位置不能與自己的基本寫入單位對齊,導致OS寫入一個單位,可能不是在同一個4K sector裡面,而造成讀取的時候,要多讀取一次
Q:假設真如他所說的這樣,那4K先進格式化技術,就算我儲存20bytes的檔案,實際上寫入的大小也是4K摟?因為只有這樣子的I/O機制才會造成不對齊4K sector的時候需要多讀取一次,不然如果傳統的LBA定址512bytes,每次就是512bytes,1個OS的寫入/讀取就是8個傳統sector的操作,也不會有對齊不對齊的問題了,是這個意思嗎?
5.但是網路上又說先進格式化也允許早期的OS模擬邏輯定址512bytes,定址LBA這個部分,是OS在進行的嗎?OS應該不用取得硬碟的實際磁區狀況,他只認得cluster為單位,為什麼先進格式化又說需要模擬512bytes定指呢?直接4k/cluster對上4k/sector不就好了嗎?
6.對於sector size,如果訂為4096bytes,那實際寫入1024bytes,是否實際使用了4096bytes的空間?
Q:但是這樣又跟我們接觸的檔案儲存的結構(NTFS)概念不同,我用1KB,硬碟應該是少1KB才對啊....越想越奇怪
誰來幫幫無知的我
