tags: 操做系統, title: 操做系統第七篇【設備管理】算法
計算機的I/O系統是主機和外設之間的數據傳送系統,目前主要有總線型結構和通道型結構兩種類型。編程
與計算機相鏈接的外部設備有字符設備和塊設備兩種類型。數組
如圖6-1所示爲總線型IO系統結構示意。安全
1 I/O設備的類型網絡
設備控制器是計算機中的一個實體,其主要職責是控制一個或多個I/O設備,以實現I/O設備和計算機之間的數據交換。它是CPU與I/O設備之間的接口,它接收從CPU發來的命令,並去控制I/O設備工做,以使處理機從繁雜的設備控制事務中解脫出來。性能
設備控制器是一個可編址的設備,當它僅控制一個設備時,它只有一個惟一的設備地址;若控制可鏈接多個設備時,則應含有多個設備地址,並使每個設備地址對應一個設備。測試
設備控制器的複雜性因不一樣設備而異,相差甚大,因而可把設備控制器分紅兩類:操作系統
設備控制器的基本功能:計算機網絡
設備控制器的組成:指針
設備控制器減小了CPU對I/O的操做,可是當I/O設備較多時,設備控制器的數量也會增長,因而又退化到了相似早期設備較少時的情形,於是CPU的負擔仍然很重。
改進措施:
通道的任務:**由CPU處理的I/O任務轉由通道承擔,從而把CPU從繁雜的I/O任務中解脫出來。 ** 具體地,使數據的傳送獨立於CPU,使有關對I/O操做的組織、管理及其結束處理儘可能獨立,以保證CPU有更多的時間去進行數據處理,從而創建獨立的I/O操做。 數據傳輸的過程:CPU↔內存↔主通道↔子通道↔設備控制器↔設備
通道類型 :
在早期的計算機系統中,因爲無中斷機構,處理機對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方式方式中,CPU主動挨個端口輪詢是否有數據要處理,極大地浪費了CPU資源,從而使得整個系統的效率底下 中斷驅動I/O控制方式將CPU主動輪詢的方式作出了改進,CPU處於被動的位置,等到有設備請求進行輸入數據的時候,纔去響應,從而提升了CPU的利用率。 也就是說,引入中斷以後,每當設備完成I/O操做,便以中斷請求方式通知CPU,而後進行相應處理。但因爲CPU直接控制輸入輸出操做,每傳達一個單位信息。 相對程序IO方式,CPU資源得以有效地利用。可是每傳達一個單位信息都要發生一次中斷,仍然消耗大量CPU時間,所以速度較低。
DMA控制器(DMAC)是一種在系統內部轉移數據的獨特外設 能夠將其視爲一種可以經過一組專用總線將內部和外部存儲器與每一個具備DMA能力的外設鏈接起來的控制器,如圖6-8所示。 它之因此屬於外設,是由於它是在處理器的編程控制下來執行傳輸的。 值得注意的是,一般只有數據流量較大(KBps或者更高)的外設才須要支持DMA能力,這些應用方面典型的例子包括視頻、音頻和網絡接口
DMA方式,在必定程度上提高了IO速度,把CPU從低效地IO操做中解脫出來,提升了CPU的利用率,從而提升了整個系統的效率。
特色:
2 DMA控制器的組成 :
在設備管理部分,存在的主要矛盾是高速的CPU和低速I/O設備之間速度不匹配的問題。 對於這種問題,處理的方法通常是增長緩衝。 相似的,在計算機網絡通訊中,高速發送設備和低速接收設備之間爲了防止數據的丟失,也會增長緩衝區。
雙緩衝,也成緩衝對換。在IO設備和CPU之間設置了兩個緩衝區,使得它們可以交替訪問不一樣的緩衝區,從而提升數據處理的效率。在輸入與輸出的速度基本匹配時可獲得較好的效果,不然,因爲緩衝區太少,不能緩解IO設備和CPU之間的速度壓力。雙緩衝退化爲單緩衝。 存在問題:當速度不匹配時效果退化到單緩衝機制的程度。 解決辦法:增長緩衝個數,按照循環鏈的方式組織緩衝區
(3)進程同步
在循環緩衝機制中,若是輸入數據和讀取數據的速度至關,則運行平穩;若是速度差別較大,則最出現全部緩衝區均爲空而無數據可提取或者全部緩衝區均爲滿而沒法輸入數據的狀況。所以,須要控制數據提取進程和數據輸入進程的同步,防止出現與時間相關的錯誤。與時間相關的錯誤見第2章2.3.1節P28。
從管理的層次看,設備的分配對象有兩級,分別是做業級分配和進程級分配。
對做業級的分配工做,是在做業提交以後,開始執行前進行的。此時,系統按用戶對設備的請求,將該做業所須要的有關設備及相關的通道和設備控制器資源,所有一次性的分給做業,直到做業用完自動釋放歸還給系統爲止。這種分配方式屬於靜態分配。
進程級的分配,通常由在CPU上運行的進程,根據任務須要,經過系統功能調用提出I/O請求,設備分配程序按必定的策略將可用的設備分配給有I/O請求的進程。同時,還分配與設備相關的通道和設備控制器,以確保在CPU與外設之間造成一條有效的數據通路。因爲這種分配是在執行中動態完成的,設備用完後又必須當即釋放,因此,屬於動態分配。
設備分配是對進程使用外設過程的管理
系統中的每臺設備都有一張設備控制表(DCT)。在DCT中充分體現出了設備的類型、標識符、狀態(忙/閒)、重複執行次數、設備號以及與該設備相連的設備控制器的地址和等待使用該設備的進程隊列。
系統爲每一個控制器配置一張用於記錄本控制器狀況的表,稱爲控制器控制表(COCT)。 系統爲每一個通道都配置一張通道控制表,通道控制表(CHCT)。
系統設備表:
設備分配的總原則:合理使用外設(公平和避免死鎖),提升設備使用率。
(1)先來先服務FCFS
(2)優先級高者優先
3 設備分配的安全性
【建議】在設備分配算法中增長安全性檢查。好比銀行家算法。 【分析】不安全分配方式可能形成分配不安全是由於有知足死鎖成立的條件,即存在請求與保持。也能夠認爲該分配方式採用的是鴕鳥算法。若是出現死鎖是小几率事件,那麼用諸如銀行家算法之類的死鎖避免算法,儘管可以防止死鎖的發生,可是從性價比的角度考慮是得不償失。
絕對號(或物理設備名):
相對號(或稱邏輯設備名):
有了設備的絕對號和相對號後,用戶編制程序使用的設備與實際使用的設備無關,這就是設備的獨立性。
(2)設備獨立性優勢
將一臺物理的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磁盤的類型
磁盤的物理構造決定了一次磁盤的I/O操做。物理記錄的位置必須由柱面號,磁頭號(盤面號)和扇區號三個參數共同肯定。如何肯定這三個參數是磁盤訪問成功的關鍵。
先進先出(FCFS)算法
優先級算法
後進先出(LIFO算法)
短查找時間優先(SSTF算法)
掃描(SCAN)算法
循環掃描(C-SCAN)算法
N步掃描算法
雙隊列掃描(FSCAN)算法
若是您以爲這篇文章幫助到了您,能夠給做者一點鼓勵