版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第六章輸入輸出系統(tǒng)6.1I/O系統(tǒng)系統(tǒng)的功能、模型和接口的功能、模型和接口6.2I/O設(shè)備和設(shè)備控制器設(shè)備和設(shè)備控制器6.3中斷機(jī)構(gòu)和中斷處理程序中斷機(jī)構(gòu)和中斷處理程序6.4設(shè)備驅(qū)動(dòng)程序設(shè)備驅(qū)動(dòng)程序6.5與設(shè)備無(wú)關(guān)的與設(shè)備無(wú)關(guān)的I/O軟件軟件6.6用戶層用戶層I/O軟件軟件6.7 緩沖區(qū)管理緩沖區(qū)管理6.8 磁盤存儲(chǔ)器的性能和調(diào)度磁盤存儲(chǔ)器的性能和調(diào)度6.1I/O系的系的功能、模型和功能、模型和接口接口6.1.1 I/O系統(tǒng)的基本功能1)隱藏物理設(shè)備的細(xì)節(jié))隱藏物理設(shè)備的細(xì)節(jié)2)與設(shè)備無(wú)關(guān)性)與設(shè)備無(wú)關(guān)性 用戶命令只需提供邏輯設(shè)備名用戶命令只需提供邏輯設(shè)備名3)提高處理機(jī)和)提高處理機(jī)和I/O
2、設(shè)備的利用率設(shè)備的利用率 盡可能讓盡可能讓CPU和和I/O設(shè)備并行操作設(shè)備并行操作4)對(duì))對(duì)I/O設(shè)備進(jìn)行控制設(shè)備進(jìn)行控制可編程可編程I/O,中斷中斷I/O,DMA,通道通道I/O5)確保對(duì)設(shè)備的正確共享)確保對(duì)設(shè)備的正確共享 獨(dú)占設(shè)備、共享設(shè)備獨(dú)占設(shè)備、共享設(shè)備6)錯(cuò)誤錯(cuò)誤處理處理 臨時(shí)性錯(cuò)誤:重新操作臨時(shí)性錯(cuò)誤:重新操作永久性錯(cuò)誤:向上層軟件報(bào)告永久性錯(cuò)誤:向上層軟件報(bào)告1.方便用戶使用方便用戶使用I/O設(shè)備設(shè)備2.提高提高CPU和和I/O設(shè)備利用率設(shè)備利用率3.方便用戶共享設(shè)備方便用戶共享設(shè)備 6.1.2 I/O系統(tǒng)的層次結(jié)構(gòu)和模型I/O軟件的目標(biāo):軟件的目標(biāo): 1 1) )解決解決由于
3、外部設(shè)備與由于外部設(shè)備與CPU速度不匹配所引起的問題,提高主速度不匹配所引起的問題,提高主機(jī)和外設(shè)的并行工作能力,提高系統(tǒng)機(jī)和外設(shè)的并行工作能力,提高系統(tǒng)效率效率 2) 2)方便用戶對(duì)方便用戶對(duì)設(shè)備的操作和設(shè)備的操作和管理管理1.I/O軟件的層次結(jié)構(gòu)軟件的層次結(jié)構(gòu)用戶層軟件設(shè)備獨(dú)立性軟件設(shè)備驅(qū)動(dòng)程序中斷處理程序硬件I/O應(yīng)答產(chǎn)生I/O請(qǐng)求、格式化I/O、Spooling映射、保護(hù)、分塊、緩沖、分配設(shè)置設(shè)備寄存器,檢查寄存器狀態(tài)執(zhí)行I/O操作(1) 用戶層軟件:實(shí)現(xiàn)與用戶交互的接口,用戶可直接調(diào)用戶層軟件:實(shí)現(xiàn)與用戶交互的接口,用戶可直接調(diào)用在用戶層提供的、與用在用戶層提供的、與I/O操作有關(guān)的
4、庫(kù)函數(shù),對(duì)設(shè)備進(jìn)操作有關(guān)的庫(kù)函數(shù),對(duì)設(shè)備進(jìn)行操作。行操作。 ( (2) 2) 設(shè)備獨(dú)立性軟件:負(fù)責(zé)實(shí)現(xiàn)與設(shè)備驅(qū)動(dòng)器的統(tǒng)一接設(shè)備獨(dú)立性軟件:負(fù)責(zé)實(shí)現(xiàn)與設(shè)備驅(qū)動(dòng)器的統(tǒng)一接口、設(shè)備命名、設(shè)備的保護(hù)以及設(shè)備的分配與釋放等,口、設(shè)備命名、設(shè)備的保護(hù)以及設(shè)備的分配與釋放等,同時(shí)為設(shè)備管理和數(shù)據(jù)傳送提供必要的存儲(chǔ)空間。同時(shí)為設(shè)備管理和數(shù)據(jù)傳送提供必要的存儲(chǔ)空間。( (3) 3) 設(shè)備驅(qū)動(dòng)程序:與設(shè)備驅(qū)動(dòng)程序:與硬件直接相關(guān)硬件直接相關(guān),負(fù)責(zé)具體實(shí)現(xiàn)系,負(fù)責(zé)具體實(shí)現(xiàn)系統(tǒng)對(duì)設(shè)備發(fā)出的操作指令,驅(qū)動(dòng)統(tǒng)對(duì)設(shè)備發(fā)出的操作指令,驅(qū)動(dòng)I/OI/O設(shè)備工作的驅(qū)動(dòng)程序。設(shè)備工作的驅(qū)動(dòng)程序。(4) 中斷處理程序:用于保存被中斷
5、進(jìn)程的中斷處理程序:用于保存被中斷進(jìn)程的CPU環(huán)境,轉(zhuǎn)環(huán)境,轉(zhuǎn)入相應(yīng)的中斷處理程序進(jìn)行處理,處理完后再恢復(fù)被中入相應(yīng)的中斷處理程序進(jìn)行處理,處理完后再恢復(fù)被中斷進(jìn)程的現(xiàn)場(chǎng)后返回到被中斷進(jìn)程斷進(jìn)程的現(xiàn)場(chǎng)后返回到被中斷進(jìn)程。2.I/O2.I/O系統(tǒng)中各種模塊之間的層次視圖系統(tǒng)中各種模塊之間的層次視圖1 1)I/OI/O系統(tǒng)的上下接口系統(tǒng)的上下接口 (1)I/O (1)I/O系統(tǒng)接口系統(tǒng)接口 (2)(2)軟硬件接口軟硬件接口 2)I/O系統(tǒng)分層系統(tǒng)分層6.1.3 I/O系統(tǒng)接口1.塊設(shè)備接口塊設(shè)備接口 1)塊設(shè)備:數(shù)據(jù)的存取和傳輸以)塊設(shè)備:數(shù)據(jù)的存取和傳輸以數(shù)據(jù)塊數(shù)據(jù)塊為單位,速度為單位,速度快可
6、尋址快可尋址 2)隱藏磁盤)隱藏磁盤二維結(jié)構(gòu)二維結(jié)構(gòu) 塊接口將磁盤扇區(qū)從塊接口將磁盤扇區(qū)從0到到n-1編號(hào)編號(hào) 3)將抽象命令映射為低層操作)將抽象命令映射為低層操作2.流設(shè)備接口流設(shè)備接口 1)字符設(shè)備:)字符設(shè)備:數(shù)據(jù)的存取和傳輸數(shù)據(jù)的存取和傳輸以以字符字符為為單位,單位,速度速度低不可尋址,多是低不可尋址,多是獨(dú)占設(shè)備需互斥共享獨(dú)占設(shè)備需互斥共享 2)用)用put,get操作進(jìn)行順序存取操作進(jìn)行順序存取 3)采用統(tǒng)一的)采用統(tǒng)一的in-control指令來(lái)管理字符設(shè)備指令來(lái)管理字符設(shè)備3.網(wǎng)絡(luò)通信接口網(wǎng)絡(luò)通信接口6.2 I/O設(shè)備和設(shè)備控制器6.2.16.2.1I/OI/O設(shè)備設(shè)備1 1
7、I/OI/O設(shè)備的類型設(shè)備的類型I/O設(shè)備的性能指標(biāo)設(shè)備的性能指標(biāo): 設(shè)備使用特性、數(shù)據(jù)傳輸速率、設(shè)備使用特性、數(shù)據(jù)傳輸速率、數(shù)據(jù)的傳輸單位、設(shè)備共享屬性等。數(shù)據(jù)的傳輸單位、設(shè)備共享屬性等。1)1)按設(shè)備的使用特性分類按設(shè)備的使用特性分類第一類第一類: :存儲(chǔ)設(shè)備存儲(chǔ)設(shè)備( (外存):存取速度慢,容量大價(jià)格外存):存取速度慢,容量大價(jià)格便宜。便宜。 第二類:輸入第二類:輸入/ /輸出設(shè)備:輸出設(shè)備: 輸入設(shè)備:用來(lái)接收外部信息,如鍵盤、鼠標(biāo)、掃輸入設(shè)備:用來(lái)接收外部信息,如鍵盤、鼠標(biāo)、掃描儀等。描儀等。 輸出設(shè)備:用于將計(jì)算機(jī)加工處理后的信息送向外輸出設(shè)備:用于將計(jì)算機(jī)加工處理后的信息送向外部
8、的設(shè)備,如打印機(jī)、繪圖儀等。部的設(shè)備,如打印機(jī)、繪圖儀等。 交互式設(shè)備:集成上述兩類設(shè)備,如顯示器交互式設(shè)備:集成上述兩類設(shè)備,如顯示器 2 2) )按傳輸速率分類按傳輸速率分類 低速低速設(shè)備設(shè)備:幾個(gè)字節(jié)至數(shù)百個(gè)字節(jié):幾個(gè)字節(jié)至數(shù)百個(gè)字節(jié)/S/S。如鍵盤、鼠。如鍵盤、鼠標(biāo)器、語(yǔ)音的輸入和輸出等設(shè)備。標(biāo)器、語(yǔ)音的輸入和輸出等設(shè)備。 中中速設(shè)備速設(shè)備:數(shù)千個(gè)字節(jié)至數(shù)十萬(wàn)個(gè)字節(jié):數(shù)千個(gè)字節(jié)至數(shù)十萬(wàn)個(gè)字節(jié)/S/S。如行式。如行式打印機(jī)、打印機(jī)、 激光打印機(jī)等。激光打印機(jī)等。 高速高速設(shè)備設(shè)備:數(shù)百個(gè)千字節(jié)至千兆字節(jié):數(shù)百個(gè)千字節(jié)至千兆字節(jié)/ /。如磁帶機(jī)、。如磁帶機(jī)、磁盤機(jī)、光盤機(jī)等。磁盤機(jī)、光盤機(jī)
9、等。 2 2設(shè)備與控制器之間的接口設(shè)備與控制器之間的接口緩沖轉(zhuǎn)換器控制邏輯信號(hào)數(shù)據(jù)數(shù)據(jù)信號(hào)線狀態(tài)信號(hào)線控制信號(hào)線至設(shè)備控制器I/O設(shè)備1 1) )數(shù)據(jù)信號(hào)線數(shù)據(jù)信號(hào)線用于用于在設(shè)備和設(shè)備控制器之間傳送數(shù)據(jù)信號(hào)。在設(shè)備和設(shè)備控制器之間傳送數(shù)據(jù)信號(hào)。2 2) )控制信號(hào)線控制信號(hào)線由由設(shè)備控制器向設(shè)備控制器向I/OI/O設(shè)備發(fā)送控制信號(hào)時(shí)的通路。設(shè)備發(fā)送控制信號(hào)時(shí)的通路。 規(guī)定規(guī)定了設(shè)備將要執(zhí)行的操作,如讀操作了設(shè)備將要執(zhí)行的操作,如讀操作( (指由設(shè)備向指由設(shè)備向控制器傳送數(shù)據(jù)控制器傳送數(shù)據(jù)) )或?qū)懖僮骰驅(qū)懖僮? (從控制器接收數(shù)據(jù)從控制器接收數(shù)據(jù)) ),或執(zhí),或執(zhí)行磁頭移動(dòng)等操作。行磁頭移動(dòng)
10、等操作。3 3) )狀態(tài)信號(hào)線狀態(tài)信號(hào)線 用于用于傳送指示設(shè)備當(dāng)前狀態(tài)的信號(hào)。傳送指示設(shè)備當(dāng)前狀態(tài)的信號(hào)。 設(shè)備設(shè)備的當(dāng)前狀態(tài)有正在讀的當(dāng)前狀態(tài)有正在讀(或?qū)懟驅(qū)?;設(shè)備已讀;設(shè)備已讀(寫寫)完成,完成,并準(zhǔn)備好新的數(shù)據(jù)傳送。并準(zhǔn)備好新的數(shù)據(jù)傳送。 6.2.26.2.2設(shè)備控制器設(shè)備控制器1 1設(shè)備控制器的基本功能設(shè)備控制器的基本功能 1 1) ) 接收和識(shí)別命令接收和識(shí)別命令CPU可以向控制器發(fā)送多種不同的命令,設(shè)備控制可以向控制器發(fā)送多種不同的命令,設(shè)備控制器應(yīng)能接收并識(shí)別這些命令器應(yīng)能接收并識(shí)別這些命令??刂萍拇嫫鳎河脕?lái)控制寄存器:用來(lái)存放接收的命令和參數(shù),并存放接收的命令和參數(shù),并對(duì)其
11、命令對(duì)其命令進(jìn)行譯碼進(jìn)行譯碼。 2) 2) 數(shù)據(jù)交換數(shù)據(jù)交換CPUCPU與控制器之間、控制器與設(shè)備之間的數(shù)據(jù)交換。與控制器之間、控制器與設(shè)備之間的數(shù)據(jù)交換。在控制器中須設(shè)置數(shù)據(jù)寄存器。在控制器中須設(shè)置數(shù)據(jù)寄存器。 3 3) ) 標(biāo)識(shí)和報(bào)告設(shè)備的狀態(tài)標(biāo)識(shí)和報(bào)告設(shè)備的狀態(tài)控制器應(yīng)記下設(shè)備的狀態(tài)供控制器應(yīng)記下設(shè)備的狀態(tài)供CPUCPU了解了解。 狀態(tài)寄存器:反映設(shè)備的某一種狀態(tài)。狀態(tài)寄存器:反映設(shè)備的某一種狀態(tài)。 4) 4) 地址識(shí)別地址識(shí)別系統(tǒng)中的每一個(gè)設(shè)備都有一個(gè)地址,設(shè)備控制器必系統(tǒng)中的每一個(gè)設(shè)備都有一個(gè)地址,設(shè)備控制器必須能夠識(shí)別它所控制的每個(gè)設(shè)備的地址。須能夠識(shí)別它所控制的每個(gè)設(shè)備的地址。
12、在控制器中應(yīng)配置地址譯碼器。在控制器中應(yīng)配置地址譯碼器。 5 5) ) 數(shù)據(jù)緩沖數(shù)據(jù)緩沖I/OI/O設(shè)備的速率較低而設(shè)備的速率較低而CPUCPU和內(nèi)存的和內(nèi)存的速率高速率高,故在控,故在控制器中必須設(shè)置一緩沖器制器中必須設(shè)置一緩沖器。 輸出輸出: :緩沖器緩沖器暫存由主機(jī)高速傳來(lái)的暫存由主機(jī)高速傳來(lái)的數(shù)據(jù);數(shù)據(jù); 輸入輸入: :暫暫存從存從I/OI/O設(shè)備送來(lái)的數(shù)據(jù),待接收到一批數(shù)設(shè)備送來(lái)的數(shù)據(jù),待接收到一批數(shù)據(jù)后,據(jù)后,再高速再高速地傳送給主機(jī)。地傳送給主機(jī)。 6 6) ) 差錯(cuò)控制差錯(cuò)控制對(duì)對(duì)由由I/OI/O設(shè)備傳送來(lái)的數(shù)據(jù)進(jìn)行差錯(cuò)檢測(cè)設(shè)備傳送來(lái)的數(shù)據(jù)進(jìn)行差錯(cuò)檢測(cè)。 若若發(fā)現(xiàn)傳送中出現(xiàn)了錯(cuò)
13、誤發(fā)現(xiàn)傳送中出現(xiàn)了錯(cuò)誤,CPUCPU報(bào)告報(bào)告,重新傳送。,重新傳送。2 2設(shè)備控制器的組成設(shè)備控制器的組成 1 1) ) 設(shè)備控制器與處理機(jī)的接口設(shè)備控制器與處理機(jī)的接口用于用于實(shí)現(xiàn)實(shí)現(xiàn)CPU與設(shè)備控制器之間的通信與設(shè)備控制器之間的通信。 共有共有三類信號(hào)線三類信號(hào)線: : 數(shù)據(jù)線、地址線和控制線數(shù)據(jù)線、地址線和控制線。 數(shù)據(jù)線數(shù)據(jù)線: :傳輸數(shù)據(jù)和設(shè)備狀態(tài)信息傳輸數(shù)據(jù)和設(shè)備狀態(tài)信息 地址線:傳送給地址線:傳送給I/OI/O邏輯進(jìn)行地址譯碼邏輯進(jìn)行地址譯碼 控制線:傳送控制命令控制線:傳送控制命令 2 2) ) 設(shè)備控制器與設(shè)備的接口設(shè)備控制器與設(shè)備的接口在在一個(gè)設(shè)備控制器一個(gè)設(shè)備控制器上可以
14、上可以連接一個(gè)或多個(gè)設(shè)備連接一個(gè)或多個(gè)設(shè)備。 控制器控制器中便有一個(gè)或多個(gè)設(shè)備接口,一個(gè)接口連接一中便有一個(gè)或多個(gè)設(shè)備接口,一個(gè)接口連接一臺(tái)設(shè)備臺(tái)設(shè)備。 每個(gè)每個(gè)接口中都存在接口中都存在數(shù)據(jù)、控制和狀態(tài)數(shù)據(jù)、控制和狀態(tài)三種類型的信號(hào)三種類型的信號(hào)。 控制器控制器中的中的I/OI/O邏輯根據(jù)處理機(jī)發(fā)來(lái)的地址信號(hào)去選擇邏輯根據(jù)處理機(jī)發(fā)來(lái)的地址信號(hào)去選擇一個(gè)設(shè)備接口。一個(gè)設(shè)備接口。 3 3) I/O) I/O邏輯邏輯用于用于實(shí)現(xiàn)對(duì)設(shè)備的控制實(shí)現(xiàn)對(duì)設(shè)備的控制。 通過(guò)通過(guò)一組控制線與處理機(jī)一組控制線與處理機(jī)交互:交互: (1) (1)處理機(jī)利用處理機(jī)利用該邏輯向控制器發(fā)送該邏輯向控制器發(fā)送I/O命令命令
15、; (2) (2)I/O邏輯對(duì)收到的命令進(jìn)行譯碼邏輯對(duì)收到的命令進(jìn)行譯碼。6.2.3 6.2.3 內(nèi)存映像內(nèi)存映像I/OI/O數(shù)據(jù)寄存器控制/狀態(tài)寄存器數(shù)據(jù)線I/O邏輯控制器與設(shè)備接口1控制器與設(shè)備接口i數(shù)據(jù)狀態(tài)控制數(shù)據(jù)狀態(tài)控制地址線控制線CPU與控制器接口控制器與設(shè)備接口6.2.46.2.4I/OI/O通道通道 1 1I/OI/O通道通道(I/O Channel)(I/O Channel)設(shè)備的引入設(shè)備的引入 在在CPU和設(shè)備控制器之間又增設(shè)了和設(shè)備控制器之間又增設(shè)了通道其通道其主要主要目的:目的:建立建立獨(dú)立的獨(dú)立的I/O操作,使操作,使一些原來(lái)由一些原來(lái)由CPU處理的處理的I/O任務(wù)任務(wù)
16、轉(zhuǎn)由通道來(lái)轉(zhuǎn)由通道來(lái)承擔(dān)承擔(dān)進(jìn)一步進(jìn)一步把把CPU從繁雜的從繁雜的I/O任務(wù)中解脫任務(wù)中解脫出來(lái)出來(lái)。 設(shè)置設(shè)置了通道后,了通道后,CPU只需向通道發(fā)送一條只需向通道發(fā)送一條I/O指令。指令。通道在收到該指令后,便從內(nèi)存中取出本次要執(zhí)行的通通道在收到該指令后,便從內(nèi)存中取出本次要執(zhí)行的通道程序,然后執(zhí)行該通道程序,僅當(dāng)通道完成了規(guī)定的道程序,然后執(zhí)行該通道程序,僅當(dāng)通道完成了規(guī)定的I/O任務(wù)后,才向任務(wù)后,才向CPU發(fā)中斷信號(hào)。發(fā)中斷信號(hào)。 I/O通道是一種特殊的通道是一種特殊的處理機(jī):能處理機(jī):能執(zhí)行執(zhí)行I/O指令,并指令,并通過(guò)通道通過(guò)通道(I/O)程序來(lái)控制程序來(lái)控制I/O操作操作。 但
17、但I(xiàn)/O通道又與一般的處理機(jī)通道又與一般的處理機(jī)不同不同: 1. 1.指令類型指令類型單一單一,主要,主要局限于與局限于與I/O操作有關(guān)的指令操作有關(guān)的指令; 2. 2. 通道通道沒有自己的內(nèi)存沒有自己的內(nèi)存,通道,通道與與CPU共享內(nèi)存共享內(nèi)存。2 2通道類型通道類型1) 1) 字節(jié)多路通道字節(jié)多路通道(Byte Multiplexor Channel)(Byte Multiplexor Channel)按字節(jié)交叉方式工作,通常含有許多按字節(jié)交叉方式工作,通常含有許多非分配型子通非分配型子通道,道,這些子通道這些子通道按時(shí)間片輪轉(zhuǎn)按時(shí)間片輪轉(zhuǎn)方式共享主通道。不適于方式共享主通道。不適于連接高
18、速設(shè)備。連接高速設(shè)備??刂破鰽控制器B控制器C控制器D控制器NA1A2A3子通道AB1B2B3子通道BC1C2C3子通道CN1N2N3子通道NA1B1C1A2B2C2設(shè)備 2 2) ) 數(shù)組選擇通道數(shù)組選擇通道(Block Selector Channel)(Block Selector Channel) 數(shù)據(jù)傳送是按數(shù)據(jù)傳送是按數(shù)組數(shù)組方式進(jìn)行。方式進(jìn)行。 用于連接用于連接多臺(tái)高速設(shè)備,多臺(tái)高速設(shè)備,但只但只含有含有一個(gè)分配型子一個(gè)分配型子通通道:道:在在一段時(shí)間內(nèi)只能執(zhí)行一道通道一段時(shí)間內(nèi)只能執(zhí)行一道通道程序,某程序,某臺(tái)設(shè)備占臺(tái)設(shè)備占用了該通道后,便一直由它獨(dú)占,即使是它無(wú)數(shù)據(jù)傳送,用了
19、該通道后,便一直由它獨(dú)占,即使是它無(wú)數(shù)據(jù)傳送,通道被閑置,也不允許其它設(shè)備使用該通道,直至該設(shè)通道被閑置,也不允許其它設(shè)備使用該通道,直至該設(shè)備傳送完畢釋放該通道備傳送完畢釋放該通道。通道利用率。通道利用率很低很低。 3 3) ) 數(shù)組多路通道數(shù)組多路通道(Block Multiplexor Channel)(Block Multiplexor Channel)采用多路復(fù)用技術(shù),含有采用多路復(fù)用技術(shù),含有多個(gè)非分配型子通道多個(gè)非分配型子通道,既,既具有很高的數(shù)據(jù)傳輸速率,又能獲得令人滿意的通道利具有很高的數(shù)據(jù)傳輸速率,又能獲得令人滿意的通道利用率用率。 廣泛廣泛地用于連接多臺(tái)高、中速的地用于連
20、接多臺(tái)高、中速的外圍設(shè)備。外圍設(shè)備。 3 3“瓶頸瓶頸”問題問題解決解決“瓶頸瓶頸”問題的最有效的方法:增加設(shè)備到主問題的最有效的方法:增加設(shè)備到主機(jī)間的通路而不增加通道機(jī)間的通路而不增加通道設(shè)備1設(shè)備2設(shè)備3設(shè)備4設(shè)備5設(shè)備6設(shè)備7控制器1控制器2控制器3控制器4通道1通道2存儲(chǔ)器I/O設(shè)備控制器1控制器2通道1通道2存儲(chǔ)器I/O設(shè)備I/O設(shè)備I/O設(shè)備6.3 中斷機(jī)構(gòu)和中斷處理程序6.3.1 中斷簡(jiǎn)介中斷簡(jiǎn)介1.中斷和陷入中斷和陷入 1)中斷:)中斷:CPU對(duì)對(duì)I/O設(shè)備發(fā)來(lái)的中斷信號(hào)的一種響應(yīng)。設(shè)備發(fā)來(lái)的中斷信號(hào)的一種響應(yīng)。是由外部設(shè)備引起的,又稱外中斷。是由外部設(shè)備引起的,又稱外中斷。
21、 2)陷入:由)陷入:由CPU內(nèi)部事件引起的中斷如非法指令、地內(nèi)部事件引起的中斷如非法指令、地址越界等。又稱內(nèi)中斷。址越界等。又稱內(nèi)中斷。2.中斷向量表和中斷優(yōu)先級(jí)中斷向量表和中斷優(yōu)先級(jí) 1)中斷向量表:記錄中斷號(hào)及對(duì)應(yīng)的中斷處理程序入)中斷向量表:記錄中斷號(hào)及對(duì)應(yīng)的中斷處理程序入口地址口地址 2)中斷優(yōu)先級(jí):磁盤中斷,打印機(jī),鍵盤)中斷優(yōu)先級(jí):磁盤中斷,打印機(jī),鍵盤3.對(duì)多中斷源處理方式對(duì)多中斷源處理方式 1)屏蔽中斷)屏蔽中斷 2)嵌套中斷)嵌套中斷6.3.26.3.2中斷處理程序中斷處理程序 1 1測(cè)試是否有未響應(yīng)的中斷信號(hào)測(cè)試是否有未響應(yīng)的中斷信號(hào)CPUCPU執(zhí)行完當(dāng)前指令后要測(cè)試是否
22、有未響應(yīng)的中斷執(zhí)行完當(dāng)前指令后要測(cè)試是否有未響應(yīng)的中斷信號(hào),若無(wú)則執(zhí)行下個(gè)指令,否則停止當(dāng)前進(jìn)程執(zhí)行轉(zhuǎn)信號(hào),若無(wú)則執(zhí)行下個(gè)指令,否則停止當(dāng)前進(jìn)程執(zhí)行轉(zhuǎn)去執(zhí)行中斷處理程序。去執(zhí)行中斷處理程序。 2. 2. 保護(hù)被中斷進(jìn)程的保護(hù)被中斷進(jìn)程的CPUCPU環(huán)境環(huán)境由由硬件自動(dòng)將處理機(jī)狀態(tài)字硬件自動(dòng)將處理機(jī)狀態(tài)字PSWPSW和程序計(jì)數(shù)器和程序計(jì)數(shù)器(PC)(PC)中的內(nèi)容,保存在中斷保留區(qū)中的內(nèi)容,保存在中斷保留區(qū)( (棧棧) )中。中。PSW程序狀態(tài)字PC(N1)程序計(jì)數(shù)器R0Rn寄存器開始返回用戶程序中斷服務(wù)子例程PSWPC(N1)中斷棧TTM線指針YNN1R0Rn3 3轉(zhuǎn)入相應(yīng)的設(shè)備處理程序轉(zhuǎn)入相
23、應(yīng)的設(shè)備處理程序 由由處理機(jī)對(duì)各個(gè)中斷源進(jìn)行測(cè)試,以處理機(jī)對(duì)各個(gè)中斷源進(jìn)行測(cè)試,以確定引起本次確定引起本次中斷的中斷的I/O設(shè)備設(shè)備,然后,然后將將相應(yīng)的設(shè)備中斷處理程序的入相應(yīng)的設(shè)備中斷處理程序的入口地址口地址裝入到程序計(jì)數(shù)器中裝入到程序計(jì)數(shù)器中,轉(zhuǎn)向,轉(zhuǎn)向中斷處理程序中斷處理程序。4 4中斷處理中斷處理 不同設(shè)備有不同設(shè)備有不同的中斷處理程序不同的中斷處理程序。 首先判別中斷首先判別中斷是正常完成是正常完成中斷還是中斷還是異常結(jié)束中斷異常結(jié)束中斷。 若是若是前者,中斷程序便進(jìn)行結(jié)束處理前者,中斷程序便進(jìn)行結(jié)束處理; 若是若是異常結(jié)束中斷,則根據(jù)發(fā)生異常的原因做相應(yīng)異常結(jié)束中斷,則根據(jù)發(fā)生異
24、常的原因做相應(yīng)的處理。的處理。 5 5恢復(fù)被中斷進(jìn)程的現(xiàn)場(chǎng)恢復(fù)被中斷進(jìn)程的現(xiàn)場(chǎng) 將將保存在中斷棧中的被中斷進(jìn)程的現(xiàn)場(chǎng)信息取出,保存在中斷棧中的被中斷進(jìn)程的現(xiàn)場(chǎng)信息取出,并裝入到相應(yīng)的寄存器并裝入到相應(yīng)的寄存器中,包括中,包括該程序下一次要執(zhí)行的該程序下一次要執(zhí)行的指令的地址指令的地址N+1N+1、處理機(jī)狀態(tài)字、處理機(jī)狀態(tài)字PSWPSW。 處理機(jī)處理機(jī)再執(zhí)行本程序時(shí),便從再執(zhí)行本程序時(shí),便從N+1N+1處開始,最終返回處開始,最終返回到被中斷的程序。到被中斷的程序。 喚醒被阻塞的驅(qū)動(dòng)程序進(jìn)程對(duì)被中斷進(jìn)程的CPU環(huán)境進(jìn)行保護(hù)分析中斷原因,轉(zhuǎn)入相應(yīng)的中斷處理程序終端中斷處理程序打印機(jī)中斷處理程序磁盤
25、中斷處理程序恢復(fù)被中斷進(jìn)程的CPU現(xiàn)場(chǎng)返回被中斷的進(jìn)程,繼續(xù)執(zhí)行中斷請(qǐng)求信號(hào)6.4 設(shè)備驅(qū)動(dòng)程序6.4.1 設(shè)備驅(qū)動(dòng)程序概述設(shè)備驅(qū)動(dòng)程序概述(設(shè)備處理程序)設(shè)備處理程序) 是是I/O進(jìn)程進(jìn)程與與設(shè)備控制器設(shè)備控制器之間的通信程序之間的通信程序,常,常以以進(jìn)程的形式存在,進(jìn)程的形式存在,故簡(jiǎn)稱故簡(jiǎn)稱設(shè)備設(shè)備驅(qū)動(dòng)進(jìn)程驅(qū)動(dòng)進(jìn)程。 主要任務(wù):主要任務(wù): 1. 1.接收接收上層軟件發(fā)來(lái)的抽象上層軟件發(fā)來(lái)的抽象I/O要求要求,轉(zhuǎn)換,轉(zhuǎn)換為具為具體要求體要求后發(fā)送后發(fā)送給設(shè)備控制器,啟動(dòng)設(shè)備去執(zhí)行給設(shè)備控制器,啟動(dòng)設(shè)備去執(zhí)行; 2. 2.將將由設(shè)備控制器發(fā)來(lái)的信號(hào)傳送給上層軟件。由設(shè)備控制器發(fā)來(lái)的信號(hào)傳送給
26、上層軟件。 1 1. .設(shè)備驅(qū)動(dòng)程序設(shè)備驅(qū)動(dòng)程序的功能的功能 ( (1) 1) 接收由接收由設(shè)備獨(dú)立性軟件設(shè)備獨(dú)立性軟件發(fā)來(lái)的命令和參數(shù),并將發(fā)來(lái)的命令和參數(shù),并將命令中的命令中的抽象要求轉(zhuǎn)換為具體要求抽象要求轉(zhuǎn)換為具體要求,例如,將磁盤塊號(hào)轉(zhuǎn),例如,將磁盤塊號(hào)轉(zhuǎn)換為磁盤的盤面、磁道號(hào)及扇區(qū)號(hào)。換為磁盤的盤面、磁道號(hào)及扇區(qū)號(hào)。 ( (2) 2) 檢查用戶檢查用戶I/OI/O請(qǐng)求的合法性請(qǐng)求的合法性,了解,了解I/OI/O設(shè)備的狀態(tài),設(shè)備的狀態(tài),傳遞有關(guān)參數(shù),設(shè)置設(shè)備的工作方式。傳遞有關(guān)參數(shù),設(shè)置設(shè)備的工作方式。 (3) 發(fā)出發(fā)出I/O命令命令。若設(shè)備空閑立即啟動(dòng)完成操作;若。若設(shè)備空閑立即啟動(dòng)
27、完成操作;若忙則忙則將請(qǐng)求者的請(qǐng)求塊掛在設(shè)備隊(duì)列上等待。將請(qǐng)求者的請(qǐng)求塊掛在設(shè)備隊(duì)列上等待。 ( (4 4) )及時(shí)及時(shí)響應(yīng)由控制器或通道發(fā)來(lái)的中斷請(qǐng)求,并根據(jù)響應(yīng)由控制器或通道發(fā)來(lái)的中斷請(qǐng)求,并根據(jù)其中斷類型調(diào)用相應(yīng)的中斷處理程序進(jìn)行處理。其中斷類型調(diào)用相應(yīng)的中斷處理程序進(jìn)行處理。補(bǔ):補(bǔ):( (5 5) )對(duì)于對(duì)于設(shè)置有通道的計(jì)算機(jī)系統(tǒng),驅(qū)動(dòng)程序還設(shè)置有通道的計(jì)算機(jī)系統(tǒng),驅(qū)動(dòng)程序還應(yīng)能夠根據(jù)用戶的應(yīng)能夠根據(jù)用戶的I/OI/O請(qǐng)求,自動(dòng)地構(gòu)成通道程序。請(qǐng)求,自動(dòng)地構(gòu)成通道程序。 2.設(shè)備驅(qū)動(dòng)程序的特點(diǎn)(了)設(shè)備驅(qū)動(dòng)程序的特點(diǎn)(了) 3.設(shè)備處理方式(了)設(shè)備處理方式(了) 1)為每一類設(shè)備設(shè)置
28、一個(gè)進(jìn)程,專門執(zhí)行這一類設(shè)備的)為每一類設(shè)備設(shè)置一個(gè)進(jìn)程,專門執(zhí)行這一類設(shè)備的I/O操作操作 2)整個(gè)系統(tǒng)設(shè)置一個(gè))整個(gè)系統(tǒng)設(shè)置一個(gè)I/O進(jìn)程,專門執(zhí)行所有各類設(shè)備的進(jìn)程,專門執(zhí)行所有各類設(shè)備的I/O操作操作 3)只為各類設(shè)備設(shè)置相應(yīng))只為各類設(shè)備設(shè)置相應(yīng)驅(qū)動(dòng)程序驅(qū)動(dòng)程序6.46.42 2 設(shè)備驅(qū)動(dòng)程序設(shè)備驅(qū)動(dòng)程序的處理過(guò)程的處理過(guò)程不同類型的設(shè)備應(yīng)有不同的不同類型的設(shè)備應(yīng)有不同的設(shè)備驅(qū)動(dòng)程序。設(shè)備驅(qū)動(dòng)程序。 大體上分成大體上分成兩兩部分:部分: 1 1)驅(qū)動(dòng))驅(qū)動(dòng)I/OI/O設(shè)備工作的設(shè)備工作的驅(qū)動(dòng)程序;驅(qū)動(dòng)程序; 2 2)設(shè)備)設(shè)備中斷處理程序,以處理中斷處理程序,以處理I/OI/O完成后
29、的工作。完成后的工作。設(shè)備驅(qū)動(dòng)程序的主要任務(wù)是設(shè)備驅(qū)動(dòng)程序的主要任務(wù)是啟動(dòng)指定設(shè)備啟動(dòng)指定設(shè)備。但在啟。但在啟動(dòng)之前,還必須完成必要的準(zhǔn)備工作,如檢測(cè)設(shè)備狀態(tài)動(dòng)之前,還必須完成必要的準(zhǔn)備工作,如檢測(cè)設(shè)備狀態(tài)是否為是否為“忙忙”等。在完成所有的準(zhǔn)備工作后,才最后向等。在完成所有的準(zhǔn)備工作后,才最后向設(shè)備控制器發(fā)送一條啟動(dòng)命令。設(shè)備控制器發(fā)送一條啟動(dòng)命令。 1 1) ) 將抽象要求轉(zhuǎn)換為具體要求將抽象要求轉(zhuǎn)換為具體要求通常在每個(gè)設(shè)備控制器中都含有通常在每個(gè)設(shè)備控制器中都含有若干個(gè)寄存器,分若干個(gè)寄存器,分別用于暫存命令、數(shù)據(jù)和參數(shù)等別用于暫存命令、數(shù)據(jù)和參數(shù)等。 例如例如,將抽象要求中的盤塊號(hào)轉(zhuǎn)換
30、為磁盤的盤面、,將抽象要求中的盤塊號(hào)轉(zhuǎn)換為磁盤的盤面、 磁道號(hào)及扇區(qū)。這一轉(zhuǎn)換工作只能由驅(qū)動(dòng)程序來(lái)完成磁道號(hào)及扇區(qū)。這一轉(zhuǎn)換工作只能由驅(qū)動(dòng)程序來(lái)完成, 在在OS中只有驅(qū)動(dòng)程序才同時(shí)了解抽象要求和設(shè)備中只有驅(qū)動(dòng)程序才同時(shí)了解抽象要求和設(shè)備控制器中的寄存器情況;也只有它才知道命令、控制器中的寄存器情況;也只有它才知道命令、 數(shù)據(jù)數(shù)據(jù)和參數(shù)應(yīng)分別送往哪個(gè)寄存器。和參數(shù)應(yīng)分別送往哪個(gè)寄存器。 2 2) ) 檢查檢查I/OI/O請(qǐng)求的合法性請(qǐng)求的合法性對(duì)于任何輸入設(shè)備,都是只能完成一組特定的功能,對(duì)于任何輸入設(shè)備,都是只能完成一組特定的功能,若該設(shè)備不支持這次的若該設(shè)備不支持這次的I/OI/O請(qǐng)求,則認(rèn)
31、為這次請(qǐng)求,則認(rèn)為這次I/OI/O請(qǐng)求非請(qǐng)求非法法。系統(tǒng)。系統(tǒng)應(yīng)予以拒絕應(yīng)予以拒絕。 3 3) ) 讀出和檢查設(shè)備的狀態(tài)讀出和檢查設(shè)備的狀態(tài)在啟動(dòng)某個(gè)設(shè)備進(jìn)行在啟動(dòng)某個(gè)設(shè)備進(jìn)行I/OI/O操作時(shí),其前提條件應(yīng)是操作時(shí),其前提條件應(yīng)是該設(shè)備正處于空閑狀態(tài)。否則只能等待。該設(shè)備正處于空閑狀態(tài)。否則只能等待。 4) 4) 傳送必要的參數(shù)傳送必要的參數(shù)例如例如在啟動(dòng)磁盤進(jìn)行讀在啟動(dòng)磁盤進(jìn)行讀/ /寫之前,應(yīng)先將本次要傳寫之前,應(yīng)先將本次要傳送的字節(jié)數(shù)和數(shù)據(jù)應(yīng)到達(dá)的主存始址,送入控制器的相送的字節(jié)數(shù)和數(shù)據(jù)應(yīng)到達(dá)的主存始址,送入控制器的相應(yīng)寄存器中。應(yīng)寄存器中。5) 5) 工作方式的設(shè)置工作方式的設(shè)置有些
32、設(shè)備可具有多種工作方式,典型情況是利用有些設(shè)備可具有多種工作方式,典型情況是利用RS-232RS-232接口進(jìn)行異步通信。在啟動(dòng)該接口之前,應(yīng)先按接口進(jìn)行異步通信。在啟動(dòng)該接口之前,應(yīng)先按通信規(guī)程設(shè)定參數(shù):波特率、奇偶校驗(yàn)方式、停止位數(shù)通信規(guī)程設(shè)定參數(shù):波特率、奇偶校驗(yàn)方式、停止位數(shù)目及數(shù)據(jù)字節(jié)長(zhǎng)度等。目及數(shù)據(jù)字節(jié)長(zhǎng)度等。 6) 6) 啟動(dòng)啟動(dòng)I/OI/O設(shè)備設(shè)備在完成上述各項(xiàng)準(zhǔn)備工作之后,驅(qū)動(dòng)程序可以向控在完成上述各項(xiàng)準(zhǔn)備工作之后,驅(qū)動(dòng)程序可以向控制器中的命令寄存器傳送相應(yīng)的控制命令制器中的命令寄存器傳送相應(yīng)的控制命令。驅(qū)動(dòng)程序發(fā)出驅(qū)動(dòng)程序發(fā)出I/OI/O命令后,基本的命令后,基本的I/OI
33、/O操作是在設(shè)備操作是在設(shè)備控制器的控制下進(jìn)行的控制器的控制下進(jìn)行的。 此時(shí)此時(shí)驅(qū)動(dòng)驅(qū)動(dòng)( (程序程序) )進(jìn)程把自己阻塞起來(lái),直到中斷到進(jìn)程把自己阻塞起來(lái),直到中斷到來(lái)時(shí)才將它喚醒。來(lái)時(shí)才將它喚醒。 6.4.3I/O控制方式控制方式 1 1. .程序程序I/OI/O方式方式早期無(wú)早期無(wú)中斷機(jī)構(gòu),處理機(jī)對(duì)中斷機(jī)構(gòu),處理機(jī)對(duì)I/O設(shè)備的控制采取程序設(shè)備的控制采取程序I/O方式方式,或稱為,或稱為忙忙等待等待方式方式: :處理機(jī)處理機(jī)向控制器發(fā)出一向控制器發(fā)出一條條I/O指令啟動(dòng)輸入設(shè)備輸入數(shù)據(jù)時(shí)指令啟動(dòng)輸入設(shè)備輸入數(shù)據(jù)時(shí),把,把狀態(tài)寄存器中的狀態(tài)寄存器中的忙忙/閑標(biāo)志閑標(biāo)志busy置為置為1,然
34、后不斷然后不斷地循環(huán)測(cè)試地循環(huán)測(cè)試busy。 當(dāng)當(dāng)busy=1時(shí),表示輸入機(jī)尚未輸完一個(gè)字時(shí),表示輸入機(jī)尚未輸完一個(gè)字(符符),處理,處理機(jī)應(yīng)繼續(xù)對(duì)該標(biāo)志進(jìn)行機(jī)應(yīng)繼續(xù)對(duì)該標(biāo)志進(jìn)行測(cè)試測(cè)試; ; 當(dāng)當(dāng)busy=0,表明輸入機(jī)已將輸入數(shù)據(jù)送入控制器的數(shù),表明輸入機(jī)已將輸入數(shù)據(jù)送入控制器的數(shù)據(jù)寄存器中據(jù)寄存器中。向I/O控制器發(fā)讀命令讀I/O控制器的狀態(tài)檢查狀態(tài)?從I/O控制器中讀入字向存儲(chǔ)器中寫字傳送完成?未就緒就緒出錯(cuò)CPUI/OI/OCPUI/OCPUCPU內(nèi)存完成未完向I/O控制器發(fā)讀命令讀I/O控制器的狀態(tài)檢查狀態(tài)?從I/O控制器中讀字向內(nèi)存中寫字傳送完成?就緒出錯(cuò)CPUI/OI/OCPU
35、I/OCPUCPU內(nèi)存完成未完中斷CPU做其它事向I/O控制器發(fā)布讀塊命令CPUDMACPU做其它事讀D MA控制器的狀態(tài)中斷DMACPU下一條指令(a) 程序I/O方式(b) 中斷驅(qū)動(dòng)方式(c) DMA方式下一條指令下一條指令2 2中斷驅(qū)動(dòng)中斷驅(qū)動(dòng)I/OI/O控制方式控制方式現(xiàn)代計(jì)算機(jī)系統(tǒng)中現(xiàn)代計(jì)算機(jī)系統(tǒng)中,廣泛,廣泛采用中斷驅(qū)動(dòng)采用中斷驅(qū)動(dòng)(Interrupt (Interrupt Driven)Driven)方式:當(dāng)方式:當(dāng)某進(jìn)程要啟動(dòng)某個(gè)某進(jìn)程要啟動(dòng)某個(gè)I/OI/O設(shè)備工作時(shí),便設(shè)備工作時(shí),便由由CPUCPU向相應(yīng)的設(shè)備控制器發(fā)出一條向相應(yīng)的設(shè)備控制器發(fā)出一條I/OI/O命令,然后立即
36、命令,然后立即返回繼續(xù)執(zhí)行原來(lái)的任務(wù)。設(shè)備控制器于是按照該命令返回繼續(xù)執(zhí)行原來(lái)的任務(wù)。設(shè)備控制器于是按照該命令的要求去控制指定的要求去控制指定I/OI/O設(shè)備。此時(shí),設(shè)備。此時(shí),CPUCPU與與I/OI/O設(shè)備并行設(shè)備并行操作操作。 一旦一旦數(shù)據(jù)進(jìn)入數(shù)據(jù)寄存器,控制器便通過(guò)控制線向數(shù)據(jù)進(jìn)入數(shù)據(jù)寄存器,控制器便通過(guò)控制線向CPUCPU發(fā)送中斷發(fā)送中斷信號(hào),由信號(hào),由CPUCPU檢查輸入過(guò)程中是否出錯(cuò),若檢查輸入過(guò)程中是否出錯(cuò),若無(wú)錯(cuò),便向控制器發(fā)送取走數(shù)據(jù)的信號(hào),然后再通過(guò)控?zé)o錯(cuò),便向控制器發(fā)送取走數(shù)據(jù)的信號(hào),然后再通過(guò)控制器及數(shù)據(jù)線將數(shù)據(jù)寫入內(nèi)存指定單元中制器及數(shù)據(jù)線將數(shù)據(jù)寫入內(nèi)存指定單元中。
37、在在I/OI/O設(shè)備輸入每個(gè)數(shù)據(jù)的過(guò)程中,由于無(wú)需設(shè)備輸入每個(gè)數(shù)據(jù)的過(guò)程中,由于無(wú)需CPUCPU干干預(yù),因而可使預(yù),因而可使CPUCPU與與I/OI/O設(shè)備并行工作。僅當(dāng)輸完一個(gè)數(shù)設(shè)備并行工作。僅當(dāng)輸完一個(gè)數(shù)據(jù)時(shí),才需據(jù)時(shí),才需CPUCPU花費(fèi)極短的時(shí)間去做些中斷處理花費(fèi)極短的時(shí)間去做些中斷處理。 CPU CPU和和I/OI/O設(shè)備都處于忙碌狀態(tài),從而提高了整個(gè)系設(shè)備都處于忙碌狀態(tài),從而提高了整個(gè)系統(tǒng)的資源利用率及吞吐量統(tǒng)的資源利用率及吞吐量。3.3.直接直接存儲(chǔ)器訪問存儲(chǔ)器訪問(DMA)I/O(DMA)I/O控制方式控制方式1)DMA(Direct 1)DMA(Direct Memory A
38、ccess)Memory Access)控制方式的引入控制方式的引入雖然中斷驅(qū)動(dòng)雖然中斷驅(qū)動(dòng)I/OI/O比程序比程序I/OI/O方式更有效,但須注意,方式更有效,但須注意,它仍是以字它仍是以字( (節(jié)節(jié)) )為單位進(jìn)行為單位進(jìn)行I/OI/O的,的,每當(dāng)完成一個(gè)字每當(dāng)完成一個(gè)字( (節(jié)節(jié)) )的的I/OI/O時(shí),控制器便要向時(shí),控制器便要向CPUCPU請(qǐng)求一次中斷請(qǐng)求一次中斷。 中斷驅(qū)動(dòng)中斷驅(qū)動(dòng)I/OI/O方式時(shí)的方式時(shí)的CPUCPU是以字是以字( (節(jié)節(jié)) )為單位進(jìn)行干為單位進(jìn)行干預(yù)的。預(yù)的。如果如果將這種方式用于塊設(shè)備的將這種方式用于塊設(shè)備的I/OI/O,顯然是極其,顯然是極其低效的。例如
39、,為了從磁盤中讀出低效的。例如,為了從磁盤中讀出1 KB1 KB的數(shù)據(jù)塊,需要的數(shù)據(jù)塊,需要中斷中斷CPU 1KCPU 1K次。為了進(jìn)一步減少次。為了進(jìn)一步減少CPUCPU對(duì)對(duì)I/OI/O的干預(yù)而引入的干預(yù)而引入了直接存儲(chǔ)器訪問了直接存儲(chǔ)器訪問方式。方式。該方式的特點(diǎn)是:該方式的特點(diǎn)是:(1) (1) 數(shù)據(jù)傳輸?shù)臄?shù)據(jù)傳輸?shù)幕締挝皇菙?shù)據(jù)塊基本單位是數(shù)據(jù)塊,即在,即在CPUCPU與與I/OI/O設(shè)備之間,每次傳送至少一個(gè)數(shù)據(jù)塊;設(shè)備之間,每次傳送至少一個(gè)數(shù)據(jù)塊; (2) (2) 所傳送的數(shù)據(jù)是從所傳送的數(shù)據(jù)是從設(shè)備直接送入內(nèi)存設(shè)備直接送入內(nèi)存的,或者的,或者相反;相反;(3) (3) 僅在傳送一
40、個(gè)或多個(gè)數(shù)據(jù)塊的開始和結(jié)束時(shí),僅在傳送一個(gè)或多個(gè)數(shù)據(jù)塊的開始和結(jié)束時(shí),才需才需CPUCPU干預(yù)干預(yù),整塊數(shù)據(jù)的傳送是在控制器的控制下完,整塊數(shù)據(jù)的傳送是在控制器的控制下完成的。成的??梢?,可見,DMADMA方式較之中斷驅(qū)動(dòng)方式,又是成百倍地方式較之中斷驅(qū)動(dòng)方式,又是成百倍地減少了減少了CPUCPU對(duì)對(duì)I/OI/O的干預(yù),進(jìn)一步提高了的干預(yù),進(jìn)一步提高了CPUCPU與與I/OI/O設(shè)備的設(shè)備的并行操作程度。并行操作程度。 2)DMA2)DMA控制器的組成控制器的組成DMADMA控制器由三部分組成:控制器由三部分組成:主機(jī)與主機(jī)與DMADMA控制器的接口控制器的接口;DMADMA控制器與塊設(shè)備的接
41、口控制器與塊設(shè)備的接口;I/OI/O控制邏輯控制邏輯。 主要主要介紹主機(jī)與控制器之間的接口。介紹主機(jī)與控制器之間的接口。 DRMARDCCRI/O控制邏輯主機(jī)控制器接口控制器與塊設(shè)備接口count內(nèi)存CPU命令系統(tǒng)總線DMA控制器四四類寄存器:類寄存器:( (1) 1) 命令命令/ /狀態(tài)寄存器狀態(tài)寄存器(CR(CR) ):接收:接收CPUCPU發(fā)來(lái)的發(fā)來(lái)的I/OI/O命令,或命令,或有關(guān)控制信息,或設(shè)備的狀態(tài)。有關(guān)控制信息,或設(shè)備的狀態(tài)。( (2) 2) 內(nèi)存地址寄存器內(nèi)存地址寄存器(MAR)(MAR)。在輸入時(shí),它存放把數(shù)據(jù)從。在輸入時(shí),它存放把數(shù)據(jù)從設(shè)備傳送到內(nèi)存的起始目標(biāo)地址;在輸出時(shí)
42、,它存放由設(shè)備傳送到內(nèi)存的起始目標(biāo)地址;在輸出時(shí),它存放由內(nèi)存到設(shè)備的內(nèi)存源地址。內(nèi)存到設(shè)備的內(nèi)存源地址。( (3) 3) 數(shù)據(jù)寄存器數(shù)據(jù)寄存器(DR(DR) ):暫:暫存從設(shè)備到內(nèi)存,或從內(nèi)存到存從設(shè)備到內(nèi)存,或從內(nèi)存到設(shè)備的數(shù)據(jù)。設(shè)備的數(shù)據(jù)。( (4) 4) 數(shù)據(jù)計(jì)數(shù)器數(shù)據(jù)計(jì)數(shù)器(DC)(DC)。存放本次。存放本次CPUCPU要讀或?qū)懙淖忠x或?qū)懙淖? (節(jié)節(jié)) )數(shù)。數(shù)。 3)DMA3)DMA工作過(guò)程工作過(guò)程 以以從磁盤讀入數(shù)據(jù)為從磁盤讀入數(shù)據(jù)為例例 CPUCPU向向磁盤控制器發(fā)送一條讀磁盤控制器發(fā)送一條讀命令;命令; 該該命令被送到其中的命令寄存器命令被送到其中的命令寄存器(CR)(C
43、R)中;中; 數(shù)據(jù)數(shù)據(jù)讀入的內(nèi)存起始目標(biāo)讀入的內(nèi)存起始目標(biāo)地址送入地址送入內(nèi)存地址寄存器內(nèi)存地址寄存器(MARMAR)中)中; 要要讀數(shù)據(jù)的字讀數(shù)據(jù)的字( (節(jié)節(jié)) )數(shù)則送入數(shù)據(jù)計(jì)數(shù)器數(shù)則送入數(shù)據(jù)計(jì)數(shù)器(DC)(DC)中;中; 將將磁盤中的磁盤中的源地址送源地址送至至DMADMA控制器的控制器的I/OI/O控制控制邏輯;邏輯; 啟動(dòng)啟動(dòng)DMADMA控制器進(jìn)行數(shù)據(jù)控制器進(jìn)行數(shù)據(jù)傳送;傳送; 此后此后,整個(gè)數(shù)據(jù)傳送過(guò)程便由,整個(gè)數(shù)據(jù)傳送過(guò)程便由DMADMA控制器進(jìn)行控制??刂破鬟M(jìn)行控制。當(dāng)當(dāng)DMADMA控制器已從磁盤中讀入一個(gè)字控制器已從磁盤中讀入一個(gè)字( (節(jié)節(jié)) )的數(shù)據(jù)并送的數(shù)據(jù)并送入數(shù)據(jù)
44、寄存器入數(shù)據(jù)寄存器(DR)(DR)后,再挪用一個(gè)存儲(chǔ)器周期,將該字后,再挪用一個(gè)存儲(chǔ)器周期,將該字( (節(jié)節(jié)) )傳送到傳送到MARMAR所指示的內(nèi)存單元中。接著便對(duì)所指示的內(nèi)存單元中。接著便對(duì)MARMAR內(nèi)容內(nèi)容加加1 1,將,將DCDC內(nèi)容減內(nèi)容減1 1。若減。若減1 1后后DCDC內(nèi)容不為內(nèi)容不為0 0,表示傳送未,表示傳送未完,便繼續(xù)傳送下一個(gè)字完,便繼續(xù)傳送下一個(gè)字( (節(jié)節(jié)) );否則,由;否則,由DMADMA控制器發(fā)出控制器發(fā)出中斷請(qǐng)求。圖中斷請(qǐng)求。圖5-95-9是是DMADMA方式的工作流程。方式的工作流程。 設(shè)置M AR和DC初值啟動(dòng)DMA傳送命令挪用存儲(chǔ)器周期傳送數(shù)據(jù)字存儲(chǔ)
45、器地址增1字計(jì)數(shù)寄存器減1DC0?請(qǐng)求中斷在繼續(xù)執(zhí)行用戶程序的同時(shí),準(zhǔn)備又一次傳送否是4.I/O4.I/O通道控制方式通道控制方式1 1)I/OI/O通道控制方式的引入通道控制方式的引入雖然雖然DMADMA方式比起中斷方式來(lái)已經(jīng)顯著地減少了方式比起中斷方式來(lái)已經(jīng)顯著地減少了CPUCPU的干預(yù),即已由以字的干預(yù),即已由以字( (節(jié)節(jié)) )為單位的干預(yù)減少到以數(shù)據(jù)塊為單位的干預(yù)減少到以數(shù)據(jù)塊為單位的干預(yù),但為單位的干預(yù),但CPUCPU每發(fā)出一條每發(fā)出一條I/OI/O指令,也只能去讀指令,也只能去讀( (或?qū)懟驅(qū)? )一個(gè)連續(xù)的數(shù)據(jù)塊。而當(dāng)我們需要一次去讀多個(gè)一個(gè)連續(xù)的數(shù)據(jù)塊。而當(dāng)我們需要一次去讀多
46、個(gè)數(shù)據(jù)塊且將它們分別傳送到不同的內(nèi)存區(qū)域,或者相反數(shù)據(jù)塊且將它們分別傳送到不同的內(nèi)存區(qū)域,或者相反時(shí),則須由時(shí),則須由CPUCPU分別發(fā)出多條分別發(fā)出多條I/OI/O指令及進(jìn)行多次中斷處指令及進(jìn)行多次中斷處理才能完成。理才能完成。 I/OI/O通道方式是通道方式是DMADMA方式的發(fā)展,它可進(jìn)一步減少方式的發(fā)展,它可進(jìn)一步減少CPUCPU的干預(yù),即把對(duì)一個(gè)數(shù)據(jù)塊的讀的干預(yù),即把對(duì)一個(gè)數(shù)據(jù)塊的讀( (或?qū)懟驅(qū)? )為單位的干預(yù)減為單位的干預(yù)減少為對(duì)一組數(shù)據(jù)塊的讀少為對(duì)一組數(shù)據(jù)塊的讀( (或?qū)懟驅(qū)? )及有關(guān)的控制和管理為單及有關(guān)的控制和管理為單位的干預(yù)。同時(shí),又可實(shí)現(xiàn)位的干預(yù)。同時(shí),又可實(shí)現(xiàn)CP
47、UCPU、通道和、通道和I/OI/O設(shè)備三者的設(shè)備三者的并行操作,從而更有效地提高整個(gè)系統(tǒng)的資源利用率。并行操作,從而更有效地提高整個(gè)系統(tǒng)的資源利用率。例如,當(dāng)例如,當(dāng)CPUCPU要完成一組相關(guān)的讀要完成一組相關(guān)的讀( (或?qū)懟驅(qū)? )操作及有關(guān)控制操作及有關(guān)控制時(shí),只需向時(shí),只需向I/OI/O通道發(fā)送一條通道發(fā)送一條I/OI/O指令,以給出其所要執(zhí)指令,以給出其所要執(zhí)行的通道程序的首址和要訪問的行的通道程序的首址和要訪問的I/OI/O設(shè)備,通道接到該指設(shè)備,通道接到該指令后,通過(guò)執(zhí)行通道程序便可完成令后,通過(guò)執(zhí)行通道程序便可完成CPUCPU指定的指定的I/OI/O任務(wù)。任務(wù)。 2 2通道程序
48、通道程序通道是通過(guò)執(zhí)行通道程序,并與設(shè)備控制器共同實(shí)通道是通過(guò)執(zhí)行通道程序,并與設(shè)備控制器共同實(shí)現(xiàn)對(duì)現(xiàn)對(duì)I/OI/O設(shè)備的控制的。通道程序是由一系列通道指令設(shè)備的控制的。通道程序是由一系列通道指令( (或稱為通道命令或稱為通道命令) )所構(gòu)成的。通道指令與一般的機(jī)器指所構(gòu)成的。通道指令與一般的機(jī)器指令不同,在它的每條指令中都包含下列諸信息:令不同,在它的每條指令中都包含下列諸信息:(1) (1) 操作碼。操作碼規(guī)定了指令所執(zhí)行的操作,如操作碼。操作碼規(guī)定了指令所執(zhí)行的操作,如讀、寫、控制等操作。讀、寫、控制等操作。(2) (2) 內(nèi)存地址。內(nèi)存地址標(biāo)明字符送入內(nèi)存內(nèi)存地址。內(nèi)存地址標(biāo)明字符送入
49、內(nèi)存( (讀操讀操作作) )和從內(nèi)存取出和從內(nèi)存取出( (寫操作寫操作) )時(shí)的內(nèi)存首址。時(shí)的內(nèi)存首址。(3) (3) 計(jì)數(shù)。該信息表示本條指令所要讀計(jì)數(shù)。該信息表示本條指令所要讀( (或?qū)懟驅(qū)? )數(shù)據(jù)數(shù)據(jù)的字節(jié)數(shù)。的字節(jié)數(shù)。 (4) (4) 通道程序結(jié)束位通道程序結(jié)束位P P。該位用于表示通道程序是否。該位用于表示通道程序是否結(jié)束。結(jié)束。P=1P=1表示本條指令是通道程序的最后一條指令。表示本條指令是通道程序的最后一條指令。(5) (5) 記錄結(jié)束標(biāo)志記錄結(jié)束標(biāo)志R R。R=0R=0表示本通道指令與下一條表示本通道指令與下一條指令所處理的數(shù)據(jù)是同屬于一個(gè)記錄;指令所處理的數(shù)據(jù)是同屬于一個(gè)記
50、錄;R=1R=1表示這是處表示這是處理某記錄的最后一條指令。理某記錄的最后一條指令。 下面示出了一個(gè)由六條通道指令所構(gòu)成的簡(jiǎn)單的通下面示出了一個(gè)由六條通道指令所構(gòu)成的簡(jiǎn)單的通道程序。該程序的功能是將內(nèi)存中不同地址的數(shù)據(jù)寫成道程序。該程序的功能是將內(nèi)存中不同地址的數(shù)據(jù)寫成多個(gè)記錄。其中,前三條指令是分別將多個(gè)記錄。其中,前三條指令是分別將813813892892單元中單元中的的8080個(gè)字符和個(gè)字符和1034103411731173單元中的單元中的140140個(gè)字符及個(gè)字符及5830583058895889單元中的單元中的6060個(gè)字符寫成一個(gè)記錄;第個(gè)字符寫成一個(gè)記錄;第4 4條指令是單條指令
51、是單獨(dú)寫一個(gè)具有獨(dú)寫一個(gè)具有300300個(gè)字符的記錄;第個(gè)字符的記錄;第5 5、6 6條指令共寫含條指令共寫含500500個(gè)字符的記錄。個(gè)字符的記錄。 操 作 P R 計(jì) 數(shù) 內(nèi) 存 地 址 WRITE 0 0 80 813 WRITE 0 0 140 1034 WRITE 0 1 60 5830 WRITE 0 1 300 2000 WRITE 0 0 250 1650 WRITE 1 1 250 2720 6.5與設(shè)備無(wú)關(guān)的與設(shè)備無(wú)關(guān)的I/O軟件軟件 為了提高OS的可適應(yīng)性和可擴(kuò)展性,在現(xiàn)代OS中都毫無(wú)例外地實(shí)現(xiàn)了設(shè)備獨(dú)立性,也稱為設(shè)備無(wú)關(guān)性。6.5.1 6.5.1 與設(shè)備無(wú)關(guān)軟件的基本概
52、念與設(shè)備無(wú)關(guān)軟件的基本概念 1.1.早期以早期以物理設(shè)備名物理設(shè)備名使用設(shè)備使用設(shè)備 2.2.引入引入邏輯設(shè)備名邏輯設(shè)備名 邏輯設(shè)備、物理設(shè)備邏輯設(shè)備、物理設(shè)備 使用邏輯設(shè)備名的優(yōu)點(diǎn):使用邏輯設(shè)備名的優(yōu)點(diǎn): 1) 1)設(shè)備設(shè)備分配時(shí)的靈活性分配時(shí)的靈活性 2) 2) 易于實(shí)現(xiàn)易于實(shí)現(xiàn)I/OI/O重定向重定向 3.邏輯設(shè)備名到物理設(shè)備名的轉(zhuǎn)換邏輯設(shè)備名到物理設(shè)備名的轉(zhuǎn)換 ( LUT表)表)6.5.2 與設(shè)備無(wú)關(guān)的軟件與設(shè)備無(wú)關(guān)的軟件 為了為了實(shí)現(xiàn)設(shè)備獨(dú)立性,必須再在驅(qū)動(dòng)程序之上設(shè)置實(shí)現(xiàn)設(shè)備獨(dú)立性,必須再在驅(qū)動(dòng)程序之上設(shè)置一層軟件,稱為一層軟件,稱為設(shè)備獨(dú)立性軟件設(shè)備獨(dú)立性軟件。 設(shè)備設(shè)備獨(dú)立性軟
53、件的主要功能:執(zhí)行所有獨(dú)立性軟件的主要功能:執(zhí)行所有設(shè)備公有設(shè)備公有操操作作。 向用戶層向用戶層( (或文件層或文件層) )軟件提供統(tǒng)一接口軟件提供統(tǒng)一接口。無(wú)論何種。無(wú)論何種設(shè)備,它們向用戶所設(shè)備,它們向用戶所提供的提供的接口應(yīng)該是相同的。例如,接口應(yīng)該是相同的。例如,對(duì)各種設(shè)備的讀操作,在應(yīng)用程序中都使用對(duì)各種設(shè)備的讀操作,在應(yīng)用程序中都使用readread;而;而對(duì)對(duì)各種設(shè)備的寫操作,也都使用各種設(shè)備的寫操作,也都使用writewrite。 緩沖管理緩沖管理 差錯(cuò)控制差錯(cuò)控制:暫時(shí)性錯(cuò)誤、永久性錯(cuò)誤。由于在:暫時(shí)性錯(cuò)誤、永久性錯(cuò)誤。由于在I/OI/O操操作中的絕大多數(shù)錯(cuò)誤都與設(shè)備無(wú)關(guān),故
54、主要由設(shè)備驅(qū)動(dòng)作中的絕大多數(shù)錯(cuò)誤都與設(shè)備無(wú)關(guān),故主要由設(shè)備驅(qū)動(dòng)程序處理,而設(shè)備獨(dú)立性軟件只處理那些設(shè)備驅(qū)動(dòng)程序程序處理,而設(shè)備獨(dú)立性軟件只處理那些設(shè)備驅(qū)動(dòng)程序無(wú)法處理的錯(cuò)誤;無(wú)法處理的錯(cuò)誤; 對(duì)獨(dú)立設(shè)備的分配與回收對(duì)獨(dú)立設(shè)備的分配與回收; 提供獨(dú)立于設(shè)備的邏輯塊提供獨(dú)立于設(shè)備的邏輯塊6.5.3設(shè)設(shè) 備備 分分 配配 1.1.設(shè)備設(shè)備分配中的數(shù)據(jù)結(jié)構(gòu)分配中的數(shù)據(jù)結(jié)構(gòu)1 1)設(shè)備控制)設(shè)備控制表表(DCT)(DCT)系統(tǒng)為每一個(gè)設(shè)備都配置了一張?jiān)O(shè)備控制表,用于系統(tǒng)為每一個(gè)設(shè)備都配置了一張?jiān)O(shè)備控制表,用于記錄本設(shè)備的記錄本設(shè)備的情況。情況。 設(shè)備類型:type設(shè)備標(biāo)識(shí)符:deviceid設(shè)備狀態(tài):等
55、待/不等待 忙/閑指向控制器表的指針重復(fù)執(zhí)行次數(shù)或時(shí)間設(shè)備隊(duì)列的隊(duì)首指針DCT 1DCT 2DCT n設(shè)備控制表集合(1) 設(shè)備隊(duì)列隊(duì)首指針。凡因請(qǐng)求本設(shè)備而未得到滿足的進(jìn)程,其PCB都應(yīng)按照一定的策略排成一個(gè)隊(duì)列,稱該隊(duì)列為設(shè)備請(qǐng)求隊(duì)列或簡(jiǎn)稱設(shè)備隊(duì)列。其隊(duì)首指針指向隊(duì)首PCB。在有的系統(tǒng)中還設(shè)置了隊(duì)尾指針。(2) 設(shè)備狀態(tài)。當(dāng)設(shè)備自身正處于使用狀態(tài)時(shí),應(yīng)將設(shè)備的忙/閑標(biāo)志置“1”。若與該設(shè)備相連接的控制器或通道正忙,也不能啟動(dòng)該設(shè)備,此時(shí)則應(yīng)將設(shè)備的等待標(biāo)志置“1”。 (3) 與設(shè)備連接的控制器表指針。該指針指向該設(shè)備所連接的控制器的控制表。在設(shè)備到主機(jī)之間具有多條通路的情況下,一個(gè)設(shè)備將與
56、多個(gè)控制器相連接。此時(shí),在DCT中還應(yīng)設(shè)置多個(gè)控制器表指針。(4) 重復(fù)執(zhí)行次數(shù)。由于外部設(shè)備在傳送數(shù)據(jù)時(shí),較易發(fā)生數(shù)據(jù)傳送錯(cuò)誤,因而在許多系統(tǒng)中,如果發(fā)生傳送錯(cuò)誤,并不立即認(rèn)為傳送失敗,而是令它重新傳送,并由系統(tǒng)規(guī)定設(shè)備在工作中發(fā)生錯(cuò)誤時(shí)應(yīng)重復(fù)執(zhí)行的次數(shù)。在重復(fù)執(zhí)行時(shí),若能恢復(fù)正常傳送,則仍認(rèn)為傳送成功。僅當(dāng)屢次失敗,致使重復(fù)執(zhí)行次數(shù)達(dá)到規(guī)定值而傳送仍不成功時(shí),才認(rèn)為傳送失敗。 2 2)控制器)控制器控制表、通道控制表和系統(tǒng)設(shè)備表控制表、通道控制表和系統(tǒng)設(shè)備表(1) 控制器控制表(COCT)。(2) 通道控制表(CHCT)。(3) 系統(tǒng)設(shè)備表(SDT)系統(tǒng)范圍的數(shù)據(jù)結(jié)構(gòu),其中記錄了系統(tǒng)中全部
57、設(shè)備的情況。(c) 系統(tǒng)設(shè)備表SDT控制器標(biāo)識(shí)符:controllerid控制器狀態(tài):忙/閑與控制器連接的通道表指針控制器隊(duì)列的隊(duì)首指針控制器隊(duì)列的隊(duì)尾指針通道標(biāo)識(shí)符:channelid通道狀態(tài):忙/閑與通道連接的控制器表首址通道隊(duì)列的隊(duì)首指針通道隊(duì)列的隊(duì)尾指針(a) 控制器表COCT(b) 通道表CHCT表目1表目i設(shè)備類設(shè)備標(biāo)識(shí)符DCT驅(qū)動(dòng)程序入口2.2.設(shè)備設(shè)備分配時(shí)應(yīng)考慮的因素分配時(shí)應(yīng)考慮的因素 設(shè)備的固有屬性;設(shè)備的固有屬性; 設(shè)備分配算法;設(shè)備分配算法; 設(shè)備分設(shè)備分配時(shí)的安全性;配時(shí)的安全性; 設(shè)備獨(dú)立性設(shè)備獨(dú)立性。 1 1)設(shè)備)設(shè)備的固有屬性的固有屬性第一第一種獨(dú)占性種獨(dú)占性
58、:采用獨(dú)享分配策略采用獨(dú)享分配策略 第二第二種共享性:種共享性:可同時(shí)分配給多個(gè)進(jìn)程使用,此可同時(shí)分配給多個(gè)進(jìn)程使用,此時(shí)須注意對(duì)這些進(jìn)程訪問該設(shè)備的先后次序進(jìn)行合理時(shí)須注意對(duì)這些進(jìn)程訪問該設(shè)備的先后次序進(jìn)行合理的調(diào)度的調(diào)度。 第三第三種可種可虛擬虛擬設(shè)備:一設(shè)備:一臺(tái)可虛擬設(shè)備是可共享的臺(tái)可虛擬設(shè)備是可共享的設(shè)備,可以將它同時(shí)分配給多個(gè)進(jìn)程使用,并對(duì)這些設(shè)備,可以將它同時(shí)分配給多個(gè)進(jìn)程使用,并對(duì)這些訪問該訪問該(物理物理)設(shè)備的先后次序進(jìn)行控制。設(shè)備的先后次序進(jìn)行控制。 2 2)設(shè)備)設(shè)備分配算法分配算法(1) 先來(lái)先服務(wù)。將這些進(jìn)程排成一個(gè)設(shè)備請(qǐng)求隊(duì)列,設(shè)先來(lái)先服務(wù)。將這些進(jìn)程排成一個(gè)設(shè)備
59、請(qǐng)求隊(duì)列,設(shè)備分配程序總是把設(shè)備首先分配給隊(duì)首進(jìn)程。備分配程序總是把設(shè)備首先分配給隊(duì)首進(jìn)程。 (2) 優(yōu)先級(jí)高者優(yōu)先。將優(yōu)先權(quán)高的進(jìn)程排在設(shè)備隊(duì)列前優(yōu)先級(jí)高者優(yōu)先。將優(yōu)先權(quán)高的進(jìn)程排在設(shè)備隊(duì)列前面,對(duì)于優(yōu)先級(jí)相同的面,對(duì)于優(yōu)先級(jí)相同的I/O請(qǐng)求,則按先來(lái)先服務(wù)原則排隊(duì)。請(qǐng)求,則按先來(lái)先服務(wù)原則排隊(duì)。 3 3)設(shè)備)設(shè)備分配中的安全性分配中的安全性 1 1) ) 安全分配方式安全分配方式每當(dāng)進(jìn)程發(fā)出每當(dāng)進(jìn)程發(fā)出I/O請(qǐng)求后,便進(jìn)入阻塞狀態(tài),直到其請(qǐng)求后,便進(jìn)入阻塞狀態(tài),直到其I/O操作完成時(shí)才被喚醒。這種分配方式已經(jīng)摒棄了造成死鎖的操作完成時(shí)才被喚醒。這種分配方式已經(jīng)摒棄了造成死鎖的四個(gè)必要條件
60、之一的四個(gè)必要條件之一的“請(qǐng)求和保持請(qǐng)求和保持”條件,從而使設(shè)備分配條件,從而使設(shè)備分配是安全的。其缺點(diǎn)是進(jìn)程進(jìn)展緩慢,即是安全的。其缺點(diǎn)是進(jìn)程進(jìn)展緩慢,即CPU與與I/O設(shè)備是串設(shè)備是串行工作的行工作的。 2) 不安全分配方式進(jìn)程在發(fā)出I/O請(qǐng)求后仍繼續(xù)運(yùn)行,需要時(shí)又發(fā)出第二個(gè)I/O請(qǐng)求、 第三個(gè)I/O請(qǐng)求等。僅當(dāng)進(jìn)程所請(qǐng)求的設(shè)備已被另一進(jìn)程占用時(shí),請(qǐng)求進(jìn)程才進(jìn)入阻塞狀態(tài)。3.3.獨(dú)占獨(dú)占設(shè)備的分配程序設(shè)備的分配程序 1 1)基本)基本的設(shè)備分配程序的設(shè)備分配程序(1) 分配設(shè)備首先根據(jù)I/O請(qǐng)求中的物理設(shè)備名,查找系統(tǒng)設(shè)備表(SDT),從中找出該設(shè)備的DCT,再根據(jù)DCT中的設(shè)備狀態(tài)字段,
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024工程建設(shè)監(jiān)督管理合同協(xié)議書
- 技術(shù)轉(zhuǎn)讓合同書樣本示例
- 2024敬老院承包經(jīng)營(yíng)合同
- 2024版單位間借款合同樣本
- 標(biāo)準(zhǔn)離婚協(xié)議書格式參考樣本
- 2024三方股份合同協(xié)議書
- 2024試用期員工解除勞動(dòng)合同格式
- 2024勞務(wù)派遣承包合同
- 2024來(lái)料加工合同樣板來(lái)料加工合作合同范本2
- 客戶資源合作合同模板
- GB/T 17259-2024機(jī)動(dòng)車用液化石油氣鋼瓶
- 國(guó)開(河北)2024年《中外政治思想史》形成性考核1-4答案
- 床邊護(hù)理帶教體會(huì)
- 2024年社區(qū)工作者考試必背1000題題庫(kù)及必背答案
- MOOC 微型計(jì)算機(jī)原理與接口技術(shù)-南京郵電大學(xué) 中國(guó)大學(xué)慕課答案
- 1kw太陽(yáng)能獨(dú)立供電系統(tǒng)解決方案
- 七年級(jí)期中考試考后分析主題班會(huì)課件
- 環(huán)境教育與公眾參與-第1篇
- 北師大版六年級(jí)數(shù)學(xué)上冊(cè)第五單元數(shù)據(jù)處理單元測(cè)試卷及答案
- (2024年)Photoshop基礎(chǔ)入門到精通教程全套
- 實(shí)驗(yàn)室建設(shè)籌備方案
評(píng)論
0/150
提交評(píng)論