這部分是裝置驅動的最後一部分——磁碟管理,相較於上一篇的鍵盤和顯示器要更復雜,但大致過程基本相同。磁碟管理共有4層抽象,我們將從此學習、掌握裝置驅動的一般研究理念和設計方法。這部分先介紹前2層抽象。
參考資料:
課程:哈工大作業系統(本部分對應 L28)
因為太多了,所以磁碟管理4層抽象準備分成2~3篇來講。
課本:《作業系統原理、實現與實踐》-李治軍、劉宏偉
2022-09-13,上了組合與介面課,發現我校的外設驅動是在這個課上講。
我們先讓磁碟使用起來,後面再引入 「管理」 來讓磁碟更好的被使用。
生磁碟就是指直接被驅動的磁碟,與之相應的,熟磁碟就是引入了檔案系統抽象的磁碟。
如下圖所示,像上篇筆記所講的外設一樣,磁碟工作依然基於馮·諾依曼架構:
使用磁碟,當然要先理解磁碟的結構,如下圖所示:
磁碟是由一個柱子串起很多碟片而組成的立體結構,像一個糖葫蘆串;每個盤面都由許多磁軌組成,碟片上下兩面都是可讀寫的;
硬碟又劃分為磁頭(Heads)、柱面(Cylinder)、磁區(Sector);
磁碟的存取單位是磁區,即每次讀寫的最小磁碟單元;
磁區大小是 512 位元組;
硬碟容量=磁頭數(同一柱面上的磁片數)×柱面數×磁區數×512 位元組
設計磁碟時,磁區大小是存取時間和碎片浪費的折衷考慮
這個後續會提。
學到後面的補充:柱面是什麼?
旋轉時,利用電流的磁效應,對一些電訊號進行磁化,儲存在磁碟中,用來儲存一些資訊;同樣的,將磁訊號轉化為電訊號,就可以讀出磁碟資訊。
磁碟的物理原理,詳見:磁碟原理:從電磁感應說起
現行磁碟可以作如下分類:
固態硬碟盤
SSD,Solid State Disk 或 Solid State Drive;
SSD 不算是磁碟,實際上是一種快閃記憶體固態硬碟,其工作原理應當參見 Flash;固態硬碟能夠實現隨機儲存,控制邏輯與機械磁碟完全不一樣;
下面討論的磁碟工作原理也是機械硬碟的。
參考資料:機械硬碟和ssd固態硬碟的原理對比分析,這篇筆記很詳細。
機械磁碟
讀取磁碟資訊時,比如讀取磁碟中的一個位元組: