【操作系统总结】设备管理
管理所有外圍設備,包括完成用戶IO請求,為用戶進程分配IO設備,提高IO設備利用率,提高IO速度,方便IO使用
1. 什么是外部設備:
有一類設備是作為計算機系統與外界交互的工具使用的,它負責計算機與外部的輸入輸出(I/O工作)。我們稱這類設備為外部設備,簡稱外設。
2. 設備管理的目標:提高設備的利用率
3. 什么是I/O系統:計算機中負責管理I/O的機構(是硬件和軟件的組合)稱為I/O系統
4. I/O系統的結構:???
1)單總線結構
2)多總線結構
3)具有通道系統的I/O系統
5. 設備控制器:設備控制器處于CPU與I/O之間,接收來自CPU的命令,并控制I/O設備工作。設備控制器應具備以下功能:①接收和識別來自CPU的各種指令;②實現CPU與設備控制器、設備控制器與設備之間的數據交換;③記錄設備的狀態供CPU查詢;④識別所控制的每個設備的地址。
大多數設備控制器由設備控制器與處理器的接口、設備控制器與設備的接口及I/O邏輯3部分組成,如下圖所示:
6. I/O系統的控制方式:
(1)程序控制I/O(輪詢):
由于CPU速度遠遠快于I/O設備,因此CPU需要不斷地測試I/O設備,這種控制方式又稱為輪詢或忙等。以數據輸入為例,當用戶進程需要輸入數據時,由CPU向設備控制器發出一條I/O指令啟動設備進行輸入。當設備輸入數據期間,處理器通過循環執行測試指令不斷地檢測I/O設備狀態寄存器的值,當狀態寄存器的值顯示設備輸入完成時,處理器將寄存器中的數據讀取出來并送入內存指定單元,然后再啟動設備輸出并等待輸出操作完成。
- 優點:簡單
- 缺點:CPU利用率低。CPU與外設串行工作,CPU必須等待外設處理完數據才能繼續執行,在此期間CPU一直查詢外設是否準備好,直到外設準備好。由于CPU速度遠遠快于I/O設備,致使絕大部分時間都在測試I/O設備是否已經完成數據傳輸,從而造成CPU的極大浪費。
(2)中斷驅動I/O(中斷):
以數據輸入為例,當用戶進程需要輸入數據時,由處理器向設備控制器發出一條I/O指令啟動設備進行輸入。在輸入數據的同時,CPU可以做其他工作。當輸入完成時,設備管理器向CPU發出一個中斷信號,CPU接收到中斷信號以后,轉去執行設備中斷處理程序。設備中斷處理程序將輸入數據寄存器中的數據傳送到內存的指定單元中,供要求輸入的進程使用,然后再啟動設備去讀下一個數據。
- 優點:有了中斷硬件的支持后,CPU與I/O設備之間可以并行工作,CPU只需要收到中斷后處理即可,大大提高了CPU利用率。
- 缺點:數據仍然需要通過CPU進行傳輸,由于CPU每次處理的數據量較小,因此這種方式只適合數據傳輸率低的設備。
I/O完成時發出的中斷處理程序的處理過程是什么?
- 1、喚醒被阻塞的進程;
- 2、保護被中斷的進程的CPU環境;
- 3、轉入設備處理程序;
- 4、中斷處理,執行中斷處理程序;
- 5、恢復被中斷進程的現場。
(3)直接存儲訪問(DMA)
- DMA控制方式的思想是在外設和內存之間開辟直接的數據交換通路。在DMA控制方式中,設備控制器具有更強的功能,在其控制下,設備和內存之間可以成批地進行數據交換,而不用CPU干預。這樣既減輕了CPU的負擔,也是I/O數據傳輸速度大大提高。這種方式一般用于塊設備的數據傳輸。
- 以數據輸入為例,當用戶進程需要輸入數據時,CPU將準備存放數據的內存起始地址以及要傳送的字節數分別送入DMA控制器中的內存地址寄存器和傳送字節計數器中,并啟動設備開始進行輸入。在輸入數據的同時,CPU可以去做其他事情,輸入設備不斷地挪用CPU工作周期,將數據寄存器中的數據源源不斷地寫入內存,直到要求傳送的數據全部傳輸完畢。DMA控制器在傳輸完畢時向CPU發送一個中斷信號,CPU收到中斷信號后轉中斷處理程序,中斷結束后返回被中斷程序。
- DMA控制方式的特點為:數據傳輸的基本單位是數據塊,而且數據是單向傳輸,從設備到內存或者相反。優點:設備和CPU可以并行工作,同時設備與內存的數據交換速度更快,并且不需要CPU干預。
- 優點:解決了I/O操作的獨立性和各部件工作的并行性。不僅能實現CPU與通道的并行操作,而且通道與通道之間也能實現并行操作,各個通道上的外設也能實現并行操作,從而提高了整個系統效率。
- 缺點:需要更多硬件(通道處理器),成本較高,常用于大型數據交互的場合。
- DMA控制方式與中斷控制方式的主要區別是:
- (1)中斷控制方式在每個數據傳送完畢后中斷CPU,而DMA控制方式則是在所有要求傳送的一批數據傳送完畢后中斷CPU;
- (2)中斷控制方式的數據傳送是在中斷處理時由CPU控制完成的,而DMA控制方式則是在DMA控制器的控制下完成的。
(4)通道控制方式I/O
- 與DMA類似,也是一種以內存為中心,實現設備與內存直接數據交換的控制方式。與DMA相比,通道需要的CPU干預更少,即把對一個數據塊的讀寫為單位的干預減少為對一組數據塊讀寫及有關的控制和管理為單位的干預,而且可以做到一個通道控制多臺設備。
- 通道本質上是一個簡單的處理器,它獨立于CPU,有運算和邏輯,有自己的指令系統,也在程序控制下工作,專門負責輸入、輸出控制,具有執行I/O指令的能力,并通過執行通道I/O程序來控制I/O操作。通道的指令系統比較簡單,一般只有數據傳送指令、設備控制指令等。
- 在通道控制方式中,CPU只需要發出啟動指令,指出要求通道執行的操作和使用的I/O設備,該指令就可以啟動通道并使該通道從內存中調出相應的通道程序執行。以數據輸入為例,當用戶進程需要輸入數據時,CPU發出啟動指令指明要執行的I/O操作、所使用的設備和通道。當對應通道接收到CPU發來的啟動指令后,把存放在內存中的通道程序讀出,并執行通道程序,控制設備將數據傳送到內存中指定的區域。在設備進行輸入的同時,CPU可以去做其他事情。當數據傳送結束后時,設備控制器向CPU發送一個中斷請求,CPU收到中斷信號后轉中斷處理程序,中斷結束后返回被中斷程序。
- 通道控制方式與DMA控制方式的區別:首先,DMA控制方式中需要CPU來控制所傳輸數據塊的大小,傳輸的內存,而通道控制方式中這些信息都是由通道來控制管理的。其次,一個DMA控制器對應一臺設備與內存傳遞數據,而一個通道可以控制多臺設備與內存的數據交換。
- I/O通道與一般處理器的區別:I/O通道的指令類型單一,其所能執行的命令主要局限于與I/O操作有關的指令;通道沒有自己的內存,通道所執行的通道程序放在主機的內存中,也就是說通道是與CPU共享內存的。
- 通道分為:
- 字節多路通道:可以獲得較好的通道利用率,適合低速設備,傳輸單位為字節。
- 數組選擇通道:可以獲得較好的數據傳輸率,適合高速設備,一次性傳輸一組數據。
- 數組多路通道:既具有很高的數據傳輸率,有能獲得令人滿意的通道利用率。
7. 緩沖技術:緩沖區一種交換數據的區域。緩沖區的引入是為了緩和CPU與設備速度不匹配的矛盾,提高了設備和CPU的并行操作程度,提高了系統吞吐量和設備利用率。
8.緩沖分類:
- 單緩沖:當用戶進程發出一個I/O請求時,操作系統便在內存中為它分配一個緩沖區。設備與處理器對緩沖區的操作是串行的。
- 雙緩沖:可以提高處理器與設備的并行操作程度。當用戶進程發出一個I/O請求時,操作系統便在內存中為它分配兩個個緩沖區。數據先放入第一個緩沖區進行處理,再來的數據放入第二個緩沖區,當第一個緩沖區中的數據處理完后,若第二個緩沖區已經裝滿,則處理器又可以處理第二個緩沖區的數據,而輸入設備又可以裝填第一個緩沖區。
- 循環緩沖:為了解決設備輸入/輸出速度與處理器處理數據速度不匹配的情況。循環緩沖包含多個大小相等的緩沖區,每個緩沖區中有一個鏈接指針指向下一個緩沖區,最后一個緩沖區的指針指向第一個緩沖區,這樣多個緩沖區構成了一個環形。循環緩沖用于輸入輸出時,還需要有兩個指針in和out。對于輸入而言,首先要從設備接收數據到緩沖區中,in指針指向可以輸入數據的第一個空緩沖區;當用戶進程需要數據時,從循環緩沖中取出一個裝滿數據的緩沖區,提取數據,out指針指向可以提取數據的第一個滿緩沖區,顯然,對輸出而言正好相反,進程將處理過的需要輸出的數據送到空緩沖區中,而當設備空閑時,從滿緩沖區中取出數據由設備輸出。
9. 高速緩存與緩存區的區別:
- 兩者存放的數據不同。高速緩存存放的是低速設備上的某些數據的備份;而緩沖區中放的則是低速設備傳遞給高速設備的數據,在低速設備中不一定有備份。
- 兩者的目的不同。引入高速緩存的目的是為了存放低速設備上經常要被訪問到的數據的備份;而緩沖區是為了緩和高速設備和低速設備間速度不匹配的矛盾。高速設備每次都會通過緩沖區與低速設備通信,不會直接訪問低速設備。
10.?SPOOLing技術(假脫機技術)
-
通過共享設備來虛擬獨占設備,將獨占設備改造成共享設備,從而提高了設備利用率和系統的效率,該技術為假脫機(SPOOLing)技術。是低速輸入輸出設備與主機交換的一種技術。
-
其核心思想是以聯機的方式得到脫機的效果,低速設備經通道和設在主機內存的緩沖存儲器與高速設備相連,該高速設備通常是輔存。為了存放從低速設備上輸入的信息,在內存中形成緩沖區,在高速設備上形成輸入輸出井,傳遞時信息從低速設備傳入緩沖區,再傳到高速設備的輸入井,再從高速設備的輸出井傳到緩沖區,再傳到低速設備。
- SPOOLing系統的組成
- 輸入輸出井;
- 輸入緩沖區和輸出緩沖區;
- 輸入進程和輸出進程;
- SPOOLing實例:將一臺獨享打印機改造成可供多個用戶共享打印是SPOOLing技術的典型應用,具體做法為:系統對于用戶的打印輸出,并不真正把打印機分配給該用戶進程,而是先在輸出井中申請一個空閑盤塊區,并將要打印的數據送入其中;然后為用戶申請并填寫請求打印表,將該表掛到請求打印隊列上。若打印機空閑,輸出程序從請求打印隊首取表,將要打印的數據從輸出井傳送到內存緩沖區,再進行打印,直到打印隊列為空。
- SPOOLing技術特點
- 提高了I/O速度;
- 設備并沒有分配給任何進程;
- 實現了虛擬設備功能;
- SPOOLing除了是一種速度匹配技術外,也是一種虛擬設備技術。
?
總結
以上是生活随笔為你收集整理的【操作系统总结】设备管理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Pytorch详细教程——10.Flat
- 下一篇: java信息管理系统总结_java实现科