第五章_設備管理_第1頁
第五章_設備管理_第2頁
第五章_設備管理_第3頁
第五章_設備管理_第4頁
第五章_設備管理_第5頁
已閱讀5頁,還剩72頁未讀, 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、操作系統 Operating System教學目的教學目的 &通過對本章地講解是學生理解并掌握設通過對本章地講解是學生理解并掌握設備管理的功能、備管理的功能、I/O控制方式、緩沖區控制方式、緩沖區管理、設備管理,以及磁盤存儲管理。管理、設備管理,以及磁盤存儲管理。 本章重點:本章重點:& 輸入輸出控制方式輸入輸出控制方式& 緩沖區的管理緩沖區的管理& 設備分配和設備處理設備分配和設備處理& 磁盤調度磁盤調度& 虛擬設備虛擬設備本章難點:本章難點: & 對通道的理解對通道的理解& Spooling技術。技術。第第5 5章章 設備管理

2、設備管理 5.1 I/O5.1 I/O系統系統5.2 I/O5.2 I/O控制方式控制方式5.3 5.3 緩沖管理緩沖管理5.4 5.4 設備分配設備分配5.5 I/O5.5 I/O軟件軟件5.1 I/O5.1 I/O系統系統1.1.基本概念基本概念&I/OI/O系統:系統:在操作系統中負責管理輸入輸出設備的部分在操作系統中負責管理輸入輸出設備的部分稱為稱為I/OI/O系統。系統。&I/OI/O系統的基本功能:系統的基本功能:是為數據傳輸選擇輸入輸出設備;是為數據傳輸選擇輸入輸出設備;在選定的輸入輸出設備和在選定的輸入輸出設備和CPUCPU(或主存)之間交換數據(或主存)之間交

3、換數據。&操作系統內核通過操作系統內核通過設備驅動程序設備驅動程序與外部設備進行交互。與外部設備進行交互。驅動程序是設備與內核其他部分之間的唯一接口。驅動程序是設備與內核其他部分之間的唯一接口。&文件系統是對設備操作的組織與抽象,而設備操作則文件系統是對設備操作的組織與抽象,而設備操作則是對文件操作的最終實現。是對文件操作的最終實現。 2.I/O2.I/O設備分類設備分類 按信息組織方式按信息組織方式字符設備(字符設備(character devicecharacter device) 塊設備(塊設備(block deviceblock device) 有結構,可尋址有結構,可

4、尋址 按設備使用的可共享性按設備使用的可共享性 獨占設備獨占設備 共享設備共享設備 虛擬設備虛擬設備 按設備的使用特性按設備的使用特性存儲設備存儲設備輸入輸入/ /輸出設備輸出設備 5.1.1 I/O 5.1.1 I/O體系結構體系結構 在計算機系統中,數據信息是通過數據通道在在計算機系統中,數據信息是通過數據通道在CPUCPU、RAM RAM 和和I/OI/O設備之間流動的。這些數據通道又稱設備之間流動的。這些數據通道又稱為總線。為總線。總線 數據總線:指用來并行傳送數據的一組線。數據總線:指用來并行傳送數據的一組線。 地址總線:指用來并行傳送地址的一組線。地址總線:指用來并行傳送地址的一組

5、線。 控制總線:指用來并行傳送控制信息的一組線??刂瓶偩€:指用來并行傳送控制信息的一組線。 1.總線I/OI/O總線是用來連接總線是用來連接CPUCPU和和I/OI/O設備的總線。每個設備的總線。每個I/OI/O設備都依設備都依次連接到次連接到I/OI/O總線上,總線上,這種連接使用了有這種連接使用了有3 3個元素的硬件構個元素的硬件構件層次:件層次:I/OI/O端口、端口、I/OI/O接口和設備控制器。接口和設備控制器。 5.1.1 I/O 5.1.1 I/O體系結構體系結構CPUCPUI/OI/O總線總線I/OI/O端口端口I/OI/O接口接口I/OI/O控制器控制器I/OI/O端口端口I

6、/OI/O設備設備圖圖5.1 PC5.1 PC的的I/OI/O體系結構體系結構2.I/O 總線 (1)I/O(1)I/O端口端口(I/O port),I/O port),即為連接到即為連接到I/OI/O總線上的設備的總線上的設備的I/OI/O地址地址。 例例IBM PC IBM PC 體系結構中的體系結構中的I/OI/O地址空間,一共有地址空間,一共有6553665536個個8 8位的位的I/OI/O端口。端口。CPUCPU在執行指令時,使用地址總線選擇所請在執行指令時,使用地址總線選擇所請求的求的I/OI/O端口,使用數據總線在端口,使用數據總線在CPUCPU寄存器和寄存器和I/OI/O端口

7、之間傳送端口之間傳送數據。數據。若若I/OI/O端口能被映射到內存物理地址空間,端口能被映射到內存物理地址空間,CPUCPU和和I/OI/O設設備之間的通信就可以通過使用對內存進行操作的匯編語言指備之間的通信就可以通過使用對內存進行操作的匯編語言指令(如,令(如,movmov、andand、oror等等)來實現。等等)來實現。現代的硬件設備傾向現代的硬件設備傾向于把于把I/OI/O端口映射到內存物理地址空間。端口映射到內存物理地址空間。 為了實現起來方便,為了實現起來方便,操作系統設計者把每個設備的操作系統設計者把每個設備的I/OI/O端口都組端口都組織成一組專用寄存器:織成一組專用寄存器:控

8、制寄存器、狀態寄存器、輸入寄存控制寄存器、狀態寄存器、輸入寄存器、輸出寄存器。器、輸出寄存器。 (2)I/O (2)I/O接口起翻譯器的作用接口起翻譯器的作用:把:把I/OI/O端口中的值轉換成端口中的值轉換成設備所需要的命令和數據;檢測設備狀態的變化,并對設設備所需要的命令和數據;檢測設備狀態的變化,并對設備狀態寄存器(某一備狀態寄存器(某一I/OI/O端口)進行相應地更新。端口)進行相應地更新。I/OI/O接口接口通過一條通過一條IRQIRQ線連接到可編程中斷控制器上,以使它代表相線連接到可編程中斷控制器上,以使它代表相應的設備發出中斷請求。有兩種類型的接口:專用應的設備發出中斷請求。有兩

9、種類型的接口:專用I/OI/O接口接口和通用和通用I/OI/O接口。接口。 專用專用I/OI/O接口接口: :專用于特定的硬件設備。有時專用專用于特定的硬件設備。有時專用I/OI/O接口與設備控制器處于同一塊卡中。接口與設備控制器處于同一塊卡中。 通用通用I/OI/O接口接口: :是用于連接外部設備的。并口可用于連是用于連接外部設備的。并口可用于連接打印機、可移動磁盤、掃描儀、備份設備、其他計算機接打印機、可移動磁盤、掃描儀、備份設備、其他計算機等等。等等。 (3)(3)設備控制器的主要作用:設備控制器的主要作用:對從對從I/OI/O接口接收到的高級命接口接收到的高級命令進行解釋,并通過向設備

10、發送適當的電信號序列強制設令進行解釋,并通過向設備發送適當的電信號序列強制設備執行特定的操作;對從設備接收到的電信號進行轉換和備執行特定的操作;對從設備接收到的電信號進行轉換和適當地解釋,并通過適當地解釋,并通過I/OI/O接口修改狀態寄存器的值。接口修改狀態寄存器的值。復雜的復雜的設備設備通常需要設備控制器來驅動,而通常需要設備控制器來驅動,而較簡單的設備較簡單的設備可以沒可以沒有設備控制器,如可編程中斷控制器、可編程間隔定時器。有設備控制器,如可編程中斷控制器、可編程間隔定時器。所有的所有的PC機都包含機都包含DMAC(Direct Memory Access Controller)輔助處

11、理器。)輔助處理器。DMA(直接內存訪問)作為一(直接內存訪問)作為一種輸入輸出方式,主要用來連接高速外圍設備,如磁盤、種輸入輸出方式,主要用來連接高速外圍設備,如磁盤、磁帶等,控制數據在磁帶等,控制數據在RAM和和I/O設備之間傳送。設備之間傳送。5.1.2 I/O5.1.2 I/O系統的功能系統的功能 &1.1.概述概述 在計算機系統中,在計算機系統中,I/OI/O設備是人機對話的界面和設備是人機對話的界面和接口接口,而計算機系統的,而計算機系統的I/OI/O設備種類繁多,千差萬別。設備種類繁多,千差萬別。另外,另外,CPUCPU性能高,而性能高,而I/OI/O設備性能低,屬于低速

