操做系統第七篇【設備管理】


tags: 操做系統, title: 操做系統第七篇【設備管理】算法


設備管理概述

  • 計算機系統的一個重要組成部分是I/O系統,在該系統中包括用於實現信息輸入、輸出和存儲功能的設備和相應的設備控制器,在有些大型機中,還有I/O通道或I/O處理機。
  • I/O設備是計算機系統中重要的資源,而且品種繁多,功能各異,所以設備管理是操做系統中最繁雜並且硬件緊密相關的部分。
  • 設備管理的對象是I/O設備,設備控制器和I/O通道。
  • 設備管理的基本任務是完成用戶提出的I/O請求,提升I/O速度,改善I/O設備的利用率。
  • 設備管理的功能包括緩衝區管理、設備分配、設備處理、虛擬設備以及實現設備獨立性等。

IO系統

計算機的I/O系統是主機和外設之間的數據傳送系統,目前主要有總線型結構和通道型結構兩種類型編程

與計算機相鏈接的外部設備有字符設備塊設備兩種類型。數組

  • 前者一次只能傳送一個字符,傳送速度比較低;
  • 後者一次能夠傳送一個字符塊,傳送速度快,效率高

如圖6-1所示爲總線型IO系統結構示意。安全

1 I/O設備的類型網絡

    1. 按傳輸速率分類
    1. 按信息交換的單位分類
    1. 按設備的共享屬性分類

設備控制器

設備控制器是計算機中的一個實體,其主要職責是控制一個或多個I/O設備,以實現I/O設備和計算機之間的數據交換。它是CPU與I/O設備之間的接口,它接收從CPU發來的命令,並去控制I/O設備工做,以使處理機從繁雜的設備控制事務中解脫出來。性能

設備控制器是一個可編址的設備,當它僅控制一個設備時,它只有一個惟一的設備地址;若控制可鏈接多個設備時,則應含有多個設備地址,並使每個設備地址對應一個設備。測試

設備控制器的複雜性因不一樣設備而異,相差甚大,因而可把設備控制器分紅兩類:操作系統

  • 一類是用於控制字符設備的控制器
  • 另外一類是用於控制塊設備的控制器

設備控制器的基本功能:計算機網絡

  • (1)接收和識別命令
  • (2)數據交換
  • (3)標識和報告設備的狀態
  • (4)地址識別
  • (5)數據緩衝
  • (6)差錯控制

設備控制器的組成:指針

  • (1)設備控制器與處理機的接口
  • (2)設備控制器與設備的接口
  • (3)I/O邏輯

通道

設備控制器減小了CPU對I/O的操做,可是當I/O設備較多時,設備控制器的數量也會增長,因而又退化到了相似早期設備較少時的情形,於是CPU的負擔仍然很重。

改進措施:

  • 爲了實現速度匹配,並使CPU與I/O操做盡量地並行工做,以提升CPU的利用率,IBM公司提出了「通道」的概念。 -** 通道是一種經過執行通道程序管理I/O操做的控制器,它使CPU與I/O操做達到更高的並行度**。
  • 在採用通道的系統中,除了通常的機器指令系統外,系統還設置了供通道專用的一組通道指令,用通道指令編製成通道程序。

通道的任務:**由CPU處理的I/O任務轉由通道承擔,從而把CPU從繁雜的I/O任務中解脫出來。 ** 具體地,使數據的傳送獨立於CPU,使有關對I/O操做的組織、管理及其結束處理儘可能獨立,以保證CPU有更多的時間去進行數據處理,從而創建獨立的I/O操做。 數據傳輸的過程:CPU↔內存↔主通道↔子通道↔設備控制器↔設備

通道類型 :

  • (1)字節多路通道
    • 字節多路通道能夠鏈接多臺慢速I/O設備,以交叉方式傳送數據,即各設備輪流使用通道與主存進行數據傳送,且每次只傳送一個字節。由於每次數據傳送僅佔用了不一樣的設備各自分得的很短的時間片,因此大大提升了通道的利用率。
    • 子通道採用時間片輪轉法調度,低速
  • (2)數組選擇通道
    • 數組選擇通道能夠鏈接多臺快速I/O設備,但每次只能從中選擇一臺設備執行通道程序,進行主存與該設備之間的數據傳送。
    • 當數據傳送完後,才能選擇另外一臺設備。在這種工做方式中,數據傳送以成組方式進行,傳送速率很高,多用於鏈接快速I/O設備。
    • 但因鏈接在選擇通道上的多臺設備,只能依次使用通道與主存傳送數據,故設備之間不能並行工做,且整個通道的利用率不高
  • **(3)數組多路通道 **
    • 數組多路通道綜合了選擇通道和字節多路通道的優勢,它有多個子通道。結構上採用字節多路通道方式,能夠像字節多路通道那樣,執行多路通道程序,使全部子通道分時共享總通道;傳輸方式採用數組方式,能夠像選擇通道那樣進行成組數據的傳送,於是高速,利用率高。

