其實在上個學期學習計算機組成原理的時候,我寫過一篇博客 計算機組成原理——輔助存儲器 html
這篇博客中有關於磁盤的介紹和一些計算,因爲本課是操做系統,這裏我根據王道考研講解的磁盤設備,再總結一下,主要的側重點仍是有點不一樣。算法
磁盤塊的物理地址是用三個參數來表示的。也就是說要在磁盤上訪問一個扇區,必須給出其柱面號、磁頭號(盤面號)和扇區號,這稱爲扇區的物理地址,即物理扇區號。由物理扇區號表示的扇區稱爲絕對扇區。爲了方便,操做系統一般將其轉變爲連續的邏輯扇區號加以管理。
這裏解釋一下磁頭號,這是咱們老師對其的稱呼,也有人習慣稱其爲盤面號或者是磁道號,我我的更傾向於稱其爲盤面號,畢竟扇區在盤面上,稱其爲對應的磁頭,感受很奇怪?這裏姑且仍是稱爲磁頭號吧。post
編址方式爲:對整個磁盤從柱面0到最後一個柱面增長,在柱面上按磁道號增長,在磁道上按扇區號增長。學習
磁盤塊號的組成形式:url
設一塊爲一扇,則磁盤塊號及其物理三地址之間可按如下式子轉換:
(1)已知塊號,則磁盤驅動用的三地址:
柱面號=[塊號/(磁頭數×扇區數)]
磁頭號=[(塊號mod(磁頭數×扇區數))/扇區數]
扇區號=(塊號mod(磁頭數×扇區數))mod 扇區數spa
(2)已知磁盤塊物理地址,則磁盤塊號:
塊號=柱面號×(磁頭數×扇區數)+磁頭號×扇區數+扇區號 操作系統
上課的時候我看到上面的式子是有些疑惑的,但後來我對照着磁盤塊號的組成形式就很快明白了。3d
設磁盤組共有n個柱面,編號順序爲0、一、二、…、n-1;共有m個磁頭,編號順序爲0、一、二、…、m-1;每一個磁道內的k個信息塊從1開始編號,依次爲一、二、…、k。現用x表示邏輯磁盤塊號,用a,b,c分別表示任一邏輯磁盤塊的柱面號、磁頭號、磁道內塊號,則x與a,b,c可經過以下公式進行轉換:
x=k*m*a+k*b+c
a=(x-1) DIV (k*m)
b=((x-1) MOD (k*m)) DIV k
c=((x-1) MOD (k*m)) MOD k +1
htm