俗話說一圖勝千言,先用一張ACSII碼圖來解釋為什麼會產生磁碟碎片。
上面的ASCII圖表示磁碟文件系統,由於目前上面沒有任何數據文件,所以我把他表示成0。
在圖的最上側和左側各有a-z 26個字母,這是用來定位每個數據字節的具體位置,如第1行1列是aa,26行26列是zz。
我們創建一個新文件,理所當然的,我們的文件系統就產生了變化,現在是
如圖所示:」內容表」(TOC)佔據了前四行,在TOC裡存貯著每件文件在系統裡所在的位置。
在上圖,TOC包括了一個名字叫hello.txt的文件,其具體內容是」Hello, world」,在系統裡的位置是ae到le。
接下來再新建一個文件
如圖,我們新建的文件bye.txt緊貼著第一個文件hello.txt。
其實這是最理想的系統結構,如果你將你的文件都按照上圖所表示的那樣一個挨著一個,緊緊的貼放在一起的話,那麼讀取他們將會非常的容易和迅速,這是因為在硬碟裡動得最慢的(相對來說)就是傳動手臂,少位移一些,讀取文件數據的時間就會快一些。
然而恰恰這就是問題的所在。現在我想在」Hello, World」後加上些感嘆號來表達我強烈的感情,現在的問題是:在這樣的系統上,文件所在的行就沒有地方讓我放這些感嘆號了,因為bye.txt佔據了剩下的位置。
現在有倆個方法可以選擇,但是沒有一個是完美的
1.我們從原位置刪除文件,重新建個文件重新寫上」Hello, World!!」. –這就無意中延長了文件系統的讀和寫的時間。
2.打碎文件,就是在別的空的地方寫上感嘆號,也就是」身首異處」–這個點子不錯,速度很快,而且方便,但是,這就同時意味著大大的減慢了讀取下一個新文件的時間。
如果你對上面的文字沒概念,上圖
這裡所說的方法二就像是我們的windows系統的存儲方式,每個文件都是緊挨著的,但如果其中某個文件要更改的話,那麼就意味著接下來的數據將會被放在磁碟其他的空餘的地方。
如果這個文件被刪除了,那麼就會在系統中留下空格,久而久之,我們的文件系統就會變得支離破碎,碎片就是這麼產生的。
試著簡單點,講給mm聽的硬碟讀寫原理簡化版 硬碟的結構就不多說了,我們平常電腦的數據都是存在磁軌上的,大致上和光碟差不多.讀取都是靠磁頭來進行.
我們都知道,我們的數據資料都是以信息的方式存儲在盤面的扇區的磁軌上,硬碟讀取是由搖臂控制磁頭從盤面的外側向內側進行讀寫的.所以外側的數據讀取速度會比內側的數據快很多.
其實我們的文件大多數的時候都是破碎的,在文件沒有破碎的時候,搖臂只需要尋找1次磁軌並由磁頭進行讀取,只需要1次就可以成功讀取;但是如果文件破碎成 11處,那麼搖臂要來回尋找11次磁軌磁頭進行11次讀取才能完整的讀取這個文件,讀取時間相對沒有破碎的時候就變得冗長.