12、設設備性能低,屬于低速設備,因此備,因此I/OI/O設備的性能常常成為系統性能的瓶頸。設備的性能常常成為系統性能的瓶頸。 用戶對用戶對I/OI/O設備的使用要求是方便、高效、安全設備的使用要求是方便、高效、安全和正確。和正確。I/OI/O系統的功能也就應該在計算機硬件結構系統的功能也就應該在計算機硬件結構提供的既定設備范圍及其連接模式下,完成用戶對提供的既定設備范圍及其連接模式下,完成用戶對I/OI/O設備的使用要求。設備的使用要求。& 2.I/O2.I/O系統的功能系統的功能(1)(1)方便性:方便性:為了讓用戶能方便使用為了讓用戶能方便使用I/OI/O設備,設備,提供簡便提供簡便易

13、用的對邏輯設備進行邏輯操作的抽象接口易用的對邏輯設備進行邏輯操作的抽象接口;實現實現抽象接口到物理接口的轉化,抽象接口到物理接口的轉化,即將高級邏輯操作轉即將高級邏輯操作轉化為低級物理操作?;癁榈图壩锢聿僮?。抽象接口抽象接口除了掩蔽硬件細節外還要掩蔽依賴于硬件的軟件除了掩蔽硬件細節外還要掩蔽依賴于硬件的軟件技術細節。技術細節。設備抽象接口設備抽象接口是由設備管理功能接口和文件系統功能接口是由設備管理功能接口和文件系統功能接口共同提供的,更準確地說,設備抽象接口包含在文共同提供的,更準確地說,設備抽象接口包含在文件系統統一接口中。件系統統一接口中。抽象接口使廣義的設備獨立性成為可能,抽象接口使廣

14、義的設備獨立性成為可能,向用戶展示一個大向用戶展示一個大大簡化了的計算環境觀點,同時,抽象接口也是提高效大簡化了的計算環境觀點,同時,抽象接口也是提高效率技術的前提。率技術的前提。廣義的廣義的I/OI/O設備獨立性設備獨立性是指整個設備管理功能的抽象接口是指整個設備管理功能的抽象接口,程序不關心物理設備的操作和組織細節,而只看到具有程序不關心物理設備的操作和組織細節,而只看到具有邏輯名稱和邏輯性質的邏輯設備和邏輯操作,不關心具邏輯名稱和邏輯性質的邏輯設備和邏輯操作,不關心具體體I/OI/O設備是哪一個具體設備或是哪一個文件,設備改設備是哪一個具體設備或是哪一個文件,設備改變而程序不變,不必修改

15、,也不必重新編譯。用戶不必變而程序不變,不必修改,也不必重新編譯。用戶不必關心設備的改變,這一事實所帶來的問題應該由操作系關心設備的改變,這一事實所帶來的問題應該由操作系統來管理。統來管理。所使用的設備的變化對程序是透明的。所使用的設備的變化對程序是透明的。塊設塊設備的設備獨立性是由文件系統的文件目錄概念提供的。備的設備獨立性是由文件系統的文件目錄概念提供的。(2)(2)效率:效率:非系統用戶關心其程序的運行效率,系統用戶關非系統用戶關心其程序的運行效率,系統用戶關心系統的利用率;非系統用戶不希望程序等待設備,系心系統的利用率;非系統用戶不希望程序等待設備,系統用戶不希望設備等待程序。統用戶不

16、希望設備等待程序。在現代操作系統中,在現代操作系統中,已引入了大量的技術以提高設備與已引入了大量的技術以提高設備與CPUCPU的的效率,例如中斷、緩沖、效率,例如中斷、緩沖、DMADMA、通道等。、通道等。因此,因此,操作系操作系統統設備管理的一個主要功能設備管理的一個主要功能是采用各種純軟件或與硬件是采用各種純軟件或與硬件配合的軟件技術來提高設備效率和與此相關的系統效率,配合的軟件技術來提高設備效率和與此相關的系統效率,提供物理提供物理I/O設備的共享并優化這些設備的使用,同時設備的共享并優化這些設備的使用,同時借助抽象接口使得這些優化技術得以在內部實施而對用借助抽象接口使得這些優化技術得以

17、在內部實施而對用戶透明。戶透明。(3)(3)保護保護: :用戶希望能安全正確地使用設備,即希望用戶希望能安全正確地使用設備,即希望由設備傳送或管理的數據應該是安全的,不被破由設備傳送或管理的數據應該是安全的,不被破壞和泄密。壞和泄密。 另外,對設備擁有所有權的用戶希望另外,對設備擁有所有權的用戶希望設備不能被破壞。設備不能被破壞。 系統如何阻止用戶訪問他們無權訪問的設備呢?系統如何阻止用戶訪問他們無權訪問的設備呢?微微機系統多半不設保護,任何進程能做它想做的任機系統多半不設保護,任何進程能做它想做的任何事情。在大多數主機系統中,用戶進程對何事情。在大多數主機系統中,用戶進程對I/OI/O設設備

18、的訪問完全被禁止。在備的訪問完全被禁止。在UNIXUNIX系統中,對應于系統中,對應于I/OI/O設備的特別文件受一般的設備的特別文件受一般的rwxrwx位保護。系統管理員位保護。系統管理員據此為每臺設備確定適當的授權。據此為每臺設備確定適當的授權。計算機系統對計算機系統對I/OI/O設備的設備的控制方式控制方式有:有:程序輪詢方式程序輪詢方式程序中斷方式程序中斷方式DMADMA(直接存儲器訪問)控制方式(直接存儲器訪問)控制方式通道控制方式。通道控制方式。 5.2 I/O5.2 I/O控制方式控制方式【輸入輸入/ /輸出控制輸出控制- -程序直接控制方式程序直接控制方式】&程序直接控

19、制方式程序直接控制方式是指由程序直接控制內存或是指由程序直接控制內存或CPUCPU和外圍設備和外圍設備之間進行信息傳送的方式。通常又稱為之間進行信息傳送的方式。通常又稱為“忙忙等等”方式或循方式或循環測試方式。環測試方式。&在數據傳送過程中,必不可少的一個硬件設備是在數據傳送過程中,必不可少的一個硬件設備是I/OI/O控制器,控制器,它是操作系統軟件和硬件設備之間的接口,它接收它是操作系統軟件和硬件設備之間的接口,它接收CPUCPU的命令,的命令,并控制并控制I/OI/O設備進行實際的操作。設備進行實際的操作。CPUCPU執行執行A A進程進程外設外設I/OI/O控制器控制器發命令發命

20、令傳數據傳數據圖5.2 程序直接控制方式程序直接控制方式下輸出數據時的工作過程。程序直接控制方式下輸出數據時的工作過程。& 把一個啟動位為把一個啟動位為“1”“1”的控制字寫入該設備的控制字寫入該設備的控制狀態寄存器。的控制狀態寄存器。& 將需輸出數據送到數據緩沖寄存器。將需輸出數據送到數據緩沖寄存器。&測試控制狀態寄存器中的測試控制狀態寄存器中的“完成位完成位”,若為,若為0 0,轉,轉 ,否則轉。,否則轉。& 輸出設備將數據緩沖寄存器中的數據取走輸出設備將數據緩沖寄存器中的數據取走進行實際的輸出。進行實際的輸出。程序直接控制方式優缺點程序直接控制方式優缺點

21、在程序在程序I/OI/O方式中,由于方式中,由于CPUCPU的高速性和的高速性和I/OI/O設備的設備的低速性,低速性, 致使致使CPUCPU的絕大部分時間都處于等待的絕大部分時間都處于等待I/OI/O設備完成數據設備完成數據I/OI/O的循環測試中,的循環測試中, 造成對造成對CPUCPU的極的極大浪費。大浪費。該方式優點:簡單,易于理解。該方式優點:簡單,易于理解。 圖5.3 程序I/O方式流程圖 【輸入輸入/ /輸出控制輸出控制- -中斷控制方式中斷控制方式】 &(1 1)進程需要數據時,將允許啟動和允許中斷的控制字)進程需要數據時,將允許啟動和允許中斷的控制字寫入設備控制狀態寄

22、存器中,啟動該設備進行輸入操作。寫入設備控制狀態寄存器中,啟動該設備進行輸入操作。&(2 2)該進程放棄處理機,等待輸入的完成。操作系統進)該進程放棄處理機,等待輸入的完成。操作系統進程調度程序調度其他就緒進程占用處理機。程調度程序調度其他就緒進程占用處理機。&(3 3)當輸入完成時,輸入設備通過中斷請求線向)當輸入完成時,輸入設備通過中斷請求線向CPUCPU發出發出中斷請求信號。中斷請求信號。CPUCPU在接收到中斷信號之后,轉向中斷處在接收到中斷信號之后,轉向中斷處理程序。理程序。&(4 4)中斷處理程序首先保護現場,然后把輸入緩沖寄存)中斷處理程序首先保護現場,然

23、后把輸入緩沖寄存器中的數據傳送到某一特定單元中去,同時將等待輸入完器中的數據傳送到某一特定單元中去,同時將等待輸入完成的那個進程喚醒,進入就緒狀態,最后恢復現場,并返成的那個進程喚醒,進入就緒狀態,最后恢復現場,并返回到被中斷的進程繼續執行。回到被中斷的進程繼續執行。&(5 5)在以后的某一時刻,操作系統進程調度程序選中提)在以后的某一時刻,操作系統進程調度程序選中提出的請求并得到獲取數據的進程,該進程從約定的內存特出的請求并得到獲取數據的進程,該進程從約定的內存特定單元中取出數據繼續工作。定單元中取出數據繼續工作。 在在I/OI/O設備輸入每個數據的過程中,由于無須設備輸入每個數據的

24、過程中,由于無須CPUCPU干預,干預,因而可使因而可使CPUCPU與與I/OI/O設備并行工作。設備并行工作。僅當輸完一個數據時,才僅當輸完一個數據時,才需需CPUCPU花費極短的時間去做些中斷處理?;ㄙM極短的時間去做些中斷處理??梢?,這樣可使可見,這樣可使CPUCPU和和I/OI/O設備都處于忙碌狀態,從而提高了整個系統的資源利用設備都處于忙碌狀態,從而提高了整個系統的資源利用率及吞吐量。率及吞吐量。例如,從終端輸入一個字符的時間約為例如,從終端輸入一個字符的時間約為100 ms100 ms, 而將字符送而將字符送入終端緩沖區的時間小于入終端緩沖區的時間小于 0.1 ms0.1 ms。 若

25、采用程序若采用程序I/OI/O方式,方式,CPUCPU約有約有 99.9 ms99.9 ms的時間處于忙的時間處于忙等待中。等待中。 采用中斷驅動方采用中斷驅動方式后,式后,CPUCPU可利用這可利用這 99.9 ms99.9 ms的時間去做其它事情,而僅用的時間去做其它事情,而僅用 0.1 ms0.1 ms的時間來處理由控制器發來的中斷請求。的時間來處理由控制器發來的中斷請求。 可見,中斷可見,中斷驅動方式可以成百倍地提高驅動方式可以成百倍地提高CPUCPU的利用率。的利用率。 圖5.4 中斷方式流程圖&DMADMA方式方式又稱直接存儲器訪問(又稱直接存儲器訪問(Direct Mem

26、ory AccessDirect Memory Access)方式。其基本思想是在外設和主存之間開辟直接的數據交方式。其基本思想是在外設和主存之間開辟直接的數據交換通路。換通路。DMADMA方式的特點是:方式的特點是:&(1 1)數據傳送的基本單位是數據塊。)數據傳送的基本單位是數據塊。&(2 2)所傳送的數據是從設備送內存,或者相反。)所傳送的數據是從設備送內存,或者相反。 &(3 3)僅在傳送一個或多個數據塊的開始和結束時,才需中)僅在傳送一個或多個數據塊的開始和結束時,才需中斷斷CPUCPU,請求干預,整塊數據的傳送是在請求干預,整塊數據的傳送是在DMADMA控制

27、器控制下控制器控制下完成的。完成的。&可見,可見,DMADMA方式較之中斷驅動方式,又是成百倍地減少了方式較之中斷驅動方式,又是成百倍地減少了CPUCPU對對I/OI/O的干預,進一步提高了的干預,進一步提高了CPUCPU與與I/OI/O設備的并行操作設備的并行操作程度。程度?!据斎胼斎? /輸出控制輸出控制- - DMA方式方式】圖圖5.5 DMA控制器與其他部件的關系控制器與其他部件的關系DMA控制器的組成控制器的組成 圖 5.6 DMA控制器的組成 DRMARDCCRI/O控制邏輯主機控制器接口 控制器與塊設備接口count內存CPU命令系統總線DMA控制器 為了實現在主機與控制

28、器之間成塊數據的直接交換,為了實現在主機與控制器之間成塊數據的直接交換, 必須必須在在DMADMA控制器中設置如下四類寄存器:控制器中設置如下四類寄存器: (1) (1) 命令命令/ /狀態寄存器狀態寄存器CRCR。用于接收從。用于接收從CPUCPU發來的發來的I/OI/O命令或命令或有關控制信息,有關控制信息, 或設備的狀態。或設備的狀態。 (2) (2) 內存地址寄存器內存地址寄存器MARMAR。在輸入時,它存放把數據從設備。在輸入時,它存放把數據從設備傳送到內存的起始目標地址;在輸出時,它存放由內存到設備傳送到內存的起始目標地址;在輸出時,它存放由內存到設備的內存源地址。的內存源地址。

29、(3) (3) 數據寄存器數據寄存器DRDR。用于暫存從設備到內存,或從內存到。用于暫存從設備到內存,或從內存到設備的數據。設備的數據。 (4) (4) 數據計數器數據計數器DCDC。 存放本次存放本次CPUCPU要讀或寫的字要讀或寫的字( (節節) )數。數。 DMA工作過程工作過程 圖 5.7 DMA方式的工作流程 MAR設置 A R 和 D C 初值啟動 D MA傳送命令挪用存儲器周期傳送數據字存儲器地址增1字計數寄存器減1D C 0?請求中斷在繼續執行用戶程序的同時,準備又一次傳送否是MAR【輸入輸入/ /輸出控制輸出控制- - 通道控制方式通道控制方式】 I/OI/O通道方式是通道方

30、式是DMADMA方式的發展,它可進一步減少方式的發展,它可進一步減少CPUCPU的干預,的干預,即把對一個數據塊的讀即把對一個數據塊的讀( (或寫或寫) )為單位的干預,為單位的干預,減少減少為對一組為對一組數據塊的讀數據塊的讀( (或寫或寫) )及有關的控制和管理為單位的及有關的控制和管理為單位的干預干預。 同同時,又可時,又可實現實現CPUCPU、通道和、通道和I/OI/O設備三者的并行操作設備三者的并行操作,從而更,從而更有效地提高整個系統的資源利用率。有效地提高整個系統的資源利用率。例如,當例如,當CPUCPU要完成一組相關的讀要完成一組相關的讀( (或寫或寫) )操作及有關控制時,操

31、作及有關控制時,只需向只需向I/OI/O通道發送一條通道發送一條I/OI/O指令,以給出其所要執行的通道指令,以給出其所要執行的通道程序的首址和要訪問的程序的首址和要訪問的I/OI/O設備,通道接到該指令后,通過設備,通道接到該指令后,通過執行通道程序便可完成執行通道程序便可完成CPUCPU指定的指定的I/OI/O任務。任務。 &通道是專門負責輸入通道是專門負責輸入/輸出的硬件輸出的硬件I/O處理器處理器圖5.8 通道方式的數據傳送結構 通道控制部件:通道控制部件:通道地址字通道地址字CAW:記錄下一條通道指令存:記錄下一條通道指令存放的地址。放的地址。通道命令字通道命令字CCW:保存

32、正在運行的通道指:保存正在運行的通道指令。令。通道狀態字通道狀態字CSW:記載通道、控制器、設:記載通道、控制器、設備的狀態。備的狀態。通道數據字通道數據字CDW:暫存內存和設備之間:暫存內存和設備之間I/O傳輸的數據。傳輸的數據。 按按CAW取通道指令送入取通道指令送入CCW中中 CAW+1 CAW 是通道結束命令?是是通道結束命令?是向主機發向主機發 中斷中斷否否 執行此命令執行此命令圖5.9 通道程序執行過程通道控制方式的數據傳輸過程如下:通道控制方式的數據傳輸過程如下: (1 1)當進程要求設備輸入時,)當進程要求設備輸入時,CPUCPU發指令指明發指令指明I/OI/O操作、設備操作、

33、設備號和對應通道。號和對應通道。(2 2)對應通道收到)對應通道收到CPUCPU發來的啟動指令后,讀出內存中的通道發來的啟動指令后,讀出內存中的通道指令程序、設置對應設備的控制狀態寄存器的初值。指令程序、設置對應設備的控制狀態寄存器的初值。(3 3)設備按通道指令的要求,把數據送往內存指定區域。)設備按通道指令的要求,把數據送往內存指定區域。(4 4)若傳送結束,)若傳送結束,I/OI/O控制器通過中斷請求線發中斷信號請求控制器通過中斷請求線發中斷信號請求CPUCPU做中斷處理。做中斷處理。(5 5)中斷處理結束后,)中斷處理結束后,CPUCPU返回到被中斷進程處繼續執行。返回到被中斷進程處繼

34、續執行。(6 6)當進程調度程序選中這個已得到數據的進程后,才能進)當進程調度程序選中這個已得到數據的進程后,才能進行加工處理行加工處理。 在現代在現代OSOS中,幾乎所有的中,幾乎所有的I/OI/O設備在與處理機(內設備在與處理機(內存)交換數據時,都使用了存)交換數據時,都使用了緩沖區緩沖區。緩沖緩沖就是在通信就是在通信問題中為了通信雙方的速度匹配而引入的一個中間層問題中為了通信雙方的速度匹配而引入的一個中間層次,這個層次的速度比通信雙方中較慢的一方快,而次,這個層次的速度比通信雙方中較慢的一方快,而與較快的一方更匹配。與較快的一方更匹配。1 1、引入緩沖的主要目的有以下幾點、引入緩沖的主

35、要目的有以下幾點: :&緩和處理機和緩和處理機和I/OI/O設備間速度不匹配的矛盾設備間速度不匹配的矛盾&減少對減少對CPUCPU的中斷次數的中斷次數&提高提高CPUCPU和和I/OI/O設備之間的并行性設備之間的并行性5.3 5.3 緩沖管理緩沖管理單緩沖單緩沖雙緩沖雙緩沖循環緩沖循環緩沖緩沖池緩沖池純硬件緩沖區純硬件緩沖區軟件緩沖區軟件緩沖區( (設在內存系統空設在內存系統空間中間中) )緩沖區緩沖區實現實現CacheCache設備緩沖區設備緩沖區I/OI/O緩沖緩沖區個數區個數&按照緩沖所在的位置分,緩沖區可分為:按照緩沖所在的位置分,緩沖區可分為: CA

36、CHECACHE;I/OI/O設備或控制器內部的純硬件緩沖區,如打印設備或控制器內部的純硬件緩沖區,如打印機內部的硬件緩沖區;機內部的硬件緩沖區;I/OI/O在內存開設的緩沖區,如在內存開設的緩沖區,如OSOS在內存開設的在內存開設的I/OI/O緩沖區和緩沖區和文件系統緩沖區;文件系統緩沖區;脫機與假脫機技術實質上也屬于緩沖技術,它是為慢速脫機與假脫機技術實質上也屬于緩沖技術,它是為慢速I/OI/O設備在外存開設的緩沖區。設備在外存開設的緩沖區。 2 2、緩沖區分類:、緩沖區分類:緩沖技術緩沖技術- -單緩沖單緩沖 &單緩沖是操作系統提供的最簡單的一種緩沖形式。單緩沖是操作系統提供的最

37、簡單的一種緩沖形式。單緩沖是單緩沖是指在設備和處理機之間設置一個緩沖。指在設備和處理機之間設置一個緩沖。設備和處理機交換數設備和處理機交換數據時,先把被交換數據寫入緩沖區,之后需要數據的設備或據時,先把被交換數據寫入緩沖區,之后需要數據的設備或處理機再從緩沖區取走數據。設備和處理機對緩沖區的操作處理機再從緩沖區取走數據。設備和處理機對緩沖區的操作是串行的。是串行的。單緩沖工作示意如下圖單緩沖工作示意如下圖 工作區處理 (C)緩沖區傳送 (M )輸入 (T)I/O 設備(a)T1M1C1T2M2C2T3M3C3T4t(b)用戶進程圖5.10 單緩沖工作示意圖緩沖技術緩沖技術- -雙緩沖雙緩沖 &

38、amp;雙緩沖方式和單緩沖方式相比,雙緩沖方式和單緩沖方式相比,雖然雙緩沖方式雖然雙緩沖方式能進一步提高能進一步提高CPUCPU和外設的并行程度,并能使輸入和外設的并行程度,并能使輸入設備和輸出設備并行工作,設備和輸出設備并行工作,但是在實際系統中很但是在實際系統中很少采用這一方式,這是因為在計算機系統中的外少采用這一方式,這是因為在計算機系統中的外設很多,又有大量的輸入和輸出,同時雙緩沖很設很多,又有大量的輸入和輸出,同時雙緩沖很難匹配設備和難匹配設備和CPUCPU的處理速度。因此現代計算機系的處理速度。因此現代計算機系統中一般使用環形緩沖或緩沖池結構。統中一般使用環形緩沖或緩沖池結構。雙緩

39、沖雙緩沖是指在應用程序進程發出是指在應用程序進程發出I/OI/O請求時,在內請求時,在內存為之分配兩個緩沖區,以便加快存為之分配兩個緩沖區,以便加快I/OI/O速度并提速度并提高設備利用率。高設備利用率。工作區用戶進程緩沖區1緩沖區2I/O 設備T1(緩沖1)M1C1M2C2M3C3T2(緩沖2)T3(緩沖3)M4C4T4(緩沖4)(a)(b)圖 5.11 雙緩沖工作示意圖 緩沖技術緩沖技術- -環形緩沖環形緩沖循環緩沖是指引入多個緩沖區并將之組織成環形。循環緩沖是指引入多個緩沖區并將之組織成環形。用作輸入用作輸入的循環緩沖,輸入進程不斷地向環形緩沖中的下一個空緩的循環緩沖,輸入進程不斷地向環

40、形緩沖中的下一個空緩沖輸入數據,計算進程不斷地從中取走數據并計算。循環沖輸入數據,計算進程不斷地從中取走數據并計算。循環緩沖也僅適用于某個特定的輸入輸出進程和計算進程,屬緩沖也僅適用于某個特定的輸入輸出進程和計算進程,屬于于專用緩沖專用緩沖。RGGGRG165423NextiNextgRGGGRC165423NextiNextgcurrent計算進程下一個可計算進程下一個可用的緩沖區指針用的緩沖區指針輸入進程下次可輸入進程下次可用緩沖區指針用緩沖區指針計算進程正在計算進程正在使用緩沖區使用緩沖區指針指針圖5.12 循環緩沖示意圖緩沖技術緩沖技術- - 緩沖池緩沖池&現代的操作系統通常將

41、多個緩沖區組織成現代的操作系統通常將多個緩沖區組織成緩緩沖池沖池,供多個進程在,供多個進程在I/OI/O操作時共享,以提高操作時共享,以提高緩沖區的利用率。緩沖區的利用率。在緩沖池中,可能有的緩在緩沖池中,可能有的緩沖區為空,有的緩沖區裝滿輸入數據,有的沖區為空,有的緩沖區裝滿輸入數據,有的緩沖區裝滿輸出數據。緩沖區裝滿輸出數據。為了便于管理,操作為了便于管理,操作系統內核可將相同類型的緩沖區鏈接在一起,系統內核可將相同類型的緩沖區鏈接在一起,從而形成多個緩沖隊列從而形成多個緩沖隊列 。圖圖5.13 緩沖區隊列緩沖區緩沖區隊列緩沖區緩沖池的組成緩沖池的組成空閑緩沖區、裝輸入數據的緩沖區和裝輸出

42、數空閑緩沖區、裝輸入數據的緩沖區和裝輸出數據的緩沖區。據的緩沖區。圖圖5.14 緩沖池的緩沖池的工作緩沖區工作緩沖區&緩沖池的工作方式緩沖池的工作方式&緩沖區可以在收容輸入、提取輸入、收容輸出和提取緩沖區可以在收容輸入、提取輸入、收容輸出和提取輸出四種方式下工作。輸出四種方式下工作。hinsoutsinhout收 容 輸 入提 取 輸 出用 戶程 序提 取 輸 入收 容 輸 出緩 沖 池對緩沖池的操作由如下幾個過程組成:對緩沖池的操作由如下幾個過程組成:1、從緩沖區隊列中取出一個緩沖區的過程、從緩沖區隊列中取出一個緩沖區的過程Takebuf(type)。2、把緩沖區插入到相應的

43、緩沖隊列的過程、把緩沖區插入到相應的緩沖隊列的過程Addbuf(type,number)。3、進程申請緩沖區用的過程、進程申請緩沖區用的過程Getbuf(type,number)。4、進程將緩沖區插入到相應緩沖區隊列的過程、進程將緩沖區插入到相應緩沖區隊列的過程Putbuf(type,workbuf)。Type: 緩沖隊列類型緩沖隊列類型 number: 緩沖區號緩沖區號 workbuf: 工作緩沖區類型工作緩沖區類型圖圖4-4 Getbuf4-4 Getbuf與與PutbufPutbuf流程圖流程圖Getbuf(type):P(S2(type)P(S1(type)按照type在相應隊列上取隊

44、首緩沖區V(S1(type)Putbuf(type,num):P(S1(type)V(S1(type)V(S2(type)按照type將num號緩沖區掛到對應緩沖隊列圖5.15& 設備分配技術設備分配技術設備依據使用特性可分為設備依據使用特性可分為共享設備技術、獨占設備技術和虛共享設備技術、獨占設備技術和虛擬設備技術擬設備技術。共享設備技術適用于可共享設備,獨占設備技。共享設備技術適用于可共享設備,獨占設備技術適用于可共享設備和獨占設備,虛擬設備技術適用于獨占術適用于可共享設備和獨占設備,虛擬設備技術適用于獨占設備。具體內容如下:設備。具體內容如下: 獨占設備技術:獨占設備技術:對獨享

45、設備,系統一般采用靜態分配方對獨享設備,系統一般采用靜態分配方式。即在一個作業執行前,將它所需要使用的這類設備分配式。即在一個作業執行前,將它所需要使用的這類設備分配給它,當作業結束撤離時,才將分配給它的獨享設備收回。給它,當作業結束撤離時,才將分配給它的獨享設備收回。 獨占設備每次只能分配給一個進程使用,這種使用特性獨占設備每次只能分配給一個進程使用,這種使用特性隱含著死鎖的必要條件,所以在考慮獨占設備的分配時,一隱含著死鎖的必要條件,所以在考慮獨占設備的分配時,一定要結合有關防止和避免死鎖的安全算法。定要結合有關防止和避免死鎖的安全算法。5.4 5.4 設備分配設備分配共享設備技術:共享設

46、備技術:對共享設備的分配一般采用動對共享設備的分配一般采用動態分配這一方式態分配這一方式 。在解決設備與在解決設備與CPUCPU的速度匹配問題上,為了使設的速度匹配問題上,為了使設備和備和CPUCPU的利用率達到最大程度,系統希望根據的利用率達到最大程度,系統希望根據每個設備的特征來全局調度設備的操作。每個設備的特征來全局調度設備的操作。 &常見的設備分配方法有兩種常見的設備分配方法有兩種1 1. .先來先服務先來先服務2 2. .優先級高者優先優先級高者優先虛擬設備技術虛擬設備技術: :系統中的獨占設備是有限的,往往系統中的獨占設備是有限的,往往不能滿足諸多進程的要求,會引起大量進程

47、由于等不能滿足諸多進程的要求,會引起大量進程由于等待某些獨占設備而阻塞。另一方面,申請到獨占設待某些獨占設備而阻塞。另一方面,申請到獨占設備的進程在其整個運行期間雖然占有設備,利用率備的進程在其整個運行期間雖然占有設備,利用率卻常常很低,設備經常處于空閑狀態。解決的辦法,卻常常很低,設備經常處于空閑狀態。解決的辦法,就是就是用共享設備操作來模擬獨占設備的操作,以提用共享設備操作來模擬獨占設備的操作,以提高系統效率和設備利用率高系統效率和設備利用率。這種技術就稱為虛擬設。這種技術就稱為虛擬設備技術,實現這一技術的軟、硬件系統被稱為假脫備技術,實現這一技術的軟、硬件系統被稱為假脫機(機(Simul

48、taneous Peripheral Operation On Simultaneous Peripheral Operation On Line, SPOOLLine, SPOOL)系統,又叫)系統,又叫SPOOLingSPOOLing系統系統. . 脫機輸入輸出技術脫機輸入輸出技術&為了解決人機矛盾及CPU和I/O設備間速度不匹配的矛盾,50年代末出現了該技術。&事先將裝有用戶程序和數據的紙帶(卡片)裝入紙帶輸入機,在一臺外圍機的控制下把紙帶上的數據(程序)輸入到磁帶上。當CPU需要這些數據時再從磁帶上高速的調入內存。&類似的,當CPU需要輸出時可由CPU直接高速的

49、把數據從內存送到磁帶上,然后再在另一臺外圍機的控制下,將磁帶上的結果通過相應的輸出設備輸出。輸入設備輸入設備外圍機外圍機磁盤磁盤磁盤磁盤磁盤磁盤外圍機外圍機主機主機磁盤磁盤輸出設備輸出設備由于程序和數據的輸入和輸出都是在外圍機的控制下完成的,由于程序和數據的輸入和輸出都是在外圍機的控制下完成的,或者說他們是在脫離主機的情況下進行的,所以稱為脫機輸入或者說他們是在脫離主機的情況下進行的,所以稱為脫機輸入輸出方式。輸出方式。圖圖5.16 脫機脫機I/O示意圖示意圖SPOOLingSPOOLing系統的組成:系統的組成: &(1)輸入井和輸出井:)輸入井和輸出井:&這是在磁盤上開辟出

50、來的兩個存儲區域。這是在磁盤上開辟出來的兩個存儲區域。&輸入井模擬脫機輸入時的磁盤,用于收容輸入井模擬脫機輸入時的磁盤,用于收容I/O設備輸入設備輸入的數據。輸出井模擬脫機輸出時的磁盤,用于收容用戶的數據。輸出井模擬脫機輸出時的磁盤,用于收容用戶程序的輸出數據程序的輸出數據。&(2)輸入緩沖區和輸出緩沖區)輸入緩沖區和輸出緩沖區:&這是在內存中開辟的兩個緩沖取區。這是在內存中開辟的兩個緩沖取區。&輸入緩沖區用于暫存由輸入設備送來的數據,以后再輸入緩沖區用于暫存由輸入設備送來的數據,以后再傳送到輸入井。輸出緩沖區用于暫存從輸出井送來的數傳送到輸入井。輸出緩沖區用于

51、暫存從輸出井送來的數據,以后再傳送到輸出設備。據,以后再傳送到輸出設備。& (3)輸入進程和輸出進程:)輸入進程和輸出進程:&輸入進程模擬脫機輸入時的外圍控制機,輸入進程模擬脫機輸入時的外圍控制機,將用戶要將用戶要求的數據從輸入機通過輸入緩沖區再送到輸入井。求的數據從輸入機通過輸入緩沖區再送到輸入井。當當CPU需要輸入數據時,直接從輸入井讀如內存。需要輸入數據時,直接從輸入井讀如內存。輸出進程模擬脫機輸出時的外圍控制機,輸出進程模擬脫機輸出時的外圍控制機,把用戶要把用戶要求輸出的數據,先從內存送到輸入井,待輸出設備求輸出的數據,先從內存送到輸入井,待輸出設備空閑時,再將輸出井中

52、的數據經過輸出緩沖區送到空閑時,再將輸出井中的數據經過輸出緩沖區送到輸出設備上。輸出設備上。 SPOOLingSPOOLing系統的組成如圖系統的組成如圖5.175.17所示所示。該系統必須有高速塊設。該系統必須有高速塊設備的支持,該高速塊設備通常是指磁盤。備的支持,該高速塊設備通常是指磁盤。SPOOLingSPOOLing技術需要在技術需要在磁盤上開辟兩個大的存儲空間,分別用作輸入井和輸出井。輸磁盤上開辟兩個大的存儲空間,分別用作輸入井和輸出井。輸入井模擬脫機輸入時的磁盤,收容從輸入設備輸入的數據。入井模擬脫機輸入時的磁盤,收容從輸入設備輸入的數據。 內存內存輸入進程輸入進程輸出進程輸出進程

53、輸入緩沖區輸入緩沖區輸出緩沖區輸出緩沖區磁盤磁盤輸入井輸入井輸出井輸出井輸入設備輸入設備輸出設備輸出設備圖圖5.17 SPOOLing5.17 SPOOLing系統的組成系統的組成例如:共享打印機例如:共享打印機&請求打印隊列請求打印隊列這是由若干張請求打印表所形成的隊列,這是由若干張請求打印表所形成的隊列,系統為每個請求打印的進程建立一張請系統為每個請求打印的進程建立一張請求打印表。求打印表。參見參見P190OS&設備分配設備分配 在計算機系統中,在計算機系統中,I/OI/O設備的數量是有限的。在多道程設備的數量是有限的。在多道程序環境中,用戶不能自行使用系統中的設備。進程首

54、先需序環境中,用戶不能自行使用系統中的設備。進程首先需要向設備管理程序提出申請,然后由要向設備管理程序提出申請,然后由設備分配程序設備分配程序按照一按照一定的分配算法給進程分配必要的資源。如果進程的申請沒定的分配算法給進程分配必要的資源。如果進程的申請沒有成功,就要在資源的等待隊列中排隊等待,直到獲得所有成功,就要在資源的等待隊列中排隊等待,直到獲得所需的資源。需的資源。 (1 1)設備管理的數據結構)設備管理的數據結構: :操作系統為了實現對設備的操作系統為了實現對設備的管理和分配,需要對每臺設備的情況進行登記,即對所管管理和分配,需要對每臺設備的情況進行登記,即對所管理的對象建立相應的數據

55、結構,如設備控制表(理的對象建立相應的數據結構,如設備控制表(DCTDCT)、控)、控制器控制表(制器控制表(COCTCOCT)、通道控制表()、通道控制表(CHCTCHCT)和系統設備表)和系統設備表(SDTSDT)。圖)。圖5-185-18給出了這些表的數據結構。給出了這些表的數據結構。 圖圖5.18 5.18 設備管理的數據結構設備管理的數據結構SDTSDT表項表項1 1表項表項i i設備類設備類設備標識設備標識驅動程序入口驅動程序入口DCTDCT指針指針DCTDCT設備類型設備類型設備狀態設備狀態COCTCOCT指針指針設備等待隊列設備等待隊列COCTCOCT控制器標識控制器標識控制器

56、狀態控制器狀態CHCTCHCT指針指針控制器等待隊列控制器等待隊列CHCTCHCT通道標識通道標識通道狀態通道狀態COCTCOCT指針指針通道等待隊列通道等待隊列設備、控制器、通道的等待隊列是由等待分配資源的進程控制塊組成的,其組織方式可以按照先來先服(FCFS)的順序,也可以按照優先級順序。&(2 2)設備分配的原則)設備分配的原則: :提高設備的利用率;避免不合理的分提高設備的利用率;避免不合理的分配方式造成的系統死鎖或系統工作紊亂。與進程的調度相似,配方式造成的系統死鎖或系統工作紊亂。與進程的調度相似,設備的分配也需要一定的策略,通常采用設備的分配也需要一定的策略,通常采用先來先

