一、磁盤的結構
其實在上個學期學習計算機組成原理的時候,我寫過一篇博客 計算機組成原理——輔助存儲器
這篇博客中有關於磁盤的介紹和一些計算,由於本課是操作系統,這里我根據王道考研講解的磁盤設備,再總結一下,主要的側重點還是有點不同。
1、磁盤、磁道和扇區
2、盤面和柱面
3、磁盤的物理地址
磁盤塊的物理地址是用三個參數來表示的。也就是說要在磁盤上訪問一個扇區,必須給出其柱面號、磁頭號(盤面號)和扇區號,這稱為扇區的物理地址,即物理扇區號。由物理扇區號表示的扇區稱為絕對扇區。為了方便,操作系統通常將其轉變為連續的邏輯扇區號加以管理。
這里解釋一下磁頭號,這是我們老師對其的稱呼,也有人習慣稱其為盤面號或者是磁道號,我個人更傾向於稱其為盤面號,畢竟扇區在盤面上,稱其為對應的磁頭,感覺很奇怪?這里姑且還是稱為磁頭號吧。
編址方式為:對整個磁盤從柱面0到最后一個柱面增加,在柱面上按磁道號增加,在磁道上按扇區號增加。
磁盤塊號的組成形式:
設一塊為一扇,則磁盤塊號及其物理三地址之間可按以下式子轉換:
注意這里的磁頭數是磁道數,也就是說這里的磁盤是固定頭磁盤,每一個磁道都有一個磁頭。
(1)已知塊號,則磁盤驅動用的三地址:
柱面號=[塊號/(磁頭數×扇區數)]
磁頭號=[(塊號mod(磁頭數×扇區數))/扇區數]
扇區號=(塊號mod(磁頭數×扇區數))mod 扇區數
(2)已知磁盤塊物理地址,則磁盤塊號:
塊號=柱面號×(磁頭數×扇區數)+磁頭號×扇區數+扇區號
上課的時候我看到上面的式子是有些疑惑的,但后來我對照着磁盤塊號的組成形式就很快明白了。
設磁盤組共有n個柱面,編號順序為0、1、2、…、n-1;共有m個磁頭,編號順序為0、1、2、…、m-1;每個磁道內的k個信息塊從1開始編號,依次為1、2、…、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
注意這里扇區的編號是從1開始的,所以x需要-1
4、磁盤的分類
5、總結
二、磁盤調度算法
一次磁盤讀/寫操作需要的時間
1、先來先服務算法(FCFS)
2、最短尋找時間優先算法(SSTF)
3、掃描算法(SCAN)
4、LOOK調度算法
5、循環掃描算法(C-SCAN)
6、C-LOOK調度算法