檔案系統定址方式 扇區定址

2021-08-19 01:19:03 字數 1828 閱讀 6384

磁碟邏輯分布:

0 術語

可以把磁碟想象成乙個餅,heads就是他的磁頭,因為乙個碟片兩面都記錄資料,所以它一定是乙個偶數。cylinder是它的寬度,柱面越多,磁碟越胖,同時越不划算。sector是扇區,乙個柱面的扇區數目是一定的。

1 定址

定址的目標是可以找到具體的某乙個扇區,早期有ibm的chs來定址,現在為lba定址,我們分別了解一下。

1.1chs定址:

chs分別是柱面,碟片,扇區的英文首字母。顧名思義我們可以使用這三者來定位到唯一乙個扇區上,從而進行定位。比如乙個24bit的chs位址,從低到高分別為 10bit cylinder,8bit head, 6bit sector。其定址能力我們可以計算一下,24bit取2的24次冪為16g,每乙個sector為512kb,一共為8gb的範圍空間。那麼如果磁碟大小超過8gb應該怎麼定址呢?對了進行擴充位址長度即可,所以後來對24bit的 chs位址擴充到28bit 實現128gb定址。

1.2lba定址

lba定址是一種定址方式,說到底也要根據上面的c h s 三個引數計算而來。

lba = (cylinder * hpc + head) * spt + sector - 1

2 位址轉換

lba 到 chs 位址轉換很簡單,都是算出基本的三個量再來計算:

cylinder = lba / (spt * hpc)

head = (lba / spt) % hpc

sector = lba % spt + 1

3 實戰

如何檢視我的磁碟有head sector cylinder分別是多少呢?

[root@100 /data]# fdisk -l /dev/sdb

disk /dev/sdb: 2000.4 gb, 2000398934016 bytes

255 heads, 63 sectors/track, 243201 cylinders

units = cylinders of 16065 * 512 = 8225280 bytes

sector size (logical/physical): 512 bytes / 512 bytes

i/o size (minimum/optimal): 512 bytes / 512 bytes

disk identifier: 0xfef4eac0

device boot      start         end      blocks   id  system

/dev/sdb1               1      243201  1953512001   83  linux

4 reference

定址 定址方式

定址方式就是處理器根據指令中給出的位址資訊來尋找實體地址的方式。在儲存器中,運算元或指令字寫入或讀出的方式,有位址指定方式 相聯儲存方式和堆疊訪問方式。幾乎所有的計算機,在記憶體中都採用位址指定方式。當採用位址指定方式時,形成運算元或指令位址的方式稱為定址方式。定址方式分為兩類,即指令定址方式和資料...

七種定址方式 直接定址方式

指令所要的運算元存放在記憶體中,在指令中直接給出該運算元的有效位址,這種定址方式為直接定址方式。在通常情況下,運算元存放在資料段中,所以,其實體地址將由資料段暫存器ds和指令中給出的有效位址直接形成,但如果使用段超越字首,那麼,運算元可存放在其它段。例 假設有指令 mov bx,1234h 在執行時...

定址方式總結

當運算元存放在儲存器時,儲存單元的實體地址有兩部分 段位址和偏移位址.指令中運算元也可以不在基本規定的段區內,必須在指令中指定段暫存器,即段超越.訪問的約定段及段超越 可修改段 如下所示 訪問方式 預設段偏移位址 段超越取指令 csip 堆疊操作 sssp 源串ds sics,es,ss 目的串es...