版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、操作系統(tǒng) Operating System教學(xué)目的教學(xué)目的 &通過對本章地講解是學(xué)生理解并掌握設(shè)通過對本章地講解是學(xué)生理解并掌握設(shè)備管理的功能、備管理的功能、I/O控制方式、緩沖區(qū)控制方式、緩沖區(qū)管理、設(shè)備管理,以及磁盤存儲管理。管理、設(shè)備管理,以及磁盤存儲管理。 本章重點(diǎn):本章重點(diǎn):& 輸入輸出控制方式輸入輸出控制方式& 緩沖區(qū)的管理緩沖區(qū)的管理& 設(shè)備分配和設(shè)備處理設(shè)備分配和設(shè)備處理& 磁盤調(diào)度磁盤調(diào)度& 虛擬設(shè)備虛擬設(shè)備本章難點(diǎn):本章難點(diǎn): & 對通道的理解對通道的理解& Spooling技術(shù)。技術(shù)。第第5 5章章 設(shè)備管理
2、設(shè)備管理 5.1 I/O5.1 I/O系統(tǒng)系統(tǒng)5.2 I/O5.2 I/O控制方式控制方式5.3 5.3 緩沖管理緩沖管理5.4 5.4 設(shè)備分配設(shè)備分配5.5 I/O5.5 I/O軟件軟件5.1 I/O5.1 I/O系統(tǒng)系統(tǒng)1.1.基本概念基本概念&I/OI/O系統(tǒng):系統(tǒng):在操作系統(tǒng)中負(fù)責(zé)管理輸入輸出設(shè)備的部分在操作系統(tǒng)中負(fù)責(zé)管理輸入輸出設(shè)備的部分稱為稱為I/OI/O系統(tǒng)。系統(tǒng)。&I/OI/O系統(tǒng)的基本功能:系統(tǒng)的基本功能:是為數(shù)據(jù)傳輸選擇輸入輸出設(shè)備;是為數(shù)據(jù)傳輸選擇輸入輸出設(shè)備;在選定的輸入輸出設(shè)備和在選定的輸入輸出設(shè)備和CPUCPU(或主存)之間交換數(shù)據(jù)(或主存)之間交
3、換數(shù)據(jù)。&操作系統(tǒng)內(nèi)核通過操作系統(tǒng)內(nèi)核通過設(shè)備驅(qū)動程序設(shè)備驅(qū)動程序與外部設(shè)備進(jìn)行交互。與外部設(shè)備進(jìn)行交互。驅(qū)動程序是設(shè)備與內(nèi)核其他部分之間的唯一接口。驅(qū)動程序是設(shè)備與內(nèi)核其他部分之間的唯一接口。&文件系統(tǒng)是對設(shè)備操作的組織與抽象,而設(shè)備操作則文件系統(tǒng)是對設(shè)備操作的組織與抽象,而設(shè)備操作則是對文件操作的最終實(shí)現(xiàn)。是對文件操作的最終實(shí)現(xiàn)。 2.I/O2.I/O設(shè)備分類設(shè)備分類 按信息組織方式按信息組織方式字符設(shè)備(字符設(shè)備(character devicecharacter device) 塊設(shè)備(塊設(shè)備(block deviceblock device) 有結(jié)構(gòu),可尋址有結(jié)構(gòu),可
4、尋址 按設(shè)備使用的可共享性按設(shè)備使用的可共享性 獨(dú)占設(shè)備獨(dú)占設(shè)備 共享設(shè)備共享設(shè)備 虛擬設(shè)備虛擬設(shè)備 按設(shè)備的使用特性按設(shè)備的使用特性存儲設(shè)備存儲設(shè)備輸入輸入/ /輸出設(shè)備輸出設(shè)備 5.1.1 I/O 5.1.1 I/O體系結(jié)構(gòu)體系結(jié)構(gòu) 在計算機(jī)系統(tǒng)中,數(shù)據(jù)信息是通過數(shù)據(jù)通道在在計算機(jī)系統(tǒng)中,數(shù)據(jù)信息是通過數(shù)據(jù)通道在CPUCPU、RAM RAM 和和I/OI/O設(shè)備之間流動的。這些數(shù)據(jù)通道又稱設(shè)備之間流動的。這些數(shù)據(jù)通道又稱為總線。為總線??偩€ 數(shù)據(jù)總線:指用來并行傳送數(shù)據(jù)的一組線。數(shù)據(jù)總線:指用來并行傳送數(shù)據(jù)的一組線。 地址總線:指用來并行傳送地址的一組線。地址總線:指用來并行傳送地址的一組
5、線。 控制總線:指用來并行傳送控制信息的一組線??刂瓶偩€:指用來并行傳送控制信息的一組線。 1.總線I/OI/O總線是用來連接總線是用來連接CPUCPU和和I/OI/O設(shè)備的總線。每個設(shè)備的總線。每個I/OI/O設(shè)備都依設(shè)備都依次連接到次連接到I/OI/O總線上,總線上,這種連接使用了有這種連接使用了有3 3個元素的硬件構(gòu)個元素的硬件構(gòu)件層次:件層次:I/OI/O端口、端口、I/OI/O接口和設(shè)備控制器。接口和設(shè)備控制器。 5.1.1 I/O 5.1.1 I/O體系結(jié)構(gòu)體系結(jié)構(gòu)CPUCPUI/OI/O總線總線I/OI/O端口端口I/OI/O接口接口I/OI/O控制器控制器I/OI/O端口端口I
6、/OI/O設(shè)備設(shè)備圖圖5.1 PC5.1 PC的的I/OI/O體系結(jié)構(gòu)體系結(jié)構(gòu)2.I/O 總線 (1)I/O(1)I/O端口端口(I/O port),I/O port),即為連接到即為連接到I/OI/O總線上的設(shè)備的總線上的設(shè)備的I/OI/O地址地址。 例例IBM PC IBM PC 體系結(jié)構(gòu)中的體系結(jié)構(gòu)中的I/OI/O地址空間,一共有地址空間,一共有6553665536個個8 8位的位的I/OI/O端口。端口。CPUCPU在執(zhí)行指令時,使用地址總線選擇所請在執(zhí)行指令時,使用地址總線選擇所請求的求的I/OI/O端口,使用數(shù)據(jù)總線在端口,使用數(shù)據(jù)總線在CPUCPU寄存器和寄存器和I/OI/O端口
7、之間傳送端口之間傳送數(shù)據(jù)。數(shù)據(jù)。若若I/OI/O端口能被映射到內(nèi)存物理地址空間,端口能被映射到內(nèi)存物理地址空間,CPUCPU和和I/OI/O設(shè)設(shè)備之間的通信就可以通過使用對內(nèi)存進(jìn)行操作的匯編語言指備之間的通信就可以通過使用對內(nèi)存進(jìn)行操作的匯編語言指令(如,令(如,movmov、andand、oror等等)來實(shí)現(xiàn)。等等)來實(shí)現(xiàn)。現(xiàn)代的硬件設(shè)備傾向現(xiàn)代的硬件設(shè)備傾向于把于把I/OI/O端口映射到內(nèi)存物理地址空間。端口映射到內(nèi)存物理地址空間。 為了實(shí)現(xiàn)起來方便,為了實(shí)現(xiàn)起來方便,操作系統(tǒng)設(shè)計者把每個設(shè)備的操作系統(tǒng)設(shè)計者把每個設(shè)備的I/OI/O端口都組端口都組織成一組專用寄存器:織成一組專用寄存器:控
8、制寄存器、狀態(tài)寄存器、輸入寄存控制寄存器、狀態(tài)寄存器、輸入寄存器、輸出寄存器。器、輸出寄存器。 (2)I/O (2)I/O接口起翻譯器的作用接口起翻譯器的作用:把:把I/OI/O端口中的值轉(zhuǎn)換成端口中的值轉(zhuǎn)換成設(shè)備所需要的命令和數(shù)據(jù);檢測設(shè)備狀態(tài)的變化,并對設(shè)設(shè)備所需要的命令和數(shù)據(jù);檢測設(shè)備狀態(tài)的變化,并對設(shè)備狀態(tài)寄存器(某一備狀態(tài)寄存器(某一I/OI/O端口)進(jìn)行相應(yīng)地更新。端口)進(jìn)行相應(yīng)地更新。I/OI/O接口接口通過一條通過一條IRQIRQ線連接到可編程中斷控制器上,以使它代表相線連接到可編程中斷控制器上,以使它代表相應(yīng)的設(shè)備發(fā)出中斷請求。有兩種類型的接口:專用應(yīng)的設(shè)備發(fā)出中斷請求。有兩
9、種類型的接口:專用I/OI/O接口接口和通用和通用I/OI/O接口。接口。 專用專用I/OI/O接口接口: :專用于特定的硬件設(shè)備。有時專用專用于特定的硬件設(shè)備。有時專用I/OI/O接口與設(shè)備控制器處于同一塊卡中。接口與設(shè)備控制器處于同一塊卡中。 通用通用I/OI/O接口接口: :是用于連接外部設(shè)備的。并口可用于連是用于連接外部設(shè)備的。并口可用于連接打印機(jī)、可移動磁盤、掃描儀、備份設(shè)備、其他計算機(jī)接打印機(jī)、可移動磁盤、掃描儀、備份設(shè)備、其他計算機(jī)等等。等等。 (3)(3)設(shè)備控制器的主要作用:設(shè)備控制器的主要作用:對從對從I/OI/O接口接收到的高級命接口接收到的高級命令進(jìn)行解釋,并通過向設(shè)備
10、發(fā)送適當(dāng)?shù)碾娦盘栃蛄袕?qiáng)制設(shè)令進(jìn)行解釋,并通過向設(shè)備發(fā)送適當(dāng)?shù)碾娦盘栃蛄袕?qiáng)制設(shè)備執(zhí)行特定的操作;對從設(shè)備接收到的電信號進(jìn)行轉(zhuǎn)換和備執(zhí)行特定的操作;對從設(shè)備接收到的電信號進(jìn)行轉(zhuǎn)換和適當(dāng)?shù)亟忉專⑼ㄟ^適當(dāng)?shù)亟忉?,并通過I/OI/O接口修改狀態(tài)寄存器的值。接口修改狀態(tài)寄存器的值。復(fù)雜的復(fù)雜的設(shè)備設(shè)備通常需要設(shè)備控制器來驅(qū)動,而通常需要設(shè)備控制器來驅(qū)動,而較簡單的設(shè)備較簡單的設(shè)備可以沒可以沒有設(shè)備控制器,如可編程中斷控制器、可編程間隔定時器。有設(shè)備控制器,如可編程中斷控制器、可編程間隔定時器。所有的所有的PC機(jī)都包含機(jī)都包含DMAC(Direct Memory Access Controller)輔助處
11、理器。)輔助處理器。DMA(直接內(nèi)存訪問)作為一(直接內(nèi)存訪問)作為一種輸入輸出方式,主要用來連接高速外圍設(shè)備,如磁盤、種輸入輸出方式,主要用來連接高速外圍設(shè)備,如磁盤、磁帶等,控制數(shù)據(jù)在磁帶等,控制數(shù)據(jù)在RAM和和I/O設(shè)備之間傳送。設(shè)備之間傳送。5.1.2 I/O5.1.2 I/O系統(tǒng)的功能系統(tǒng)的功能 &1.1.概述概述 在計算機(jī)系統(tǒng)中,在計算機(jī)系統(tǒng)中,I/OI/O設(shè)備是人機(jī)對話的界面和設(shè)備是人機(jī)對話的界面和接口接口,而計算機(jī)系統(tǒng)的,而計算機(jī)系統(tǒng)的I/OI/O設(shè)備種類繁多,千差萬別。設(shè)備種類繁多,千差萬別。另外,另外,CPUCPU性能高,而性能高,而I/OI/O設(shè)備性能低,屬于低速
12、設(shè)設(shè)備性能低,屬于低速設(shè)備,因此備,因此I/OI/O設(shè)備的性能常常成為系統(tǒng)性能的瓶頸。設(shè)備的性能常常成為系統(tǒng)性能的瓶頸。 用戶對用戶對I/OI/O設(shè)備的使用要求是方便、高效、安全設(shè)備的使用要求是方便、高效、安全和正確。和正確。I/OI/O系統(tǒng)的功能也就應(yīng)該在計算機(jī)硬件結(jié)構(gòu)系統(tǒng)的功能也就應(yīng)該在計算機(jī)硬件結(jié)構(gòu)提供的既定設(shè)備范圍及其連接模式下,完成用戶對提供的既定設(shè)備范圍及其連接模式下,完成用戶對I/OI/O設(shè)備的使用要求。設(shè)備的使用要求。& 2.I/O2.I/O系統(tǒng)的功能系統(tǒng)的功能(1)(1)方便性:方便性:為了讓用戶能方便使用為了讓用戶能方便使用I/OI/O設(shè)備,設(shè)備,提供簡便提供簡便易
13、用的對邏輯設(shè)備進(jìn)行邏輯操作的抽象接口易用的對邏輯設(shè)備進(jìn)行邏輯操作的抽象接口;實(shí)現(xiàn)實(shí)現(xiàn)抽象接口到物理接口的轉(zhuǎn)化,抽象接口到物理接口的轉(zhuǎn)化,即將高級邏輯操作轉(zhuǎn)即將高級邏輯操作轉(zhuǎn)化為低級物理操作?;癁榈图壩锢聿僮?。抽象接口抽象接口除了掩蔽硬件細(xì)節(jié)外還要掩蔽依賴于硬件的軟件除了掩蔽硬件細(xì)節(jié)外還要掩蔽依賴于硬件的軟件技術(shù)細(xì)節(jié)。技術(shù)細(xì)節(jié)。設(shè)備抽象接口設(shè)備抽象接口是由設(shè)備管理功能接口和文件系統(tǒng)功能接口是由設(shè)備管理功能接口和文件系統(tǒng)功能接口共同提供的,更準(zhǔn)確地說,設(shè)備抽象接口包含在文共同提供的,更準(zhǔn)確地說,設(shè)備抽象接口包含在文件系統(tǒng)統(tǒng)一接口中。件系統(tǒng)統(tǒng)一接口中。抽象接口使廣義的設(shè)備獨(dú)立性成為可能,抽象接口使廣
14、義的設(shè)備獨(dú)立性成為可能,向用戶展示一個大向用戶展示一個大大簡化了的計算環(huán)境觀點(diǎn),同時,抽象接口也是提高效大簡化了的計算環(huán)境觀點(diǎn),同時,抽象接口也是提高效率技術(shù)的前提。率技術(shù)的前提。廣義的廣義的I/OI/O設(shè)備獨(dú)立性設(shè)備獨(dú)立性是指整個設(shè)備管理功能的抽象接口是指整個設(shè)備管理功能的抽象接口,程序不關(guān)心物理設(shè)備的操作和組織細(xì)節(jié),而只看到具有程序不關(guān)心物理設(shè)備的操作和組織細(xì)節(jié),而只看到具有邏輯名稱和邏輯性質(zhì)的邏輯設(shè)備和邏輯操作,不關(guān)心具邏輯名稱和邏輯性質(zhì)的邏輯設(shè)備和邏輯操作,不關(guān)心具體體I/OI/O設(shè)備是哪一個具體設(shè)備或是哪一個文件,設(shè)備改設(shè)備是哪一個具體設(shè)備或是哪一個文件,設(shè)備改變而程序不變,不必修改
15、,也不必重新編譯。用戶不必變而程序不變,不必修改,也不必重新編譯。用戶不必關(guān)心設(shè)備的改變,這一事實(shí)所帶來的問題應(yīng)該由操作系關(guān)心設(shè)備的改變,這一事實(shí)所帶來的問題應(yīng)該由操作系統(tǒng)來管理。統(tǒng)來管理。所使用的設(shè)備的變化對程序是透明的。所使用的設(shè)備的變化對程序是透明的。塊設(shè)塊設(shè)備的設(shè)備獨(dú)立性是由文件系統(tǒng)的文件目錄概念提供的。備的設(shè)備獨(dú)立性是由文件系統(tǒng)的文件目錄概念提供的。(2)(2)效率:效率:非系統(tǒng)用戶關(guān)心其程序的運(yùn)行效率,系統(tǒng)用戶關(guān)非系統(tǒng)用戶關(guān)心其程序的運(yùn)行效率,系統(tǒng)用戶關(guān)心系統(tǒng)的利用率;非系統(tǒng)用戶不希望程序等待設(shè)備,系心系統(tǒng)的利用率;非系統(tǒng)用戶不希望程序等待設(shè)備,系統(tǒng)用戶不希望設(shè)備等待程序。統(tǒng)用戶不
16、希望設(shè)備等待程序。在現(xiàn)代操作系統(tǒng)中,在現(xiàn)代操作系統(tǒng)中,已引入了大量的技術(shù)以提高設(shè)備與已引入了大量的技術(shù)以提高設(shè)備與CPUCPU的的效率,例如中斷、緩沖、效率,例如中斷、緩沖、DMADMA、通道等。、通道等。因此,因此,操作系操作系統(tǒng)統(tǒng)設(shè)備管理的一個主要功能設(shè)備管理的一個主要功能是采用各種純軟件或與硬件是采用各種純軟件或與硬件配合的軟件技術(shù)來提高設(shè)備效率和與此相關(guān)的系統(tǒng)效率,配合的軟件技術(shù)來提高設(shè)備效率和與此相關(guān)的系統(tǒng)效率,提供物理提供物理I/O設(shè)備的共享并優(yōu)化這些設(shè)備的使用,同時設(shè)備的共享并優(yōu)化這些設(shè)備的使用,同時借助抽象接口使得這些優(yōu)化技術(shù)得以在內(nèi)部實(shí)施而對用借助抽象接口使得這些優(yōu)化技術(shù)得以
17、在內(nèi)部實(shí)施而對用戶透明。戶透明。(3)(3)保護(hù)保護(hù): :用戶希望能安全正確地使用設(shè)備,即希望用戶希望能安全正確地使用設(shè)備,即希望由設(shè)備傳送或管理的數(shù)據(jù)應(yīng)該是安全的,不被破由設(shè)備傳送或管理的數(shù)據(jù)應(yīng)該是安全的,不被破壞和泄密。壞和泄密。 另外,對設(shè)備擁有所有權(quán)的用戶希望另外,對設(shè)備擁有所有權(quán)的用戶希望設(shè)備不能被破壞。設(shè)備不能被破壞。 系統(tǒng)如何阻止用戶訪問他們無權(quán)訪問的設(shè)備呢?系統(tǒng)如何阻止用戶訪問他們無權(quán)訪問的設(shè)備呢?微微機(jī)系統(tǒng)多半不設(shè)保護(hù),任何進(jìn)程能做它想做的任機(jī)系統(tǒng)多半不設(shè)保護(hù),任何進(jìn)程能做它想做的任何事情。在大多數(shù)主機(jī)系統(tǒng)中,用戶進(jìn)程對何事情。在大多數(shù)主機(jī)系統(tǒng)中,用戶進(jìn)程對I/OI/O設(shè)設(shè)備
18、的訪問完全被禁止。在備的訪問完全被禁止。在UNIXUNIX系統(tǒng)中,對應(yīng)于系統(tǒng)中,對應(yīng)于I/OI/O設(shè)備的特別文件受一般的設(shè)備的特別文件受一般的rwxrwx位保護(hù)。系統(tǒng)管理員位保護(hù)。系統(tǒng)管理員據(jù)此為每臺設(shè)備確定適當(dāng)?shù)氖跈?quán)。據(jù)此為每臺設(shè)備確定適當(dāng)?shù)氖跈?quán)。計算機(jī)系統(tǒng)對計算機(jī)系統(tǒng)對I/OI/O設(shè)備的設(shè)備的控制方式控制方式有:有:程序輪詢方式程序輪詢方式程序中斷方式程序中斷方式DMADMA(直接存儲器訪問)控制方式(直接存儲器訪問)控制方式通道控制方式。通道控制方式。 5.2 I/O5.2 I/O控制方式控制方式【輸入輸入/ /輸出控制輸出控制- -程序直接控制方式程序直接控制方式】&程序直接控
19、制方式程序直接控制方式是指由程序直接控制內(nèi)存或是指由程序直接控制內(nèi)存或CPUCPU和外圍設(shè)備和外圍設(shè)備之間進(jìn)行信息傳送的方式。通常又稱為之間進(jìn)行信息傳送的方式。通常又稱為“忙忙等等”方式或循方式或循環(huán)測試方式。環(huán)測試方式。&在數(shù)據(jù)傳送過程中,必不可少的一個硬件設(shè)備是在數(shù)據(jù)傳送過程中,必不可少的一個硬件設(shè)備是I/OI/O控制器,控制器,它是操作系統(tǒng)軟件和硬件設(shè)備之間的接口,它接收它是操作系統(tǒng)軟件和硬件設(shè)備之間的接口,它接收CPUCPU的命令,的命令,并控制并控制I/OI/O設(shè)備進(jìn)行實(shí)際的操作。設(shè)備進(jìn)行實(shí)際的操作。CPUCPU執(zhí)行執(zhí)行A A進(jìn)程進(jìn)程外設(shè)外設(shè)I/OI/O控制器控制器發(fā)命令發(fā)命
20、令傳數(shù)據(jù)傳數(shù)據(jù)圖5.2 程序直接控制方式程序直接控制方式下輸出數(shù)據(jù)時的工作過程。程序直接控制方式下輸出數(shù)據(jù)時的工作過程。& 把一個啟動位為把一個啟動位為“1”“1”的控制字寫入該設(shè)備的控制字寫入該設(shè)備的控制狀態(tài)寄存器。的控制狀態(tài)寄存器。& 將需輸出數(shù)據(jù)送到數(shù)據(jù)緩沖寄存器。將需輸出數(shù)據(jù)送到數(shù)據(jù)緩沖寄存器。&測試控制狀態(tài)寄存器中的測試控制狀態(tài)寄存器中的“完成位完成位”,若為,若為0 0,轉(zhuǎn),轉(zhuǎn) ,否則轉(zhuǎn)。,否則轉(zhuǎn)。& 輸出設(shè)備將數(shù)據(jù)緩沖寄存器中的數(shù)據(jù)取走輸出設(shè)備將數(shù)據(jù)緩沖寄存器中的數(shù)據(jù)取走進(jìn)行實(shí)際的輸出。進(jìn)行實(shí)際的輸出。程序直接控制方式優(yōu)缺點(diǎn)程序直接控制方式優(yōu)缺點(diǎn)
21、在程序在程序I/OI/O方式中,由于方式中,由于CPUCPU的高速性和的高速性和I/OI/O設(shè)備的設(shè)備的低速性,低速性, 致使致使CPUCPU的絕大部分時間都處于等待的絕大部分時間都處于等待I/OI/O設(shè)備完成數(shù)據(jù)設(shè)備完成數(shù)據(jù)I/OI/O的循環(huán)測試中,的循環(huán)測試中, 造成對造成對CPUCPU的極的極大浪費(fèi)。大浪費(fèi)。該方式優(yōu)點(diǎn):簡單,易于理解。該方式優(yōu)點(diǎn):簡單,易于理解。 圖5.3 程序I/O方式流程圖 【輸入輸入/ /輸出控制輸出控制- -中斷控制方式中斷控制方式】 &(1 1)進(jìn)程需要數(shù)據(jù)時,將允許啟動和允許中斷的控制字)進(jìn)程需要數(shù)據(jù)時,將允許啟動和允許中斷的控制字寫入設(shè)備控制狀態(tài)寄
22、存器中,啟動該設(shè)備進(jìn)行輸入操作。寫入設(shè)備控制狀態(tài)寄存器中,啟動該設(shè)備進(jìn)行輸入操作。&(2 2)該進(jìn)程放棄處理機(jī),等待輸入的完成。操作系統(tǒng)進(jìn))該進(jìn)程放棄處理機(jī),等待輸入的完成。操作系統(tǒng)進(jìn)程調(diào)度程序調(diào)度其他就緒進(jìn)程占用處理機(jī)。程調(diào)度程序調(diào)度其他就緒進(jìn)程占用處理機(jī)。&(3 3)當(dāng)輸入完成時,輸入設(shè)備通過中斷請求線向)當(dāng)輸入完成時,輸入設(shè)備通過中斷請求線向CPUCPU發(fā)出發(fā)出中斷請求信號。中斷請求信號。CPUCPU在接收到中斷信號之后,轉(zhuǎn)向中斷處在接收到中斷信號之后,轉(zhuǎn)向中斷處理程序。理程序。&(4 4)中斷處理程序首先保護(hù)現(xiàn)場,然后把輸入緩沖寄存)中斷處理程序首先保護(hù)現(xiàn)場,然
23、后把輸入緩沖寄存器中的數(shù)據(jù)傳送到某一特定單元中去,同時將等待輸入完器中的數(shù)據(jù)傳送到某一特定單元中去,同時將等待輸入完成的那個進(jìn)程喚醒,進(jìn)入就緒狀態(tài),最后恢復(fù)現(xiàn)場,并返成的那個進(jìn)程喚醒,進(jìn)入就緒狀態(tài),最后恢復(fù)現(xiàn)場,并返回到被中斷的進(jìn)程繼續(xù)執(zhí)行。回到被中斷的進(jìn)程繼續(xù)執(zhí)行。&(5 5)在以后的某一時刻,操作系統(tǒng)進(jìn)程調(diào)度程序選中提)在以后的某一時刻,操作系統(tǒng)進(jìn)程調(diào)度程序選中提出的請求并得到獲取數(shù)據(jù)的進(jìn)程,該進(jìn)程從約定的內(nèi)存特出的請求并得到獲取數(shù)據(jù)的進(jìn)程,該進(jìn)程從約定的內(nèi)存特定單元中取出數(shù)據(jù)繼續(xù)工作。定單元中取出數(shù)據(jù)繼續(xù)工作。 在在I/OI/O設(shè)備輸入每個數(shù)據(jù)的過程中,由于無須設(shè)備輸入每個數(shù)據(jù)的
24、過程中,由于無須CPUCPU干預(yù),干預(yù),因而可使因而可使CPUCPU與與I/OI/O設(shè)備并行工作。設(shè)備并行工作。僅當(dāng)輸完一個數(shù)據(jù)時,才僅當(dāng)輸完一個數(shù)據(jù)時,才需需CPUCPU花費(fèi)極短的時間去做些中斷處理?;ㄙM(fèi)極短的時間去做些中斷處理??梢?,這樣可使可見,這樣可使CPUCPU和和I/OI/O設(shè)備都處于忙碌狀態(tài),從而提高了整個系統(tǒng)的資源利用設(shè)備都處于忙碌狀態(tài),從而提高了整個系統(tǒng)的資源利用率及吞吐量。率及吞吐量。例如,從終端輸入一個字符的時間約為例如,從終端輸入一個字符的時間約為100 ms100 ms, 而將字符送而將字符送入終端緩沖區(qū)的時間小于入終端緩沖區(qū)的時間小于 0.1 ms0.1 ms。 若
25、采用程序若采用程序I/OI/O方式,方式,CPUCPU約有約有 99.9 ms99.9 ms的時間處于忙的時間處于忙等待中。等待中。 采用中斷驅(qū)動方采用中斷驅(qū)動方式后,式后,CPUCPU可利用這可利用這 99.9 ms99.9 ms的時間去做其它事情,而僅用的時間去做其它事情,而僅用 0.1 ms0.1 ms的時間來處理由控制器發(fā)來的中斷請求。的時間來處理由控制器發(fā)來的中斷請求。 可見,中斷可見,中斷驅(qū)動方式可以成百倍地提高驅(qū)動方式可以成百倍地提高CPUCPU的利用率。的利用率。 圖5.4 中斷方式流程圖&DMADMA方式方式又稱直接存儲器訪問(又稱直接存儲器訪問(Direct Mem
26、ory AccessDirect Memory Access)方式。其基本思想是在外設(shè)和主存之間開辟直接的數(shù)據(jù)交方式。其基本思想是在外設(shè)和主存之間開辟直接的數(shù)據(jù)交換通路。換通路。DMADMA方式的特點(diǎn)是:方式的特點(diǎn)是:&(1 1)數(shù)據(jù)傳送的基本單位是數(shù)據(jù)塊。)數(shù)據(jù)傳送的基本單位是數(shù)據(jù)塊。&(2 2)所傳送的數(shù)據(jù)是從設(shè)備送內(nèi)存,或者相反。)所傳送的數(shù)據(jù)是從設(shè)備送內(nèi)存,或者相反。 &(3 3)僅在傳送一個或多個數(shù)據(jù)塊的開始和結(jié)束時,才需中)僅在傳送一個或多個數(shù)據(jù)塊的開始和結(jié)束時,才需中斷斷CPUCPU,請求干預(yù),整塊數(shù)據(jù)的傳送是在請求干預(yù),整塊數(shù)據(jù)的傳送是在DMADMA控制
27、器控制下控制器控制下完成的。完成的。&可見,可見,DMADMA方式較之中斷驅(qū)動方式,又是成百倍地減少了方式較之中斷驅(qū)動方式,又是成百倍地減少了CPUCPU對對I/OI/O的干預(yù),進(jìn)一步提高了的干預(yù),進(jìn)一步提高了CPUCPU與與I/OI/O設(shè)備的并行操作設(shè)備的并行操作程度。程度。【輸入輸入/ /輸出控制輸出控制- - DMA方式方式】圖圖5.5 DMA控制器與其他部件的關(guān)系控制器與其他部件的關(guān)系DMA控制器的組成控制器的組成 圖 5.6 DMA控制器的組成 DRMARDCCRI/O控制邏輯主機(jī)控制器接口 控制器與塊設(shè)備接口count內(nèi)存CPU命令系統(tǒng)總線DMA控制器 為了實(shí)現(xiàn)在主機(jī)與控制
28、器之間成塊數(shù)據(jù)的直接交換,為了實(shí)現(xiàn)在主機(jī)與控制器之間成塊數(shù)據(jù)的直接交換, 必須必須在在DMADMA控制器中設(shè)置如下四類寄存器:控制器中設(shè)置如下四類寄存器: (1) (1) 命令命令/ /狀態(tài)寄存器狀態(tài)寄存器CRCR。用于接收從。用于接收從CPUCPU發(fā)來的發(fā)來的I/OI/O命令或命令或有關(guān)控制信息,有關(guān)控制信息, 或設(shè)備的狀態(tài)?;蛟O(shè)備的狀態(tài)。 (2) (2) 內(nèi)存地址寄存器內(nèi)存地址寄存器MARMAR。在輸入時,它存放把數(shù)據(jù)從設(shè)備。在輸入時,它存放把數(shù)據(jù)從設(shè)備傳送到內(nèi)存的起始目標(biāo)地址;在輸出時,它存放由內(nèi)存到設(shè)備傳送到內(nèi)存的起始目標(biāo)地址;在輸出時,它存放由內(nèi)存到設(shè)備的內(nèi)存源地址。的內(nèi)存源地址。
29、(3) (3) 數(shù)據(jù)寄存器數(shù)據(jù)寄存器DRDR。用于暫存從設(shè)備到內(nèi)存,或從內(nèi)存到。用于暫存從設(shè)備到內(nèi)存,或從內(nèi)存到設(shè)備的數(shù)據(jù)。設(shè)備的數(shù)據(jù)。 (4) (4) 數(shù)據(jù)計數(shù)器數(shù)據(jù)計數(shù)器DCDC。 存放本次存放本次CPUCPU要讀或?qū)懙淖忠x或?qū)懙淖? (節(jié)節(jié)) )數(shù)。數(shù)。 DMA工作過程工作過程 圖 5.7 DMA方式的工作流程 MAR設(shè)置 A R 和 D C 初值啟動 D MA傳送命令挪用存儲器周期傳送數(shù)據(jù)字存儲器地址增1字計數(shù)寄存器減1D C 0?請求中斷在繼續(xù)執(zhí)行用戶程序的同時,準(zhǔn)備又一次傳送否是MAR【輸入輸入/ /輸出控制輸出控制- - 通道控制方式通道控制方式】 I/OI/O通道方式是通道方
30、式是DMADMA方式的發(fā)展,它可進(jìn)一步減少方式的發(fā)展,它可進(jìn)一步減少CPUCPU的干預(yù),的干預(yù),即把對一個數(shù)據(jù)塊的讀即把對一個數(shù)據(jù)塊的讀( (或?qū)懟驅(qū)? )為單位的干預(yù),為單位的干預(yù),減少減少為對一組為對一組數(shù)據(jù)塊的讀數(shù)據(jù)塊的讀( (或?qū)懟驅(qū)? )及有關(guān)的控制和管理為單位的及有關(guān)的控制和管理為單位的干預(yù)干預(yù)。 同同時,又可時,又可實(shí)現(xiàn)實(shí)現(xiàn)CPUCPU、通道和、通道和I/OI/O設(shè)備三者的并行操作設(shè)備三者的并行操作,從而更,從而更有效地提高整個系統(tǒng)的資源利用率。有效地提高整個系統(tǒng)的資源利用率。例如,當(dāng)例如,當(dāng)CPUCPU要完成一組相關(guān)的讀要完成一組相關(guān)的讀( (或?qū)懟驅(qū)? )操作及有關(guān)控制時,操
31、作及有關(guān)控制時,只需向只需向I/OI/O通道發(fā)送一條通道發(fā)送一條I/OI/O指令,以給出其所要執(zhí)行的通道指令,以給出其所要執(zhí)行的通道程序的首址和要訪問的程序的首址和要訪問的I/OI/O設(shè)備,通道接到該指令后,通過設(shè)備,通道接到該指令后,通過執(zhí)行通道程序便可完成執(zhí)行通道程序便可完成CPUCPU指定的指定的I/OI/O任務(wù)。任務(wù)。 &通道是專門負(fù)責(zé)輸入通道是專門負(fù)責(zé)輸入/輸出的硬件輸出的硬件I/O處理器處理器圖5.8 通道方式的數(shù)據(jù)傳送結(jié)構(gòu) 通道控制部件:通道控制部件:通道地址字通道地址字CAW:記錄下一條通道指令存:記錄下一條通道指令存放的地址。放的地址。通道命令字通道命令字CCW:保存
32、正在運(yùn)行的通道指:保存正在運(yùn)行的通道指令。令。通道狀態(tài)字通道狀態(tài)字CSW:記載通道、控制器、設(shè):記載通道、控制器、設(shè)備的狀態(tài)。備的狀態(tài)。通道數(shù)據(jù)字通道數(shù)據(jù)字CDW:暫存內(nèi)存和設(shè)備之間:暫存內(nèi)存和設(shè)備之間I/O傳輸?shù)臄?shù)據(jù)。傳輸?shù)臄?shù)據(jù)。 按按CAW取通道指令送入取通道指令送入CCW中中 CAW+1 CAW 是通道結(jié)束命令?是是通道結(jié)束命令?是向主機(jī)發(fā)向主機(jī)發(fā) 中斷中斷否否 執(zhí)行此命令執(zhí)行此命令圖5.9 通道程序執(zhí)行過程通道控制方式的數(shù)據(jù)傳輸過程如下:通道控制方式的數(shù)據(jù)傳輸過程如下: (1 1)當(dāng)進(jìn)程要求設(shè)備輸入時,)當(dāng)進(jìn)程要求設(shè)備輸入時,CPUCPU發(fā)指令指明發(fā)指令指明I/OI/O操作、設(shè)備操作、
33、設(shè)備號和對應(yīng)通道。號和對應(yīng)通道。(2 2)對應(yīng)通道收到)對應(yīng)通道收到CPUCPU發(fā)來的啟動指令后,讀出內(nèi)存中的通道發(fā)來的啟動指令后,讀出內(nèi)存中的通道指令程序、設(shè)置對應(yīng)設(shè)備的控制狀態(tài)寄存器的初值。指令程序、設(shè)置對應(yīng)設(shè)備的控制狀態(tài)寄存器的初值。(3 3)設(shè)備按通道指令的要求,把數(shù)據(jù)送往內(nèi)存指定區(qū)域。)設(shè)備按通道指令的要求,把數(shù)據(jù)送往內(nèi)存指定區(qū)域。(4 4)若傳送結(jié)束,)若傳送結(jié)束,I/OI/O控制器通過中斷請求線發(fā)中斷信號請求控制器通過中斷請求線發(fā)中斷信號請求CPUCPU做中斷處理。做中斷處理。(5 5)中斷處理結(jié)束后,)中斷處理結(jié)束后,CPUCPU返回到被中斷進(jìn)程處繼續(xù)執(zhí)行。返回到被中斷進(jìn)程處繼
34、續(xù)執(zhí)行。(6 6)當(dāng)進(jìn)程調(diào)度程序選中這個已得到數(shù)據(jù)的進(jìn)程后,才能進(jìn))當(dāng)進(jìn)程調(diào)度程序選中這個已得到數(shù)據(jù)的進(jìn)程后,才能進(jìn)行加工處理行加工處理。 在現(xiàn)代在現(xiàn)代OSOS中,幾乎所有的中,幾乎所有的I/OI/O設(shè)備在與處理機(jī)(內(nèi)設(shè)備在與處理機(jī)(內(nèi)存)交換數(shù)據(jù)時,都使用了存)交換數(shù)據(jù)時,都使用了緩沖區(qū)緩沖區(qū)。緩沖緩沖就是在通信就是在通信問題中為了通信雙方的速度匹配而引入的一個中間層問題中為了通信雙方的速度匹配而引入的一個中間層次,這個層次的速度比通信雙方中較慢的一方快,而次,這個層次的速度比通信雙方中較慢的一方快,而與較快的一方更匹配。與較快的一方更匹配。1 1、引入緩沖的主要目的有以下幾點(diǎn)、引入緩沖的主
35、要目的有以下幾點(diǎn): :&緩和處理機(jī)和緩和處理機(jī)和I/OI/O設(shè)備間速度不匹配的矛盾設(shè)備間速度不匹配的矛盾&減少對減少對CPUCPU的中斷次數(shù)的中斷次數(shù)&提高提高CPUCPU和和I/OI/O設(shè)備之間的并行性設(shè)備之間的并行性5.3 5.3 緩沖管理緩沖管理單緩沖單緩沖雙緩沖雙緩沖循環(huán)緩沖循環(huán)緩沖緩沖池緩沖池純硬件緩沖區(qū)純硬件緩沖區(qū)軟件緩沖區(qū)軟件緩沖區(qū)( (設(shè)在內(nèi)存系統(tǒng)空設(shè)在內(nèi)存系統(tǒng)空間中間中) )緩沖區(qū)緩沖區(qū)實(shí)現(xiàn)實(shí)現(xiàn)CacheCache設(shè)備緩沖區(qū)設(shè)備緩沖區(qū)I/OI/O緩沖緩沖區(qū)個數(shù)區(qū)個數(shù)&按照緩沖所在的位置分,緩沖區(qū)可分為:按照緩沖所在的位置分,緩沖區(qū)可分為: CA
36、CHECACHE;I/OI/O設(shè)備或控制器內(nèi)部的純硬件緩沖區(qū),如打印設(shè)備或控制器內(nèi)部的純硬件緩沖區(qū),如打印機(jī)內(nèi)部的硬件緩沖區(qū);機(jī)內(nèi)部的硬件緩沖區(qū);I/OI/O在內(nèi)存開設(shè)的緩沖區(qū),如在內(nèi)存開設(shè)的緩沖區(qū),如OSOS在內(nèi)存開設(shè)的在內(nèi)存開設(shè)的I/OI/O緩沖區(qū)和緩沖區(qū)和文件系統(tǒng)緩沖區(qū);文件系統(tǒng)緩沖區(qū);脫機(jī)與假脫機(jī)技術(shù)實(shí)質(zhì)上也屬于緩沖技術(shù),它是為慢速脫機(jī)與假脫機(jī)技術(shù)實(shí)質(zhì)上也屬于緩沖技術(shù),它是為慢速I/OI/O設(shè)備在外存開設(shè)的緩沖區(qū)。設(shè)備在外存開設(shè)的緩沖區(qū)。 2 2、緩沖區(qū)分類:、緩沖區(qū)分類:緩沖技術(shù)緩沖技術(shù)- -單緩沖單緩沖 &單緩沖是操作系統(tǒng)提供的最簡單的一種緩沖形式。單緩沖是操作系統(tǒng)提供的最
37、簡單的一種緩沖形式。單緩沖是單緩沖是指在設(shè)備和處理機(jī)之間設(shè)置一個緩沖。指在設(shè)備和處理機(jī)之間設(shè)置一個緩沖。設(shè)備和處理機(jī)交換數(shù)設(shè)備和處理機(jī)交換數(shù)據(jù)時,先把被交換數(shù)據(jù)寫入緩沖區(qū),之后需要數(shù)據(jù)的設(shè)備或據(jù)時,先把被交換數(shù)據(jù)寫入緩沖區(qū),之后需要數(shù)據(jù)的設(shè)備或處理機(jī)再從緩沖區(qū)取走數(shù)據(jù)。設(shè)備和處理機(jī)對緩沖區(qū)的操作處理機(jī)再從緩沖區(qū)取走數(shù)據(jù)。設(shè)備和處理機(jī)對緩沖區(qū)的操作是串行的。是串行的。單緩沖工作示意如下圖單緩沖工作示意如下圖 工作區(qū)處理 (C)緩沖區(qū)傳送 (M )輸入 (T)I/O 設(shè)備(a)T1M1C1T2M2C2T3M3C3T4t(b)用戶進(jìn)程圖5.10 單緩沖工作示意圖緩沖技術(shù)緩沖技術(shù)- -雙緩沖雙緩沖 &
38、amp;雙緩沖方式和單緩沖方式相比,雙緩沖方式和單緩沖方式相比,雖然雙緩沖方式雖然雙緩沖方式能進(jìn)一步提高能進(jìn)一步提高CPUCPU和外設(shè)的并行程度,并能使輸入和外設(shè)的并行程度,并能使輸入設(shè)備和輸出設(shè)備并行工作,設(shè)備和輸出設(shè)備并行工作,但是在實(shí)際系統(tǒng)中很但是在實(shí)際系統(tǒng)中很少采用這一方式,這是因?yàn)樵谟嬎銠C(jī)系統(tǒng)中的外少采用這一方式,這是因?yàn)樵谟嬎銠C(jī)系統(tǒng)中的外設(shè)很多,又有大量的輸入和輸出,同時雙緩沖很設(shè)很多,又有大量的輸入和輸出,同時雙緩沖很難匹配設(shè)備和難匹配設(shè)備和CPUCPU的處理速度。因此現(xiàn)代計算機(jī)系的處理速度。因此現(xiàn)代計算機(jī)系統(tǒng)中一般使用環(huán)形緩沖或緩沖池結(jié)構(gòu)。統(tǒng)中一般使用環(huán)形緩沖或緩沖池結(jié)構(gòu)。雙緩
39、沖雙緩沖是指在應(yīng)用程序進(jìn)程發(fā)出是指在應(yīng)用程序進(jìn)程發(fā)出I/OI/O請求時,在內(nèi)請求時,在內(nèi)存為之分配兩個緩沖區(qū),以便加快存為之分配兩個緩沖區(qū),以便加快I/OI/O速度并提速度并提高設(shè)備利用率。高設(shè)備利用率。工作區(qū)用戶進(jìn)程緩沖區(qū)1緩沖區(qū)2I/O 設(shè)備T1(緩沖1)M1C1M2C2M3C3T2(緩沖2)T3(緩沖3)M4C4T4(緩沖4)(a)(b)圖 5.11 雙緩沖工作示意圖 緩沖技術(shù)緩沖技術(shù)- -環(huán)形緩沖環(huán)形緩沖循環(huán)緩沖是指引入多個緩沖區(qū)并將之組織成環(huán)形。循環(huán)緩沖是指引入多個緩沖區(qū)并將之組織成環(huán)形。用作輸入用作輸入的循環(huán)緩沖,輸入進(jìn)程不斷地向環(huán)形緩沖中的下一個空緩的循環(huán)緩沖,輸入進(jìn)程不斷地向環(huán)
40、形緩沖中的下一個空緩沖輸入數(shù)據(jù),計算進(jìn)程不斷地從中取走數(shù)據(jù)并計算。循環(huán)沖輸入數(shù)據(jù),計算進(jìn)程不斷地從中取走數(shù)據(jù)并計算。循環(huán)緩沖也僅適用于某個特定的輸入輸出進(jìn)程和計算進(jìn)程,屬緩沖也僅適用于某個特定的輸入輸出進(jìn)程和計算進(jìn)程,屬于于專用緩沖專用緩沖。RGGGRG165423NextiNextgRGGGRC165423NextiNextgcurrent計算進(jìn)程下一個可計算進(jìn)程下一個可用的緩沖區(qū)指針用的緩沖區(qū)指針輸入進(jìn)程下次可輸入進(jìn)程下次可用緩沖區(qū)指針用緩沖區(qū)指針計算進(jìn)程正在計算進(jìn)程正在使用緩沖區(qū)使用緩沖區(qū)指針指針圖5.12 循環(huán)緩沖示意圖緩沖技術(shù)緩沖技術(shù)- - 緩沖池緩沖池&現(xiàn)代的操作系統(tǒng)通常將
41、多個緩沖區(qū)組織成現(xiàn)代的操作系統(tǒng)通常將多個緩沖區(qū)組織成緩緩沖池沖池,供多個進(jìn)程在,供多個進(jìn)程在I/OI/O操作時共享,以提高操作時共享,以提高緩沖區(qū)的利用率。緩沖區(qū)的利用率。在緩沖池中,可能有的緩在緩沖池中,可能有的緩沖區(qū)為空,有的緩沖區(qū)裝滿輸入數(shù)據(jù),有的沖區(qū)為空,有的緩沖區(qū)裝滿輸入數(shù)據(jù),有的緩沖區(qū)裝滿輸出數(shù)據(jù)。緩沖區(qū)裝滿輸出數(shù)據(jù)。為了便于管理,操作為了便于管理,操作系統(tǒng)內(nèi)核可將相同類型的緩沖區(qū)鏈接在一起,系統(tǒng)內(nèi)核可將相同類型的緩沖區(qū)鏈接在一起,從而形成多個緩沖隊列從而形成多個緩沖隊列 。圖圖5.13 緩沖區(qū)隊列緩沖區(qū)緩沖區(qū)隊列緩沖區(qū)緩沖池的組成緩沖池的組成空閑緩沖區(qū)、裝輸入數(shù)據(jù)的緩沖區(qū)和裝輸出
42、數(shù)空閑緩沖區(qū)、裝輸入數(shù)據(jù)的緩沖區(qū)和裝輸出數(shù)據(jù)的緩沖區(qū)。據(jù)的緩沖區(qū)。圖圖5.14 緩沖池的緩沖池的工作緩沖區(qū)工作緩沖區(qū)&緩沖池的工作方式緩沖池的工作方式&緩沖區(qū)可以在收容輸入、提取輸入、收容輸出和提取緩沖區(qū)可以在收容輸入、提取輸入、收容輸出和提取輸出四種方式下工作。輸出四種方式下工作。hinsoutsinhout收 容 輸 入提 取 輸 出用 戶程 序提 取 輸 入收 容 輸 出緩 沖 池對緩沖池的操作由如下幾個過程組成:對緩沖池的操作由如下幾個過程組成:1、從緩沖區(qū)隊列中取出一個緩沖區(qū)的過程、從緩沖區(qū)隊列中取出一個緩沖區(qū)的過程Takebuf(type)。2、把緩沖區(qū)插入到相應(yīng)的
43、緩沖隊列的過程、把緩沖區(qū)插入到相應(yīng)的緩沖隊列的過程Addbuf(type,number)。3、進(jìn)程申請緩沖區(qū)用的過程、進(jìn)程申請緩沖區(qū)用的過程Getbuf(type,number)。4、進(jìn)程將緩沖區(qū)插入到相應(yīng)緩沖區(qū)隊列的過程、進(jìn)程將緩沖區(qū)插入到相應(yīng)緩沖區(qū)隊列的過程Putbuf(type,workbuf)。Type: 緩沖隊列類型緩沖隊列類型 number: 緩沖區(qū)號緩沖區(qū)號 workbuf: 工作緩沖區(qū)類型工作緩沖區(qū)類型圖圖4-4 Getbuf4-4 Getbuf與與PutbufPutbuf流程圖流程圖Getbuf(type):P(S2(type)P(S1(type)按照type在相應(yīng)隊列上取隊
44、首緩沖區(qū)V(S1(type)Putbuf(type,num):P(S1(type)V(S1(type)V(S2(type)按照type將num號緩沖區(qū)掛到對應(yīng)緩沖隊列圖5.15& 設(shè)備分配技術(shù)設(shè)備分配技術(shù)設(shè)備依據(jù)使用特性可分為設(shè)備依據(jù)使用特性可分為共享設(shè)備技術(shù)、獨(dú)占設(shè)備技術(shù)和虛共享設(shè)備技術(shù)、獨(dú)占設(shè)備技術(shù)和虛擬設(shè)備技術(shù)擬設(shè)備技術(shù)。共享設(shè)備技術(shù)適用于可共享設(shè)備,獨(dú)占設(shè)備技。共享設(shè)備技術(shù)適用于可共享設(shè)備,獨(dú)占設(shè)備技術(shù)適用于可共享設(shè)備和獨(dú)占設(shè)備,虛擬設(shè)備技術(shù)適用于獨(dú)占術(shù)適用于可共享設(shè)備和獨(dú)占設(shè)備,虛擬設(shè)備技術(shù)適用于獨(dú)占設(shè)備。具體內(nèi)容如下:設(shè)備。具體內(nèi)容如下: 獨(dú)占設(shè)備技術(shù):獨(dú)占設(shè)備技術(shù):對獨(dú)享
45、設(shè)備,系統(tǒng)一般采用靜態(tài)分配方對獨(dú)享設(shè)備,系統(tǒng)一般采用靜態(tài)分配方式。即在一個作業(yè)執(zhí)行前,將它所需要使用的這類設(shè)備分配式。即在一個作業(yè)執(zhí)行前,將它所需要使用的這類設(shè)備分配給它,當(dāng)作業(yè)結(jié)束撤離時,才將分配給它的獨(dú)享設(shè)備收回。給它,當(dāng)作業(yè)結(jié)束撤離時,才將分配給它的獨(dú)享設(shè)備收回。 獨(dú)占設(shè)備每次只能分配給一個進(jìn)程使用,這種使用特性獨(dú)占設(shè)備每次只能分配給一個進(jìn)程使用,這種使用特性隱含著死鎖的必要條件,所以在考慮獨(dú)占設(shè)備的分配時,一隱含著死鎖的必要條件,所以在考慮獨(dú)占設(shè)備的分配時,一定要結(jié)合有關(guān)防止和避免死鎖的安全算法。定要結(jié)合有關(guān)防止和避免死鎖的安全算法。5.4 5.4 設(shè)備分配設(shè)備分配共享設(shè)備技術(shù):共享設(shè)
46、備技術(shù):對共享設(shè)備的分配一般采用動對共享設(shè)備的分配一般采用動態(tài)分配這一方式態(tài)分配這一方式 。在解決設(shè)備與在解決設(shè)備與CPUCPU的速度匹配問題上,為了使設(shè)的速度匹配問題上,為了使設(shè)備和備和CPUCPU的利用率達(dá)到最大程度,系統(tǒng)希望根據(jù)的利用率達(dá)到最大程度,系統(tǒng)希望根據(jù)每個設(shè)備的特征來全局調(diào)度設(shè)備的操作。每個設(shè)備的特征來全局調(diào)度設(shè)備的操作。 &常見的設(shè)備分配方法有兩種常見的設(shè)備分配方法有兩種1 1. .先來先服務(wù)先來先服務(wù)2 2. .優(yōu)先級高者優(yōu)先優(yōu)先級高者優(yōu)先虛擬設(shè)備技術(shù)虛擬設(shè)備技術(shù): :系統(tǒng)中的獨(dú)占設(shè)備是有限的,往往系統(tǒng)中的獨(dú)占設(shè)備是有限的,往往不能滿足諸多進(jìn)程的要求,會引起大量進(jìn)程
47、由于等不能滿足諸多進(jìn)程的要求,會引起大量進(jìn)程由于等待某些獨(dú)占設(shè)備而阻塞。另一方面,申請到獨(dú)占設(shè)待某些獨(dú)占設(shè)備而阻塞。另一方面,申請到獨(dú)占設(shè)備的進(jìn)程在其整個運(yùn)行期間雖然占有設(shè)備,利用率備的進(jìn)程在其整個運(yùn)行期間雖然占有設(shè)備,利用率卻常常很低,設(shè)備經(jīng)常處于空閑狀態(tài)。解決的辦法,卻常常很低,設(shè)備經(jīng)常處于空閑狀態(tài)。解決的辦法,就是就是用共享設(shè)備操作來模擬獨(dú)占設(shè)備的操作,以提用共享設(shè)備操作來模擬獨(dú)占設(shè)備的操作,以提高系統(tǒng)效率和設(shè)備利用率高系統(tǒng)效率和設(shè)備利用率。這種技術(shù)就稱為虛擬設(shè)。這種技術(shù)就稱為虛擬設(shè)備技術(shù),實(shí)現(xiàn)這一技術(shù)的軟、硬件系統(tǒng)被稱為假脫備技術(shù),實(shí)現(xiàn)這一技術(shù)的軟、硬件系統(tǒng)被稱為假脫機(jī)(機(jī)(Simul
48、taneous Peripheral Operation On Simultaneous Peripheral Operation On Line, SPOOLLine, SPOOL)系統(tǒng),又叫)系統(tǒng),又叫SPOOLingSPOOLing系統(tǒng)系統(tǒng). . 脫機(jī)輸入輸出技術(shù)脫機(jī)輸入輸出技術(shù)&為了解決人機(jī)矛盾及CPU和I/O設(shè)備間速度不匹配的矛盾,50年代末出現(xiàn)了該技術(shù)。&事先將裝有用戶程序和數(shù)據(jù)的紙帶(卡片)裝入紙帶輸入機(jī),在一臺外圍機(jī)的控制下把紙帶上的數(shù)據(jù)(程序)輸入到磁帶上。當(dāng)CPU需要這些數(shù)據(jù)時再從磁帶上高速的調(diào)入內(nèi)存。&類似的,當(dāng)CPU需要輸出時可由CPU直接高速的
49、把數(shù)據(jù)從內(nèi)存送到磁帶上,然后再在另一臺外圍機(jī)的控制下,將磁帶上的結(jié)果通過相應(yīng)的輸出設(shè)備輸出。輸入設(shè)備輸入設(shè)備外圍機(jī)外圍機(jī)磁盤磁盤磁盤磁盤磁盤磁盤外圍機(jī)外圍機(jī)主機(jī)主機(jī)磁盤磁盤輸出設(shè)備輸出設(shè)備由于程序和數(shù)據(jù)的輸入和輸出都是在外圍機(jī)的控制下完成的,由于程序和數(shù)據(jù)的輸入和輸出都是在外圍機(jī)的控制下完成的,或者說他們是在脫離主機(jī)的情況下進(jìn)行的,所以稱為脫機(jī)輸入或者說他們是在脫離主機(jī)的情況下進(jìn)行的,所以稱為脫機(jī)輸入輸出方式。輸出方式。圖圖5.16 脫機(jī)脫機(jī)I/O示意圖示意圖SPOOLingSPOOLing系統(tǒng)的組成:系統(tǒng)的組成: &(1)輸入井和輸出井:)輸入井和輸出井:&這是在磁盤上開辟出
50、來的兩個存儲區(qū)域。這是在磁盤上開辟出來的兩個存儲區(qū)域。&輸入井模擬脫機(jī)輸入時的磁盤,用于收容輸入井模擬脫機(jī)輸入時的磁盤,用于收容I/O設(shè)備輸入設(shè)備輸入的數(shù)據(jù)。輸出井模擬脫機(jī)輸出時的磁盤,用于收容用戶的數(shù)據(jù)。輸出井模擬脫機(jī)輸出時的磁盤,用于收容用戶程序的輸出數(shù)據(jù)程序的輸出數(shù)據(jù)。&(2)輸入緩沖區(qū)和輸出緩沖區(qū))輸入緩沖區(qū)和輸出緩沖區(qū):&這是在內(nèi)存中開辟的兩個緩沖取區(qū)。這是在內(nèi)存中開辟的兩個緩沖取區(qū)。&輸入緩沖區(qū)用于暫存由輸入設(shè)備送來的數(shù)據(jù),以后再輸入緩沖區(qū)用于暫存由輸入設(shè)備送來的數(shù)據(jù),以后再傳送到輸入井。輸出緩沖區(qū)用于暫存從輸出井送來的數(shù)傳送到輸入井。輸出緩沖區(qū)用于
51、暫存從輸出井送來的數(shù)據(jù),以后再傳送到輸出設(shè)備。據(jù),以后再傳送到輸出設(shè)備。& (3)輸入進(jìn)程和輸出進(jìn)程:)輸入進(jìn)程和輸出進(jìn)程:&輸入進(jìn)程模擬脫機(jī)輸入時的外圍控制機(jī),輸入進(jìn)程模擬脫機(jī)輸入時的外圍控制機(jī),將用戶要將用戶要求的數(shù)據(jù)從輸入機(jī)通過輸入緩沖區(qū)再送到輸入井。求的數(shù)據(jù)從輸入機(jī)通過輸入緩沖區(qū)再送到輸入井。當(dāng)當(dāng)CPU需要輸入數(shù)據(jù)時,直接從輸入井讀如內(nèi)存。需要輸入數(shù)據(jù)時,直接從輸入井讀如內(nèi)存。輸出進(jìn)程模擬脫機(jī)輸出時的外圍控制機(jī),輸出進(jìn)程模擬脫機(jī)輸出時的外圍控制機(jī),把用戶要把用戶要求輸出的數(shù)據(jù),先從內(nèi)存送到輸入井,待輸出設(shè)備求輸出的數(shù)據(jù),先從內(nèi)存送到輸入井,待輸出設(shè)備空閑時,再將輸出井中
52、的數(shù)據(jù)經(jīng)過輸出緩沖區(qū)送到空閑時,再將輸出井中的數(shù)據(jù)經(jīng)過輸出緩沖區(qū)送到輸出設(shè)備上。輸出設(shè)備上。 SPOOLingSPOOLing系統(tǒng)的組成如圖系統(tǒng)的組成如圖5.175.17所示所示。該系統(tǒng)必須有高速塊設(shè)。該系統(tǒng)必須有高速塊設(shè)備的支持,該高速塊設(shè)備通常是指磁盤。備的支持,該高速塊設(shè)備通常是指磁盤。SPOOLingSPOOLing技術(shù)需要在技術(shù)需要在磁盤上開辟兩個大的存儲空間,分別用作輸入井和輸出井。輸磁盤上開辟兩個大的存儲空間,分別用作輸入井和輸出井。輸入井模擬脫機(jī)輸入時的磁盤,收容從輸入設(shè)備輸入的數(shù)據(jù)。入井模擬脫機(jī)輸入時的磁盤,收容從輸入設(shè)備輸入的數(shù)據(jù)。 內(nèi)存內(nèi)存輸入進(jìn)程輸入進(jìn)程輸出進(jìn)程輸出進(jìn)程
53、輸入緩沖區(qū)輸入緩沖區(qū)輸出緩沖區(qū)輸出緩沖區(qū)磁盤磁盤輸入井輸入井輸出井輸出井輸入設(shè)備輸入設(shè)備輸出設(shè)備輸出設(shè)備圖圖5.17 SPOOLing5.17 SPOOLing系統(tǒng)的組成系統(tǒng)的組成例如:共享打印機(jī)例如:共享打印機(jī)&請求打印隊列請求打印隊列這是由若干張請求打印表所形成的隊列,這是由若干張請求打印表所形成的隊列,系統(tǒng)為每個請求打印的進(jìn)程建立一張請系統(tǒng)為每個請求打印的進(jìn)程建立一張請求打印表。求打印表。參見參見P190OS&設(shè)備分配設(shè)備分配 在計算機(jī)系統(tǒng)中,在計算機(jī)系統(tǒng)中,I/OI/O設(shè)備的數(shù)量是有限的。在多道程設(shè)備的數(shù)量是有限的。在多道程序環(huán)境中,用戶不能自行使用系統(tǒng)中的設(shè)備。進(jìn)程首
54、先需序環(huán)境中,用戶不能自行使用系統(tǒng)中的設(shè)備。進(jìn)程首先需要向設(shè)備管理程序提出申請,然后由要向設(shè)備管理程序提出申請,然后由設(shè)備分配程序設(shè)備分配程序按照一按照一定的分配算法給進(jìn)程分配必要的資源。如果進(jìn)程的申請沒定的分配算法給進(jìn)程分配必要的資源。如果進(jìn)程的申請沒有成功,就要在資源的等待隊列中排隊等待,直到獲得所有成功,就要在資源的等待隊列中排隊等待,直到獲得所需的資源。需的資源。 (1 1)設(shè)備管理的數(shù)據(jù)結(jié)構(gòu))設(shè)備管理的數(shù)據(jù)結(jié)構(gòu): :操作系統(tǒng)為了實(shí)現(xiàn)對設(shè)備的操作系統(tǒng)為了實(shí)現(xiàn)對設(shè)備的管理和分配,需要對每臺設(shè)備的情況進(jìn)行登記,即對所管管理和分配,需要對每臺設(shè)備的情況進(jìn)行登記,即對所管理的對象建立相應(yīng)的數(shù)據(jù)
55、結(jié)構(gòu),如設(shè)備控制表(理的對象建立相應(yīng)的數(shù)據(jù)結(jié)構(gòu),如設(shè)備控制表(DCTDCT)、控)、控制器控制表(制器控制表(COCTCOCT)、通道控制表()、通道控制表(CHCTCHCT)和系統(tǒng)設(shè)備表)和系統(tǒng)設(shè)備表(SDTSDT)。圖)。圖5-185-18給出了這些表的數(shù)據(jù)結(jié)構(gòu)。給出了這些表的數(shù)據(jù)結(jié)構(gòu)。 圖圖5.18 5.18 設(shè)備管理的數(shù)據(jù)結(jié)構(gòu)設(shè)備管理的數(shù)據(jù)結(jié)構(gòu)SDTSDT表項(xiàng)表項(xiàng)1 1表項(xiàng)表項(xiàng)i i設(shè)備類設(shè)備類設(shè)備標(biāo)識設(shè)備標(biāo)識驅(qū)動程序入口驅(qū)動程序入口DCTDCT指針指針DCTDCT設(shè)備類型設(shè)備類型設(shè)備狀態(tài)設(shè)備狀態(tài)COCTCOCT指針指針設(shè)備等待隊列設(shè)備等待隊列COCTCOCT控制器標(biāo)識控制器標(biāo)識控制器
56、狀態(tài)控制器狀態(tài)CHCTCHCT指針指針控制器等待隊列控制器等待隊列CHCTCHCT通道標(biāo)識通道標(biāo)識通道狀態(tài)通道狀態(tài)COCTCOCT指針指針通道等待隊列通道等待隊列設(shè)備、控制器、通道的等待隊列是由等待分配資源的進(jìn)程控制塊組成的,其組織方式可以按照先來先服(FCFS)的順序,也可以按照優(yōu)先級順序。&(2 2)設(shè)備分配的原則)設(shè)備分配的原則: :提高設(shè)備的利用率;避免不合理的分提高設(shè)備的利用率;避免不合理的分配方式造成的系統(tǒng)死鎖或系統(tǒng)工作紊亂。與進(jìn)程的調(diào)度相似,配方式造成的系統(tǒng)死鎖或系統(tǒng)工作紊亂。與進(jìn)程的調(diào)度相似,設(shè)備的分配也需要一定的策略,通常采用設(shè)備的分配也需要一定的策略,通常采用先來先
57、服務(wù)先來先服務(wù)(FCFSFCFS)和和優(yōu)先級高者優(yōu)先優(yōu)先級高者優(yōu)先等。等。獨(dú)占設(shè)備獨(dú)占設(shè)備每次只能分配給一個進(jìn)程使每次只能分配給一個進(jìn)程使用。虛擬設(shè)備的分配同共享設(shè)備。用。虛擬設(shè)備的分配同共享設(shè)備。設(shè)備分配設(shè)備分配 靜態(tài)分配靜態(tài)分配 : :動態(tài)分配動態(tài)分配 : :在用戶級進(jìn)行的,執(zhí)行之前,由系統(tǒng)一次在用戶級進(jìn)行的,執(zhí)行之前,由系統(tǒng)一次分配給該程序所需要的全部資源,分配給該程序所需要的全部資源,分配之分配之后,資源就一直為該程序所占用,直到執(zhí)后,資源就一直為該程序所占用,直到執(zhí)行完。該法無死鎖。行完。該法無死鎖。 在進(jìn)程執(zhí)行過程中根據(jù)執(zhí)行需要進(jìn)行設(shè)備在進(jìn)程執(zhí)行過程中根據(jù)執(zhí)行需要進(jìn)行設(shè)備分配。分配
58、。當(dāng)進(jìn)程需要設(shè)備時,通過當(dāng)進(jìn)程需要設(shè)備時,通過系統(tǒng)調(diào)用系統(tǒng)調(diào)用命令命令向系統(tǒng)提出設(shè)備請求,由系統(tǒng)按照事向系統(tǒng)提出設(shè)備請求,由系統(tǒng)按照事先規(guī)定的策略給進(jìn)程分配所需要的設(shè)備。先規(guī)定的策略給進(jìn)程分配所需要的設(shè)備。一旦用完,便立即釋放。一旦用完,便立即釋放。&I/OI/O軟件被組織成為一系列的層,即采用層次結(jié)構(gòu)。軟件被組織成為一系列的層,即采用層次結(jié)構(gòu)。&I/OI/O軟件一般分為四層軟件一般分為四層:中斷處理程序,設(shè)備驅(qū)動程序,獨(dú):中斷處理程序,設(shè)備驅(qū)動程序,獨(dú)立于設(shè)備的系統(tǒng)軟件以及用戶空間的立于設(shè)備的系統(tǒng)軟件以及用戶空間的I/OI/O軟件。軟件。從功能上看從功能上看,設(shè)備無關(guān)層是設(shè)備
59、無關(guān)層是I/OI/O管理的主要部分;管理的主要部分;從代碼量上看從代碼量上看,驅(qū)動層,驅(qū)動層是是I/OI/O管理的主要部分。管理的主要部分。各層之間的界面并不是死的,各層各層之間的界面并不是死的,各層之間的確切界面是依賴于具體系統(tǒng)的。之間的確切界面是依賴于具體系統(tǒng)的。 &I/OI/O軟件設(shè)計的一個關(guān)鍵目標(biāo)是軟件設(shè)計的一個關(guān)鍵目標(biāo)是設(shè)備獨(dú)立性設(shè)備獨(dú)立性。除了直接與設(shè)除了直接與設(shè)備打交道的低層軟件之外,其他部分的軟件不依賴于硬件。備打交道的低層軟件之外,其他部分的軟件不依賴于硬件。I/OI/O軟件獨(dú)立于設(shè)備,當(dāng)軟件獨(dú)立于設(shè)備,當(dāng)I/OI/O設(shè)備更新時,沒有必要重新編寫設(shè)備更新時,沒有必要重
60、新編寫全部設(shè)備軟件。在一些操作系統(tǒng)中,只要安裝了相應(yīng)的設(shè)備全部設(shè)備軟件。在一些操作系統(tǒng)中,只要安裝了相應(yīng)的設(shè)備驅(qū)動程序,就可以很方便地安裝好新的驅(qū)動程序,就可以很方便地安裝好新的I/OI/O設(shè)備。甚至不必設(shè)備。甚至不必重新編譯就能將設(shè)備管理程序移到別處執(zhí)行。重新編譯就能將設(shè)備管理程序移到別處執(zhí)行。 5.5 I/O軟件&I/O設(shè)備管理軟件一般分為四層:中斷處理程序,設(shè)備驅(qū)動程序,與設(shè)備無關(guān)的系統(tǒng)軟件以及用戶空間的I/O軟件。其中低層與硬件相關(guān),把硬件與較高層次的軟件隔離開來。而最高層軟件則向用戶提供一個友好的、統(tǒng)一的接口。 圖圖5.195.19總結(jié)了總結(jié)了I/OI/O系統(tǒng)軟件的層次。圖中的箭頭給出了系統(tǒng)軟件的層次。圖中的箭頭給出了I/OI/O部分部分的控制流。的控制流。 用戶空間軟件用戶空間軟件獨(dú)立于設(shè)備的系統(tǒng)軟件(設(shè)備獨(dú)立性軟件)獨(dú)立于設(shè)備的系統(tǒng)軟件(設(shè)備獨(dú)立性軟件)設(shè)備驅(qū)動程序設(shè)備驅(qū)動程序中斷處理程序中斷處理程序硬件硬件 圖圖5.19 I/O5.19 I/O系統(tǒng)的分層及各層的主要功能系統(tǒng)的分層及各層的主要功能 I/O I/O請求請求 I/O I/O回答回答5.5.1 中斷處理程序 1.1.中斷和中斷的分類中
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 公司設(shè)備租賃合同案例
- 游艇買賣合同模板
- 車輛租賃合同書70863
- 2024至2030年中國PMMA板數(shù)據(jù)監(jiān)測研究報告
- 質(zhì)押擔(dān)保協(xié)議
- 人工智能實(shí)訓(xùn)基地協(xié)議
- 交通信息化工程合同
- 倉儲基地租賃合同模板
- 代建合同范本撰寫指南
- 交通事故責(zé)任調(diào)解協(xié)議
- DBJ53-T-40-2011 云南省城鎮(zhèn)園林工程施工質(zhì)量驗(yàn)收規(guī)程
- 暈厥(課件)課件
- 江南藥王的傳奇課件
- 淺談博物館陳列從設(shè)計到布展-以大同市博物館為例
- 河北省保定市各縣區(qū)鄉(xiāng)鎮(zhèn)行政村村莊村名居民村民委員會明細(xì)及行政區(qū)劃代碼
- 非常規(guī)時段施工安全管理方案
- 如何培養(yǎng)農(nóng)村中學(xué)生自主學(xué)習(xí)的能力
- 單項(xiàng)式乘以單項(xiàng)式-完整版PPT
- 初中語文人教九年級上冊環(huán)境描寫的作用
- 三年級數(shù)學(xué)下冊課件-4.2 兩位數(shù)乘兩位數(shù)1-人教版(共11張PPT)
- 汽車數(shù)據(jù)安全管理合規(guī)清單
評論
0/150
提交評論