57、服務先來先服務(FCFSFCFS)和和優先級高者優先優先級高者優先等。等。獨占設備獨占設備每次只能分配給一個進程使每次只能分配給一個進程使用。虛擬設備的分配同共享設備。用。虛擬設備的分配同共享設備。設備分配設備分配 靜態分配靜態分配 : :動態分配動態分配 : :在用戶級進行的,執行之前,由系統一次在用戶級進行的,執行之前,由系統一次分配給該程序所需要的全部資源,分配給該程序所需要的全部資源,分配之分配之后,資源就一直為該程序所占用,直到執后,資源就一直為該程序所占用,直到執行完。該法無死鎖。行完。該法無死鎖。 在進程執行過程中根據執行需要進行設備在進程執行過程中根據執行需要進行設備分配。分配

58、。當進程需要設備時,通過當進程需要設備時,通過系統調用系統調用命令命令向系統提出設備請求,由系統按照事向系統提出設備請求,由系統按照事先規定的策略給進程分配所需要的設備。先規定的策略給進程分配所需要的設備。一旦用完,便立即釋放。一旦用完,便立即釋放。&I/OI/O軟件被組織成為一系列的層,即采用層次結構。軟件被組織成為一系列的層,即采用層次結構。&I/OI/O軟件一般分為四層軟件一般分為四層:中斷處理程序,設備驅動程序,獨:中斷處理程序,設備驅動程序,獨立于設備的系統軟件以及用戶空間的立于設備的系統軟件以及用戶空間的I/OI/O軟件。軟件。從功能上看從功能上看,設備無關層是設備

59、無關層是I/OI/O管理的主要部分;管理的主要部分;從代碼量上看從代碼量上看,驅動層,驅動層是是I/OI/O管理的主要部分。管理的主要部分。各層之間的界面并不是死的,各層各層之間的界面并不是死的,各層之間的確切界面是依賴于具體系統的。之間的確切界面是依賴于具體系統的。 &I/OI/O軟件設計的一個關鍵目標是軟件設計的一個關鍵目標是設備獨立性設備獨立性。除了直接與設除了直接與設備打交道的低層軟件之外,其他部分的軟件不依賴于硬件。備打交道的低層軟件之外,其他部分的軟件不依賴于硬件。I/OI/O軟件獨立于設備,當軟件獨立于設備,當I/OI/O設備更新時,沒有必要重新編寫設備更新時,沒有必要重

60、新編寫全部設備軟件。在一些操作系統中,只要安裝了相應的設備全部設備軟件。在一些操作系統中,只要安裝了相應的設備驅動程序,就可以很方便地安裝好新的驅動程序,就可以很方便地安裝好新的I/OI/O設備。甚至不必設備。甚至不必重新編譯就能將設備管理程序移到別處執行。重新編譯就能將設備管理程序移到別處執行。 5.5 I/O軟件&I/O設備管理軟件一般分為四層:中斷處理程序,設備驅動程序,與設備無關的系統軟件以及用戶空間的I/O軟件。其中低層與硬件相關,把硬件與較高層次的軟件隔離開來。而最高層軟件則向用戶提供一個友好的、統一的接口。 圖圖5.195.19總結了總結了I/OI/O系統軟件的層次。圖中的箭頭給出了系統軟件的層次。圖中的箭頭給出了I/OI/O部分部分的控制流。的控制流。 用戶空間軟件用戶空間軟件獨立于設備的系統軟件(設備獨立性軟件)獨立于設備的系統軟件(設備獨立性軟件)設備驅動程序設備驅動程序中斷處理程序中斷處理程序硬件硬件 圖圖5.19 I/O5.19 I/O系統的分層及各層的主要功能系統的分層及各層的主要功能 I/O I/O請求請求 I/O I/O回答回答5.5.1 中斷處理程序 1.1.中斷和中斷的分類中

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論