控制方式

在早期的計算機系統中,因爲無中斷機構,處理機對I/O設備的控制,採起程序I/O方式(Programmed I/O方式)

在程序I/O方式中,因爲CPU的高速性和I/O設備的低速性,導致CPU 的絕大部分時間都處於等待I/O設備完成數據I/O的循環測試中,形成對CPU的極大浪費。 這種輪詢的方式中,由於在CPU中無中斷機構,使 I/O設備沒法向CPU報告它已完成了一個字符的輸入操做,因此須要CPU不斷地測試I/O設備的狀態。效率很是低,一次可能讀取不到一個字節,如圖6-7所示。

中斷驅動I/O控制方式

程序I/O方式方式中,CPU主動挨個端口輪詢是否有數據要處理,極大地浪費了CPU資源,從而使得整個系統的效率底下 中斷驅動I/O控制方式將CPU主動輪詢的方式作出了改進,CPU處於被動的位置,等到有設備請求進行輸入數據的時候,纔去響應,從而提升了CPU的利用率。 也就是說,引入中斷以後,每當設備完成I/O操做,便以中斷請求方式通知CPU,而後進行相應處理。但因爲CPU直接控制輸入輸出操做,每傳達一個單位信息。 相對程序IO方式,CPU資源得以有效地利用。可是每傳達一個單位信息都要發生一次中斷,仍然消耗大量CPU時間,所以速度較低。

直接存儲器訪問DMA控制方式

DMA控制器(DMAC)是一種在系統內部轉移數據的獨特外設 能夠將其視爲一種可以經過一組專用總線將內部和外部存儲器與每一個具備DMA能力的外設鏈接起來的控制器,如圖6-8所示。 它之因此屬於外設,是由於它是在處理器的編程控制下來執行傳輸的。 值得注意的是,一般只有數據流量較大(KBps或者更高)的外設才須要支持DMA能力,這些應用方面典型的例子包括視頻、音頻和網絡接口

DMA方式,在必定程度上提高了IO速度,把CPU從低效地IO操做中解脫出來,提升了CPU的利用率,從而提升了整個系統的效率。

特色:

  • 1)數據傳送的單位:數據塊
  • 2)數據傳輸的方向:設備(控制器)←→內存

2 DMA控制器的組成 :

  • DMA控制器由命令/狀態寄存器CR、內存地址寄存器MAR、數據寄存器DR和數據計數器DC組成。

緩衝管理

在設備管理部分,存在的主要矛盾是高速的CPU和低速I/O設備之間速度不匹配的問題。 對於這種問題,處理的方法通常是增長緩衝。 相似的,在計算機網絡通訊中,高速發送設備和低速接收設備之間爲了防止數據的丟失,也會增長緩衝區

  • 緩和CPU和I/O設備速度不匹配的矛盾;
  • 減小對CPU的中斷頻率,放寬對中斷響應時間的限制;
  • 提升CPU和I/O設備之間的並行性。

單緩衝

雙緩衝

雙緩衝,也成緩衝對換。在IO設備和CPU之間設置了兩個緩衝區,使得它們可以交替訪問不一樣的緩衝區,從而提升數據處理的效率。在輸入與輸出的速度基本匹配時可獲得較好的效果,不然,因爲緩衝區太少,不能緩解IO設備和CPU之間的速度壓力。雙緩衝退化爲單緩衝。 存在問題:當速度不匹配時效果退化到單緩衝機制的程度。 解決辦法:增長緩衝個數,按照循環鏈的方式組織緩衝區

(3)進程同步

在循環緩衝機制中,若是輸入數據和讀取數據的速度至關,則運行平穩;若是速度差別較大,則最出現全部緩衝區均爲空而無數據可提取或者全部緩衝區均爲滿而沒法輸入數據的狀況。所以,須要控制數據提取進程和數據輸入進程的同步,防止出現與時間相關的錯誤。與時間相關的錯誤見第2章2.3.1節P28。

  1. Nexti指針追上Nextg指針 輸入速度>計算速度,系統受計算限制。
  2. Nextg指針追上Nexti指針 輸入速度<計算速度,系統受I/O限制。

設備分配

從管理的層次看,設備的分配對象有兩級,分別是做業級分配和進程級分配。

