OS 李治軍 L28 生磁碟的使用

2022-07-16 02:36:09 字數 902 閱讀 5008

磁碟具有更複雜的結構,在作業系統內有著更為複雜的抽象層次,這裡的生(raw)是讓disk跑起來的意思。

可以將磁碟的結構理解為多個原片疊起來的柱面,我們用以下的引數取描述乙個磁碟:

理論上,我們要操控乙個磁碟,就要對其控制器發出指令,控制磁頭的電機,使磁頭移動到相應的軌道上去(找到乙個柱面),然後開始旋轉,完成電磁轉換的過程,以實現資料的讀寫。為了方便使用者使用磁碟,os先做了第一層抽象:將磁碟抽象為多個磁碟塊,使用者只需要對這些連續的磁碟塊進行操作,不需要進一步去 管理磁碟控制器的各個引數。

磁碟的訪問時間是:寫入控制器時間+尋道時間+磁頭旋轉讀取時間+傳輸時間。其中,尋道涉及電機的直線運動,所費時間較高,在設計上我們要盡可能讓相鄰的盤塊具有相投的軌道,也就是半徑長度一致,避免在連續讀寫的時候頻繁移動磁頭的位置。

扇區號=c * (head * sectors) + h * sectors +s

從扇區號到盤塊號:

因為尋道時間和旋轉時間佔了大頭(尤其是尋道時間),而資料傳輸時間佔比小,每次讀1m和讀1k所話的時間是比較接近的。所以引入了盤塊號,是多個扇區組成,將原先要多次的讀寫合併為一次讀寫,這樣可以提公升讀寫速度。但是,這樣容易造成碎片,因為乙個盤塊內容較大時,用不完ei,這是一種以空間換時間的做法。

第二層抽象:

計算機是多程序影象,有多個程序在使用磁碟,需要增加乙個請求佇列,做出一些排程。

每做完一件事,磁碟發出中斷,驅動從佇列中取出乙個新的blokc號,然後進行引數換算。

如何合理排程?肯定是所花時間衡量,而尋道時間是這裡的主要矛盾!

OS 李治軍 L25 記憶體換出

有換入就應該有換出!等價交換!必須要選擇乙個頁換出,選擇哪一頁淘汰emm?下面介紹淘汰演算法。一 fifo 先來的先走。二 min 記憶體當中,將來最久沒有使用過的page滾蛋。效果很好,但是我們做不到,我們不知道將來會有什麼東西過來。三 lru 用過去的歷史 我來,選最近最長一段時間沒有使用過的頁...

OS 李治軍 L8 CPU管理的想法

作業系統核心 管理硬體 管理cpu 引出多程序影象 作業系統核心影象 自動取指令執行,給個位址,從記憶體中取出指令執行,並且是自動向下執行。看一眼菜譜,做一步工作。設定好pc初值就可以了,剩下cpu會往下工作。管理cpu 設定pc的初值 有乙個問題 有io指令的速度遠遠小於存計算指令,io特別慢。如...

OS 李治軍 L4L5作業系統介面

引子 命令 每個命令對應乙個可執行檔案。shell的 根據使用者的命令,呼叫相關的可執行檔案執行。圖形 硬體輸入到訊息佇列中,應用程式不斷從訊息佇列中獲取訊息,再根據訊息做一些操作。介面表現為函式呼叫,又是系統提供,所以又稱之為系統呼叫 system call posix ieee指定的乙個標準族。...