注:本文爲本人讀書總結,內容僅供參考。
一、實物圖
二、原理圖
- 磁頭(head):每個盤片一般有上下兩面,分別對應1個磁頭,共2個磁頭;
- 磁道(track):磁道是從盤片外圈往內圈編號0磁道,1磁道…
- 扇區(sector)數:每個磁道都別切分成很多扇形區域,每道的扇區數量相同;
- 所有的盤片(一般硬盤裏有多個盤片,盤片之間平行)都固定在一個主軸上。在每個盤片的存儲面上都有一個磁頭,磁頭與盤片之間的距離很小(所以劇烈震動容易損壞),磁頭連在一個磁頭控制器上,統一控制各個磁頭的運動。磁頭沿盤片的半徑方向動作,而盤片則按照指定方向高速旋轉,這樣磁頭就可以到達盤片上的任意位置了。
三、讀取數據的流程
- 操作系統發送指令:取0柱面(最外層的所有磁道組成的一個圓柱面),0磁頭(第1個磁頭),1扇區(第一個扇區)的數據
- 第1個磁頭移動到第一個柱面(鎖定了一個磁道的數據)
- 主軸轉動,轉動到第一個扇區的時候,將數據取出
四、硬盤空間的組織方式(如何爲文件分配內存)
詳細見:磁盤文件管理程序
可以想象,一塊較大的磁盤空間其實是由無數個盤塊組成的,那麼這些盤塊如何組裝成一塊較大的內存來分配給一個文件呢?
- 連續:爲每個文件分配一塊連續的空間,各個盤塊相鄰接,第一個盤塊的地址爲a,第二個就是a+1,第三個是a+2 ……
優點:知道文件的起點和長度便可以像數組一樣隨機存取數據;連續的盤塊基本都在同一個磁道,效率極高;
缺點:需要事先知道存儲的文件的大小來決定分配哪些連續空間、插入刪除會產生許多碎片化的文件, - 鏈式:屬於一個文件的盤塊通過鏈接成爲一體,每個鏈條的首地址作爲文件地址記錄在相應文件的FCB的“物理地址”字段中。記錄盤塊鏈接的指針顯示地記錄爲一張鏈接表,所有已分配的盤塊號都記錄在其中,稱文件分配表(FAT),爲了提高文件系統訪問速度,FAT一般常駐內存
缺點:FAT過大,太佔內存,需要遍歷FAT - 索引:每個文件都建一張索引表記錄分配的內存盤塊的信息;
例如一個索引表定義爲13個地址項:iaddr(0)~iaddr(12),總的來說分爲兩種:直接地址、間接地址
小文件:
iaddr(0)~iaddr(9)存放直接地址,即存文件數據的盤塊號;
中文件:
iaddr(10)存放單級索引的索引盤塊號;
大文件:
iaddr(11)存放二級索引的主索引盤塊號
iaddr(12)存放三級索引的主索引盤塊號