對做業級的分配工做,是在做業提交以後,開始執行前進行的。此時,系統按用戶對設備的請求,將該做業所須要的有關設備及相關的通道和設備控制器資源,所有一次性的分給做業,直到做業用完自動釋放歸還給系統爲止。這種分配方式屬於靜態分配

進程級的分配,通常由在CPU上運行的進程,根據任務須要,經過系統功能調用提出I/O請求,設備分配程序按必定的策略將可用的設備分配給有I/O請求的進程。同時,還分配與設備相關的通道和設備控制器,以確保在CPU與外設之間造成一條有效的數據通路。因爲這種分配是在執行中動態完成的,設備用完後又必須當即釋放,因此,屬於動態分配。

設備分配是對進程使用外設過程的管理

  • 在進程間切換外設
  • 經過一個虛擬設備把外設與應用進程隔開,只由虛擬設備來使用設備

設備控制表

系統中的每臺設備都有一張設備控制表(DCT)。在DCT中充分體現出了設備的類型、標識符、狀態(忙/閒)、重複執行次數、設備號以及與該設備相連的設備控制器的地址和等待使用該設備的進程隊列。

系統爲每一個控制器配置一張用於記錄本控制器狀況的表,稱爲控制器控制表(COCT)。 系統爲每一個通道都配置一張通道控制表,通道控制表(CHCT)。

系統設備表:

  • 在系統設備表(System Device Table, SDT)表中,每一個接入系統中的外圍設備都佔有一個表目項,記錄了該設備的名稱、標識及設備控制表DTC的入口地址等相關的信息。
  • SDT表在整個系統中只有一張,全面反映了系統中的外設資源的類型、數量、佔用狀況等,

設備分配的總原則:合理使用外設(公平和避免死鎖),提升設備使用率。

設備分配算法

(1)先來先服務FCFS

  • 當若干進程申請某一設備的請求得不到知足時,必須排入等隊列中。這些進程因爲申請的有前後次序,故排入等待隊列的次序也是不相同的。當該設備被歸還給系統後,就能夠從新分配,此時,系統按進程在等待隊列中排隊的前後次序,將設備分給最先排入隊列的那個進程。

(2)優先級高者優先

  • 在此分配對策中,進程的優先級起了決定做用。當從等待某設備的進程隊列中挑選下一個可佔用設備的進程時,按進程所具備的優先級處理。高優先級的進程先分配,同優先級的,先申請先分配

3 設備分配的安全性

  • (1)安全分配方式
  • 進程發出I/O請求→阻塞→等待被喚醒
  • (2)不安全分配方式
  • 進程發出I/O請求→繼續執行→根據須要繼續發出I/O請求

【建議】在設備分配算法中增長安全性檢查。好比銀行家算法。 【分析】不安全分配方式可能形成分配不安全是由於有知足死鎖成立的條件,即存在請求與保持。也能夠認爲該分配方式採用的是鴕鳥算法。若是出現死鎖是小几率事件,那麼用諸如銀行家算法之類的死鎖避免算法,儘管可以防止死鎖的發生,可是從性價比的角度考慮是得不償失。

設備獨立性

絕對號(或物理設備名):

  • 爲了便於對這些外設進行管理,系統對每臺進入計算機系統中的設備都給定一個對應的編號,做爲調用時識別和區分設備用。這種編號無任何重複,通常被稱爲設備的絕對號(或物理設備名)。

相對號(或稱邏輯設備名):

  • 爲了方便用戶,也爲了提升外設利用率,在計算機中規定用戶申請外設時,只須要向系統說明所需用的某類設備,至於真正在實際中使用哪臺設備,由系統根據這類設備的應用狀況做出分配**。即便用戶所需多臺一樣的設備,系統也容許用戶按本身的使用要求提出編號,這種由用戶申請設備時所用的編號稱爲相對號(或稱邏輯設備名)**、

有了設備的絕對號和相對號後,用戶編制程序使用的設備與實際使用的設備無關,這就是設備的獨立性。

(2)設備獨立性優勢

    1. 設備分配時的靈活性
  • 2)易於實現I/O重定向。

SPOOLing技術

將一臺物理的IO設備虛擬爲多臺的邏輯IO設置,這樣多個用戶就能夠共享一臺物理IO設置了。

虛擬設備技術假脫機操做(Simultaneous Peripheral Operations On-Line,SPOOLing),利用專門的外圍控制機,將低速I/O設備上的數據傳送到高速磁盤上;或者相反。 利用假脫機技術,可把獨享設備轉變成具備共享特徵的虛擬設備,從而提升設備利用率。

