洪逸:「你們一定都沒再做磁碟重組啦!」
───────────────────────────────────────
(溫腥小提示:看此篇前建議先看:Disk Management磁碟管理淺談_磁碟資料存取方式與傳輸計算)
為什麼要做磁碟重組呢,原因是因為配置空間錯亂檔案分散很遠,磁頭跑阿跑阿找阿找阿花在Seek Time上的時間就越來越大。而磁碟重組空間後,可以將使用的空間與尚未使用的空間分開放,讓磁頭找資料變得快速。其原理就在於以下這幾種檔案配置的方法File Allocation methods:
1.Contiguous Allocation
簡單的說,這就是一種連續性的配置方法,如果一個檔案File需要n個Blocks的空間,則OS必須在Disk中找到大於等於n個連續的free Blocks,然後才會將空間配置給此File。
此硬碟內部已配置了三個File(moo、snow、fall),然後會有一個Physical Directory用來記載這三個檔案的起始Block位址與長度。
那麼顯而易見的,這種配置方式的優點就是:
1.平均Seek Time較短,因為同一個檔案的連續Blocks幾乎都座落在同一條Track(無seek time),只有少數會要移動磁頭的狀況(如snow檔案的23~24、27~28)
2.他支援Random Access與Sequential Access
至於缺點呢:
1.有External Fragmentation問題(這個問題就是要靠磁碟重組Repack解決)
2.File Size不容易擴充(下一個連續的Block可能已經分配出去了)
3.建檔之前需先宣告大小
2.Linked Allocation
簡單的說,OS只需在Disk中找到一個檔案大小為n個Blocks所需的大於等於n個Free Blocks即可以配置空間出去。這些Free Blocks不需要連續,他們彼此之間以Link的方式串連,每一個Block都會記錄下一個串連Block的位址。
如上圖所示,Physical Directory會記錄每個配置的檔名、起始Block位址、最終Block位址。
乍看之下,這種方法好太多了,但其實他也有很嚴重的缺點:
1.平均Seek Time有夠長(如圖所示,同個檔案的Block幾乎都不在同Track。
2.不支援Random Access,只支援Sequential Access
3.循序存取速度慢
4.可靠度差
至於優點呢:
1.沒有External Fragmentation問題
2.File Size容易擴充
3.建檔前不需事先宣告大小
另外,Linked Allocation有一種變形的方式,就是大家常常碰到的:
FAT(File Allocation Table) method:
其實就跟Linked Allocation一樣,不同的只是OS會用一個Table(FAT),紀錄配置區塊間的Linking資訊,而不是紀錄在每一個Allocationed Block上。
3.Index Allocation
簡單的說,除了再找Free Blocks的條件下跟Linked Allocation一樣以外,OS還要額外配置一個Index Block,用來記錄Allocationed Blocks的No..
優點如下:
1.沒有External Fragmentation
2.支援Random Acces與Sequential Acces
3.File容易擴充
缺點如下:
1.Index Block需額外佔用空間
2.如果此File所需的free Block很大,則單一一個Index Block可能無法容納所有的Allocationed Block No......至於解決方法,有興趣在問我吧XD
嗯嗯......落落長寫完一大段才發現沒寫到什麼跟repack有關的重點......
反正大概就這種感覺啦,自己想吧XD
好強喔= =
回覆刪除那個INDEX allocation 圖中的 2 8 21 跟 index的 8 31 2 怎麼對不起來阿,我看不太懂ㄟ,可以解釋一下ㄇ
回覆刪除你好, 不好意思現在才看到你的問題.
回覆刪除也謝謝你幫我提出這個問題.
關於這部分, 經你一講我才發現圖畫錯了.
右下方的Blocks應該各為2、31、8