4.14節問題: 如何根據磁碟片的邏輯扇區號計算物理扇區號?

來源:互聯網
上載者:User
作者:Maverick  blog:http://blog.csdn.net/zhaohuabing  轉載請註明出處

一、首先讓我們看看磁碟片的物理結構
磁碟片在物理上有柱面、磁軌和扇區的結構,其關係是柱麵包含磁軌,磁軌包含扇區,扇區是電腦讀取磁碟片的基本單位
1、柱面:磁碟片有兩個柱面,編號為:0,1 (其實就是磁碟片的兩面)
2、磁軌:每個面劃分為若干個磁軌,從外向內編號:0,1,2...80
3、扇區:每個磁軌劃分為若干個扇區,一個磁軌中扇區的編號:1,2,3...18,每個扇區的容量相同,能儲存512 byte的資料。

二、然後看看扇區的編碼
扇區的編號由兩種,一種是物理編號,一種是邏輯編號

1、物理編號:表明扇區在磁碟片上的物理位置,用柱面、磁軌、扇區表示,BIOS中斷int 13h就是使用物理編號來確定要讀的扇區位置。
2、邏輯編號:表明扇區的邏輯位置,是一個相對於起始扇區(柱面0磁軌0扇區0)的序號

3、物理編號和邏輯編號的對應關係如下:
物理編號  (柱面號  磁軌號 扇區號)                 邏輯編號
0柱面0磁軌    0        0        1                         0 
             0        0       2                       1
                ...      ...       ...                       ...
               0        0        18                         17
1柱面0磁軌    1        0        1                       18
         1        0        2                        19
                ...      ...      ...                        ...
                1        0        18                        35
0柱面1磁軌    0       1        1                        28
                0        1        2                          29
                ...      ...       ...                        ...
                0        1        18                        53
1柱面1磁軌    1        1        1                       54
        1      1        2                          55 
                ...     ...    ...                        ...
                1        1        18                        71
                ..................
0柱面79磁軌  0        79        1
              0        79        2
               ...    ...      ...
              0     79       18
1柱面79磁軌  1        79        1
              1        79        2
              ...      ...       ...                          ...
              1        79        18                         2879
可以看到,邏輯扇區編號是按照物理扇區號、物理柱面號、物理磁軌號的先後順序進行編碼的,為什麼要按照這個順序進行編號呢,我想主要是為了減少磁頭的移動,加快磁碟片的I/O速度。因為檔案一般是存放在按照相鄰的邏輯扇區中,按照物理扇區號、物理柱面號、物理磁軌號的先後順序對邏輯扇區進行編碼,相鄰的邏輯扇區在磁碟片的物理位置上也是相鄰的(同一面或者另一面),可以減少讀取同一檔案式磁頭的移動距離。
由上面可以得到兩種編號的換算關係:
邏輯扇區號 = (磁軌號 * 2 + 柱面號) * 18 + 物理扇區號 - 1

因為每一個磁軌有18個扇區,而物理扇區號是在每一個磁軌從0開始編號,所以物理扇區號 = 邏輯扇區號/18 的餘數 + 1
因為每一個磁軌有18*2個扇區,所以 磁軌號 = 邏輯扇區號/(18*2) 的商 即磁軌號=商>>2
   如果 邏輯扇區號/18的商是偶數,則是柱面0,如果商是奇數,則是柱面1  即柱面號=商&1

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.