每天五分鐘,備戰架構師 4 作業系統之裝置管理

2022-02-12 11:47:51 字數 3926 閱讀 8324

裝置管理是對計算機輸入、輸出系統的管理,這是作業系統最具有多樣性和複雜性的部分,其主要任務是選擇合適的裝置進行資料傳輸,控制資料交換的過程,為使用者提供透明的介面讓使用者不必關心裝置的特性,為完成這些任務,需要提供的功能主要包括:緩衝區管理、裝置分配、裝置處理、虛擬裝置管理、實現裝置獨立性等。

裝置型別

系統裝置的分類方法有很多種,比如說按有沒有線分為有線裝置、無線裝置,具體的看思維導圖吧。

裝置連線

現代計算機系統對外部裝置的控制通常分為:通道、控制器和裝置。

__裝置控制器__是計算機中的乙個實體,其主要職責是控制乙個或多個i/o裝置,以實現i/o裝置和計算機之間的資料交換,它是cpu與i/o裝置之間的介面,它接收從cpu發來的命令,並去控制i/o裝置工作,以使處理從繁雜的裝置控制事務中解脫出來。

__通道__的主要目的是為了建立獨立的i/o操作,不僅使資料的傳送能獨立於cpu,而且也希望有關對i/o操作的組織、管理及其結束處理盡量獨立,以保證cpu有更多的時間去進行資料處理。

控制裝置的軟體分為與裝置有關的,例如驅動程式,和與裝置無關的,如控制器的公共部分。

資料傳輸控制

外圍裝置和記憶體之間常用的資料傳送控制方式主要有以下幾種方式:

程式控制方式

在早期計算機系統中,由於無中斷機構,處理機對i/o裝置的控制採取程式i/o方式,或稱為忙-等待方式,即在處理機向控制器發出一條i/o指令啟動輸入裝置輸入資料時,要同時把狀態暫存器中的忙/閒標誌busy設定為1,然後便不斷地迴圈測試busy,只有當其為0時,表示輸入已經送入控制器的資料暫存器中,於是處理機將資料暫存器中的資料取出,送入記憶體指定單元中,這樣便完成了乙個字(符)的i/o。

在程式i/o方式中,由於cpu的高速性和i/o裝置的低速性,致使cpu的絕大部分時間都處於等待i/o裝置完成資料i/o的迴圈測試中,造成對cpu的極大浪費。

中斷控制方式

當某程序要啟動某個i/o裝置工作時,便由cpu向相應的裝置控制器發出一條i/o命令,然後立即返回繼續執行原來的任務,裝置控制器於是按照該命令的要求去控制指定i/o裝置,此時,cpu與i/o裝置並行操作。一旦資料進入資料暫存器,控制器便通過控制線向cpu傳送乙個中斷訊號,由cpu檢查輸入過程中是否出錯,若無錯,便由控制器傳送取走資料的訊號,再通過控制器及資料線將資料寫入記憶體指定單元中。

在i/o裝置輸入每個資料的過程中,由於無需cpu干預,因而可使cpu與i/o裝置並行工作,僅當完成乙個資料輸入時,才需cpu花費極短的時間去做一些中斷處理。

直接儲存訪問方式dma

雖然中斷驅動i/o比程式i/o方式更有效,但是,它仍是以字(節)為單位進行i/o的,每當完成乙個字(節)的i/o時,控制器便要向cpu請求一次中斷,換言之,採用中斷驅動i/o方式時的cpu是以字(節)為單位進行干預的,將這種方式用於塊裝置的i/o是非常低效的。

dma方式指外部裝置和記憶體之間開闢直接的資料交換通路。dma控制器由三部分組成,主機與dma控制器的介面;dma控制器與塊裝置的介面;i/o控制邏輯。

通道控制方式

i/o通道方式是dma的發展,它可以進一步減少cpu的干預,即把乙個資料塊的讀(或寫)為單位的干預減少為對一組資料塊的讀(或寫)及有關的控制和管理為單位的干預。同時,可以實現cpu、通道、i/o裝置的並行操作,提高資源利用率。

通道是通過執行通道程式,並與裝置控制器共同實現對i/o裝置的控制的,通道程式是由一系列通道指令(或稱為通道命令)所構成的。

裝置分配

多道程式系統中,裝置不允許使用者直接使用,而是由作業系統統一排程和控制。裝置分配功能是裝置管理的基本任務。裝置分配程式按照一定的策略,為申請裝置的使用者程式分配裝置,記錄裝置的使用情況。

磁碟排程

磁碟裝置包括乙個或多個物理碟片,每個碟片分乙個或兩個儲存面,每個磁碟面被組織成若干個同心環,這種環稱為磁軌,各磁軌之間留有必要的縫隙。每條磁軌上可儲存相同數目的二進位制位,這樣,磁碟密度即每英吋中所儲存的位數,顯然是內層磁軌密度較外層磁軌的密度高,每條磁軌又被邏輯上劃分成若干個扇區,乙個扇區稱為乙個盤塊(資料塊)或稱為磁碟扇區。乙個物理記錄儲存在乙個扇區上,磁碟上儲存的物理記錄塊數目是由扇區數、磁軌數以及盤面數決定的。

