① 在磁碟分區中,文件為什麼不是連續地保存在磁碟連續的簇中 請高手詳細分析硬碟存儲數據時每個磁軌的扇區
硬碟存儲原理類似光碟,硬碟最小的記錄單位是 比特 bytes 。
二進制數0101就是4比特。而一個位元組需要用8個bytes來記錄。
1T=1024G,1G=1024M,1M=1024K,1K=1024B,一位元組是1B。
注意區別大B和小b。
如圖所示 因為磁碟是每分鍾7200轉(3.5寸,常規盤)
假如我們需要寫入 A B C D 4個字母於硬碟 磁頭需要響應時間
所以如果在 1區最外圈磁軌寫A 1區的左側最外圈磁軌繼續B 則磁碟需要旋轉一周之後寫入 如果隔開2個扇形區域 在第三個扇形區域里寫B的話 磁碟旋轉一周即可寫入A B C 3個字母
按你說的需要轉3圈~ 你覺得怎麼寫快呢~~~?
!~~~~無分題我答這么認真你不給我追加點都對不起我~~~!
有空去書店找本磁碟原理多看看。。。。
扇區是磁碟最小的物理存儲單元,但由於操作系統無法對數目眾多的扇區進行定址,所以操作系統就將相鄰的扇區組合在一起,形成一個簇,然後再對簇進行管理。每個簇可以包括2、4、8、16、32或64個扇區。顯然,簇是操作系統所使用的邏輯概念,而非磁碟的物理特性。
如果一個扇區512位元組的話其實他實質上多於512個位元組
磁碟格式化時,格式化程序在每個扇區的數據之前和之後創建ID區域,磁碟控制器使用這些區域進行扇區編號,以及標識每個扇區的起始和終止。
在每個扇區里,都有一個前綴部分或頭部來標識扇區的開始並包含扇區號,有一個後綴部分或尾部包含校驗和(有助於保證數據的完整性)。
扇區的頭部和尾部與操作系統無關,也與文件系統和文件無關。除了頭部和尾部,在扇區內部、每條磁軌之間、每條磁軌上的扇區之間還有間隙。但是,這些間隙里都不含有可用的數據空間,它們是在低級格式化過程中當記錄被暫時關閉是創建的。
如此分析,則在技術上而言每個磁碟扇區的大小為512位元組是不對的!每個扇區確實允許存儲512個位元組的數據,但是,數據域只是扇區的一部分而已。
由於扇區頭部和尾部需要的實際位元組數隨驅動器的不同而不同,但通常而言,每個扇區實際上佔用571個位元組,這是個典型值。
所以你的理想狀態是不存在於硬碟這種以速度為最高目標的設備中~~~
② 對於一個完整的文件而言,其存放在磁碟上的物理位置是否連續
這里以FAT文件系統為例
文件配置表(英文:File Allocation Table,首字母縮略字:FAT)是一種由微軟發明的並帶有部分專利[1]的文件系統,供MS-DOS使用,也是非NT內核的微軟窗口使用的文件系統。
FAT文件系統考慮當時計算機效能有限,所以未被復雜化,因而被幾乎所有個人計算機的操作系統支持。這特性使它成為理想的軟盤和記憶卡文件系統,也適合用作不同操作系統中的數據交流。
但FAT有一個嚴重的缺點:當文件被刪除並且在同一位置被寫入新數據,他們的片段通常是分散的,減慢了讀寫速度。磁碟碎片重整是一種解決方法,但必須經常重組來保持FAT文件系統的效率。
主磁碟結構
一個FAT文件系統包括四個不同的部分。
保留扇區,位於最開始的位置。第一個保留扇區是引導區(分區啟動記錄)。它包括一個稱為基本輸入輸出參數塊的區域(包括一些基本的文件系統信息尤其是它的類型和其它指向其它扇區的指針),通常包括操作系統的啟動調用代碼。保留扇區的總數記錄在引導扇區中的一個參數中。引導扇區中的重要信息可以被DOS和OS/2中稱為驅動器參數塊的操作系統結構訪問。
FAT區域。它包含有兩份文件分配表,這是出於系統冗餘考慮,盡管它很少使用,即使是磁碟修復工具也很少使用它。它是分區信息的映射表,指示簇是如何存儲的。
根目錄區域。它是在根目錄中存儲文件和目錄信息的目錄表。在FAT32下它可以存在分區中的任何位置,但是在早期的版本中它永遠緊隨FAT區域之後。
數據區域。這是實際的文件和目錄數據存儲的區域,它占據了分區的絕大部分。通過簡單地在FAT中添加文件鏈接的個數可以任意增加文件大小和子目錄個數(只要有空簇存在)。然而需要注意的是每個簇只能被一個文件佔有,這樣的話如果在32KB大小的簇中有一個1KB大小的文件,那麼31KB的空間就浪費掉了。 例外情況
Apricot PC的MS-DOS所用FAT的實現有一個不同的啟動扇區組織以使用計算機與IBM不兼容的基本輸入輸出系統。跳轉指令和OEM名被省略並且MS-DOS文件系統參數位於0x50(在標准扇區中偏移為0x0B - 0x17)。後來的Apricot MS-DOS版本除了Apricot特有的引導區之外也具有了讀寫標准啟動分區的能力。
BBC Master 512 上的DOS Plus根本就不使用傳統的引導區。數據磁碟省略了引導區並且以一個單份的FAT開始(FAT的第一個位元組用來確定磁碟容量),啟動磁碟使用一個包含啟動調用程序的小型ADFS文件系統,後面跟隨一個單份的FAT。
文件分配表
一個分區分成同等大小的簇,也就是連續空間的小塊。簇的大小隨著FAT文件系統的類型以及分區大小而不同,典型的簇大小介於2KB到32KB之間。每個文件根據它的大小可能佔有一個或者多個簇;這樣,一個文件就由這些這些(稱為單鏈表)簇鏈所表示。然而,這些鏈並不一定一個接著一個在磁碟上存儲,它們經常是在整個數據區域零散的儲存。
文件分配表(FAT)是映射到分區每個簇的條目列表。每個條目記錄下面五種信息中的一種。
鏈中下一個簇的地址
一個特殊的文件結束符(EOF)符號指示鏈的結束
一個特殊的符號標示壞簇
一個特殊的符號標示保留簇
0來表示空閑簇
每個版本的FAT文件系統使用不同大小的FAT條目。這個大小已經由名字表示出來,例如FAT16文件系統的每個條目使用16位表示,32位文件系統使用32位表示。這個不同意味著FAT32系統的文件分配表能比FAT16映射更多的簇,它也允許FAT32有更大的分區大小。這也使得FAT32比FAT16更能有效地利用磁碟空間,因為每個驅動器能夠定址更小的簇,這也就意味著更少的空間浪費。
目錄表
目錄表是一個表示目錄的特殊類型文件(現今通常稱為文件夾)。它裡面保存的每個文件或目錄使用表中的32位條目表示。每個條目記錄名字、擴展名、屬性(檔案、目錄、隱藏、只讀、系統和卷)、創建的日期和時間、文件/目錄數據第一個簇的地址,最後是文件/目錄的大小。
除了FAT12和FAT16文件系統中的根目錄表占據特殊的根目錄區域位置之外,所有其它的目錄表都存在數據區域。
合法的DOS文件名包括下面一些字元:
大寫字母A-Z
數字0-9
空格(盡管結尾的空格被作為填充而不是文件名的一部分)
! # $ % & ( ) - @ ^ _ ` { } ~ '
數值 128-255
DOS文件名位於OEM字元集。
長文件名(LFN)使用一個技巧存儲在FAT文件系統上——在目錄表中添加假的條目。這些條目使用一個普通文件無法使用的卷標屬性標識,普通文件無法使用是由於它們被大多數舊的MS-DOS程序忽略。很顯然,一個只包含卷標的目錄被當作空卷,這樣就允許刪除;使用長文件名創建的文件在從普通的DOS刪除就會發生這樣的情形。
校驗和也允許檢驗長文件名是否與8.3文件名匹配;當一個文件刪除之後使用DOS在同一個目錄位置重新創建之後就會出現不匹配現象。校驗和使用下面的演算法計算。(注意pFcbName是指向如正常目錄條目中所顯示的文件名的指針,例如前八個字元是文件名,最後三個是擴展名。點是隱含的。文件名中沒有使用的空間將使用空格(ASCII 0x20)補齊。例如,「Readme.txt」將記錄為"README TXT"。
③ 為什麼磁碟存放文件不是連續的而是間隔的有圖
這是基於磁碟的讀寫機制:隨機讀寫。
因為磁碟是有轉動的碟片和可移動的磁頭構成的,假設採用了連續讀寫,那麼如果每次寫入新的文件都要等磁頭移動到上次寫入結束的地方,這需要花費一定的時間,而且考慮到文件被刪除多餘出來的簇,比如有三個文件,第一個文件佔用0~99號簇,第二個佔用了100~150,第三個151~200,如果我刪除第二個文件,就造成第一、第三個文件中空出50個簇,按照連續寫入的原則要把第3個文件先移動到第一個文件之後再寫入第四個文件,這樣就更花時間了。由於早期的磁碟(硬碟、軟盤)性能比較低,所以為了提高性能而採用了隨機讀寫的方式。
④ 文件時連續存儲在硬碟上的嗎還是存儲的分區有可能相隔很遠啊
文件不是連續存儲在硬碟上的,
同一分區位置也不是連續的。
甚至同一分區不在同一個碟片上。
如連續存儲,硬碟速度讀寫速度會更慢
⑤ 關於硬碟存儲的原理(順序)
數據以扇區為單位存儲,扇區可以是連續的,也可以是單獨的.在文件索引里會記錄這個文件所在的所有扇區,當讀時只要按順序讀取這些扇區就行了,當文件過於分散時就是常說的磁碟碎片.扇區的大小默認是4KB.也可以在格式化時自己指定.
⑥ 一個文件在硬碟中的存儲是連續還是分離,如果分離,每斷的大小是相等還是不等,沒個文件的斷是相等的嗎
數據在硬碟中的存儲開始基本上都是連續的,隨著使用的增加,不斷的讀寫硬碟上數據就很分散了,也就是所謂的磁碟碎片,如果你整理過碎片就會看到。大小是不等的。文件一般不可能全部都寫入內存的,特別是大文件。
⑦ 硬碟中存儲的同一個文件,空間上不一定是連續的吧
不一定是連續的
⑧ 硬碟中存儲的同一個文件,空間上不一定是連續的吧
是的.特別是WORD
EXCEL
PSD這種多次追加保存的文件,文件不連續的存放硬碟上,我們一般叫它做文件碎片,文件碎片過多會影響讀取速度,所以我們要定期進行文件碎片整理.