因爲咱們的多道程序技術引入後,咱們的利用專門的外圍控制機就可使用程序來進行模擬了

1)高速虛擬I/O操做:

應用程序的虛擬I/O比實際I/O速度提升,縮短應用程序的執行時間(儘快完成計算,並釋放佔用的計算機資源)。 另外一方面,程序的虛擬I/O操做時間和實際I/O操做時間分離開來。

2)實現對獨享設備的共享: 由SPOOLing程序提供虛擬設備,能夠對獨享設備依次共享使用。

磁盤存儲器管理

CPU和內存的訪問速度比磁盤要快若干個數量級,磁盤系統的性能對整個系統的性能有重要影響,磁盤設備管理的目標就是提升磁盤系統的性能。

溫徹斯特硬盤

1973年,IBM研製成功了一種新型的硬盤IBM3340。IBM3340擁有兩個30MB的存儲單元,而當時一種頗有名的「溫徹斯特來複槍」的口徑和裝藥也剛好包含了兩個數字「30」;因而這種硬盤的內部代號就被定爲「溫徹斯特」。溫徹斯特硬盤擁有幾個同軸的金屬盤片,盤片上塗着磁性材料。它們和能夠移動的磁頭共同密封在一個盒子裏面,磁頭能從旋轉的盤片上讀出磁信號的變化。溫徹斯特硬盤的參數包括磁頭數(heads)、柱面數( tracks)、扇區數和字節數。各個盤面上的同一磁道組成一個柱面。每一個磁道有30個扇區。每一個扇區存儲600個字節,其中512個字節存儲數據,其他字節存儲控制信息。

2磁盤的類型

    1. 固定頭磁盤:剛性磁臂、使用於大容量磁盤。
    1. 移動頭磁盤:移動磁臂、使用於中小型磁盤設備

磁盤的物理構造決定了一次磁盤的I/O操做。物理記錄的位置必須由柱面號,磁頭號(盤面號)和扇區號三個參數共同肯定。如何肯定這三個參數是磁盤訪問成功的關鍵。

  • 1柱面定位時間
  • 2旋轉延遲時間
  • 3數據傳送時間

磁盤I/O調度策略

先進先出(FCFS)算法

  • 磁盤I/O執行順序爲磁盤I/O請求的前後順序。該算法的特色是公平性;在磁盤I/O負載較輕且每次讀寫多個連續扇區時,性能較好。

優先級算法

  • 依據進程優先級來調整磁盤I/O請求的執行順序。該算法反映進程在系統的優先級特徵,目標是系統目標的實現,而不是改進磁盤I/O性能。

後進先出(LIFO算法)

  • 後產生的磁盤I/O請求,先執行。該算法是基於事務系統中順序文件中磁盤I/O的局部性特徵,相鄰訪問的位置也相鄰。它的問題在於系統負載重時,可能有進程的磁盤I/O永遠不能執行,處於飢餓狀態。

短查找時間優先(SSTF算法)

  • 考慮磁盤I/O請求隊列中各請求的磁頭定位位置,選擇從當前磁頭位置出發,移動最少的磁盤I/O請求。
  • 該算法的目標是使每次磁頭移動時間最少。它不必定是最短平均柱面定位時間,但比FIFO算法有更好的性能。可能會有進程處於飢餓狀態。

掃描(SCAN)算法

  • 選擇在磁頭前進方向上從當前位置移動最少的磁盤I/O請求執行,沒有前進方向上的請求時才改變方向。該算法是對SSTF算法的改進,磁盤I/O較好,且沒有進程會餓死。

循環掃描(C-SCAN)算法

  • 在一個方向上使用掃描算法,當到達邊沿時直接移動到另外一邊沿的第一個位置並按原訪問方向繼續訪問。該算法可改進掃描算法對中間磁道的偏好。實驗代表,該算法在中負載或重負載時,磁盤I/O性能比掃描算法好。

N步掃描算法

  • 把磁盤I/O請求隊列分紅長度爲N的段,每次使用掃描算法處理這N個請求。當N=1時,該算法退化爲FIFO算法。
  • 該算法的目標是改進前幾種算法可能在多磁頭系統中出現磁頭靜止在一個磁道上,致使其餘進程沒法及時進行磁盤I/O。

雙隊列掃描(FSCAN)算法

  • 把磁盤I/O請求分紅兩個隊列,交替使用掃描算法處理一個隊列,新生成的磁盤I/O請求放入另外一隊列中
  • 該算法的目標與N步掃描算法一致。

若是您以爲這篇文章幫助到了您,能夠給做者一點鼓勵

相關文章
相關標籤/搜索