磁碟是多個程序共享的裝置,當有多個程序都要求訪問磁碟時,應採用一種最佳的排程演算法,使各程序對磁碟的平均訪問時間最小。由於在訪問磁碟中,主要是尋道時間,因此,磁碟排程的目標是使磁碟的平均尋道時間最少。目前常用的磁碟排程演算法有先來先服務、最短尋道時間優先及掃瞄等演算法。

先來先服務(fcfs, first come first service)

這是一種最簡單的磁碟排程演算法,其根據程序請求訪問磁碟的先後順序進行排程,優點是公平、簡單,每個程序的請求都能得到依次處理,不會出現某個程序的請求長期得不到滿足的情況。

最短尋道時間優先(sstf,shortest seek time first)

要求訪問的磁軌與當前磁頭所在的磁軌距離最近,以使每次的尋道時間最短。但這種演算法不能保證平均尋道時間最短。

掃瞄(scan)演算法

sstf演算法雖然能獲得較好的尋道效能,但可能會導致某個程序發生飢餓現象,因為只要有新程序的請求到達,且其所要訪問的磁軌與磁頭當前所在磁軌的距離較近,這種新程序的i/o請求必然先滿足,對sstf演算法修改後形成scan演算法,可防止老程序出現飢餓現象。該演算法不僅考慮到欲訪問的磁碟與當前磁軌之間的距離,更優先考慮的是磁頭當前的移動方向。例如,當磁頭正在自里向外移動時,scan演算法所考慮的下乙個訪問物件,應是其欲訪問的磁軌既在當前磁軌之外,又是距離最近的。其類似電梯的執行,也稱為電梯排程演算法。

迴圈掃瞄(cscan)演算法

scan演算法既能夠獲得較好的尋道效能,又能防止飢餓現象,但是,當磁頭剛從裡向外移動而越過了某個磁軌時,恰好又有一程序請求訪問此磁軌,這時,該程序必須等待,待磁頭繼續從裡向外,然後再從外向裡掃瞄完所有要訪問的磁軌後,才處理該程序的請求,致使該程序的請求被大大地推遲。為了減少這種延遲,cscan演算法規定磁頭單向移動,例如,致使自里向外移動,當磁頭移到最外的磁軌訪問後,磁頭立即返回最裡的欲訪問的磁軌,即將最小的磁軌號緊接著最大的磁軌號構成迴圈,進行迴圈掃瞄。

nstepscan演算法

在sstf、scan、cscan幾種排程演算法中,都可能會出現磁臂停留在某處不動的情況,例如,有乙個或幾個程序對某個磁軌具有較高的訪問頻率,即這些程序反覆請求對某一磁軌的i/o操作,從而壟斷了整個磁碟裝置,這一現象稱為磁臂粘著。nstepscan演算法將磁碟請求佇列分成若干個長度為n的子佇列,磁碟排程將按fcfs演算法一次處理這些子佇列,當正在處理某子佇列時,如果又出現了新的磁碟請求,便將新的請求程序放入其他佇列,這樣就避免了出現粘著現象。當n很大時,會使n步掃瞄演算法效能接近於scan演算法,當n=1時,退化為fcfs演算法。

fscan演算法

其是nstepscan的簡化,即fscan只將磁碟請求佇列分成兩個子佇列,乙個是由當前所有請求磁碟i/o的程序所形成的佇列,由磁碟排程按scan演算法進行處理,在掃瞄期間,將新出現的請求磁碟i/o的程序放入另乙個等待處理的請求佇列。這樣,所有的新請求都被推遲到下一次掃瞄時處理。

spooling 技術

spooling(simultaneous peripheral operation on line)是低速輸入輸出裝置與主機交換的一種技術,通常也稱為「假離線真聯機」。利用spooling技術,可以將低速的獨佔裝置改造成一種可共享的裝置,而且一台物理裝置可以對應若干臺虛擬的同類裝置。spooling系統必須有高速、大容量並且可隨機訪問的外存。

每天五分鐘,備戰架構師 7 網路作業系統

在當今網際網路的環境下,基本上所有的作業系統都可以稱得上是網路作業系統,大到主機系統 x86伺服器系統 個人電腦作業系統,小到一些iot裝置,如智慧型電視 智慧型冰箱等等,這一篇就來複習一下網路作業系統相關的概念和內容。網路作業系統 network operating system nos 是使網路...

架構師之路 1分鐘系列彙總

本文將體系化總結之前傳送過的架構師之路,1分鐘系列彙總。一 分布式鎖 文章 一分鐘實現簡易分布式鎖 內容 二 連線池 文章 一分鐘實現簡易連線池 內容 三 兩階段提交 文章 一分鐘了解兩階段提交2pc 內容 四 單機 集群 熱備 磁碟陣列 文章 一分鐘了解單機 集群 熱備 磁碟陣列 內容 五 四層 ...

系統架構師 作業系統 檔案管理

作業系統對計算機的管理包括兩個方面 硬體資源和軟體資源。硬體資源的管理包括cpu管理 儲存器管理 裝置管理等,主要解決硬體資源的有效和合理利用問題。軟體資源包括各種系統程式 各種應用程式 各種使用者程式,也包括大量的文件材料 庫函式等。每一種軟體資源本身都是具有一定邏輯意義的相關資訊的集合,在作業系...