網(wǎng)格計(jì)算及關(guān)鍵技術(shù)研究(-215)_第1頁(yè)
網(wǎng)格計(jì)算及關(guān)鍵技術(shù)研究(-215)_第2頁(yè)
網(wǎng)格計(jì)算及關(guān)鍵技術(shù)研究(-215)_第3頁(yè)
網(wǎng)格計(jì)算及關(guān)鍵技術(shù)研究(-215)_第4頁(yè)
網(wǎng)格計(jì)算及關(guān)鍵技術(shù)研究(-215)_第5頁(yè)
已閱讀5頁(yè),還剩210頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、第五章設(shè)備管理第五章設(shè)備管理 5.1 概 述5.2 I/O軟件的組成5.3 I/O硬件特點(diǎn)5.4 I/O控制技術(shù)5.5 設(shè)備有關(guān)技術(shù)5.6 設(shè)備分配與設(shè)備處理5.7 磁盤(pán)存儲(chǔ)器管理 5.8 典型外部設(shè)備 第五章設(shè)備管理 5.1 概 述1.I/O性能經(jīng)常成為系統(tǒng)性能的瓶頸(1)CPU性能不等于系統(tǒng)性能 響應(yīng)時(shí)間也是一個(gè)重要因素(2)CPU性能越高,與I/O差距越大 彌補(bǔ):更多的進(jìn)程(3)進(jìn)程切換多,系統(tǒng)開(kāi)銷(xiāo)大 I/O的特點(diǎn)2.操作系統(tǒng)龐大復(fù)雜的原因之一是:資源多、雜,并發(fā),均來(lái)自I/O 外設(shè)種類(lèi)繁多,結(jié)構(gòu)各異 輸入輸出數(shù)據(jù)信號(hào)類(lèi)型不同 速度差異很大3.理解I/O的工作過(guò)程與結(jié)構(gòu)是理解操作系統(tǒng)的工

2、作過(guò)程與結(jié)構(gòu)的關(guān)鍵4.與其他功能聯(lián)系密切,特別是文件系統(tǒng)1.按使用特性分 存儲(chǔ)型設(shè)備 輸入型設(shè)備外設(shè)主機(jī) 輸出型設(shè)備主機(jī)外設(shè) 輸入輸出型設(shè)備交互型設(shè)備2.按數(shù)據(jù)組織分 塊設(shè)備 以數(shù)據(jù)塊為單位存儲(chǔ)、傳輸信息 字符設(shè)備 以字符為單位存儲(chǔ)、傳輸信息 設(shè)備的分類(lèi)系統(tǒng)設(shè)備 指操作系統(tǒng)生成時(shí),登記在系統(tǒng)中的標(biāo)準(zhǔn)設(shè)備 如終端、打印機(jī)、磁盤(pán)機(jī)等用戶(hù)設(shè)備 指在系統(tǒng)生成時(shí),未登記在系統(tǒng)中的非標(biāo)準(zhǔn)設(shè)備。對(duì)于這類(lèi)設(shè)備的處理程序由用戶(hù)提供,并將其納入系統(tǒng),由系統(tǒng)代替用戶(hù)實(shí)施管理。 如A/D,D/A轉(zhuǎn)換器,CAD所用專(zhuān)用設(shè)備 3.按外部設(shè)備的附屬關(guān)系分1)獨(dú)占設(shè)備 在一段時(shí)間內(nèi)只能有一個(gè)進(jìn)程使用的設(shè)備,一般為低速I(mǎi)/O設(shè)

3、備。如打印機(jī),磁帶等2)共享設(shè)備 在一段時(shí)間內(nèi)可有多個(gè)進(jìn)程共同使用的設(shè)備,多個(gè)進(jìn)程以交叉的方式來(lái)使用設(shè)備,其資源利用率高。如硬盤(pán)3)虛設(shè)備 4.按資源分配角度分在一類(lèi)設(shè)備上模擬另一類(lèi)設(shè)備,常用共享設(shè)備模擬獨(dú)占設(shè)備,用高速設(shè)備模擬低速設(shè)備,被模擬的設(shè)備稱(chēng)為虛設(shè)備目的:將慢速的獨(dú)占設(shè)備改造成多個(gè)用戶(hù)可共享的設(shè)備,提高設(shè)備的利用率實(shí)例:SPOOLing技術(shù),利用虛設(shè)備技術(shù) 用硬盤(pán)模擬輸入輸出設(shè)備3)虛設(shè)備 為解決獨(dú)立設(shè)備數(shù)量少,速度慢,不能滿(mǎn)足眾多進(jìn)程的要求,而且在進(jìn)程獨(dú)占設(shè)備期間,設(shè)備利用率比較低而提出的一種設(shè)備管理技術(shù)SPOOLing技術(shù)5.從程序使用角度分 邏輯設(shè)備 物理設(shè)備6.按數(shù)據(jù)傳輸率分

4、 高速設(shè)備 低速設(shè)備設(shè)備的分類(lèi)續(xù))5.1.3 設(shè)計(jì)目標(biāo)與任務(wù)提高方便性實(shí)現(xiàn)并行性均衡性設(shè)備獨(dú)立性 1.設(shè)計(jì)目標(biāo)1設(shè)備分配與回收 記錄設(shè)備的狀態(tài) 根據(jù)用戶(hù)的請(qǐng)求和設(shè)備的類(lèi)型,采用一定的分配算法,選擇一條數(shù)據(jù)通路 2建立統(tǒng)一的獨(dú)立于設(shè)備的接口3完成設(shè)備驅(qū)動(dòng)程序,實(shí)現(xiàn)真正的I/O操作4處理外部設(shè)備的中斷處理5管理I/O緩沖區(qū)2. 設(shè)備管理的功能 1按照用戶(hù)的請(qǐng)求,控制設(shè)備的各種操作,完成I/O設(shè)備與內(nèi)存之間的數(shù)據(jù)交換包括設(shè)備分配與回收;設(shè)備驅(qū)動(dòng)程序;設(shè)備中斷處理;緩沖區(qū)管理,最終完成用戶(hù)的I/O請(qǐng)求3.設(shè)備管理的目標(biāo)和任務(wù)2向用戶(hù)提供使用外部設(shè)備的方便接口,使用戶(hù)擺脫繁瑣的編程負(fù)擔(dān) 方便性 友好界面

5、 透明性 邏輯設(shè)備與物理設(shè)備、屏蔽硬件細(xì)節(jié)設(shè)備的物理細(xì)節(jié),錯(cuò)誤處理,不同I/O的差異性3充分利用各種技術(shù)通道,中斷,緩沖等提高CPU與設(shè)備、設(shè)備與設(shè)備之間的并行工作能力,充分利用資源,提高資源利用率( 并行性、 均衡性 設(shè)備管理的目標(biāo)和任務(wù)(續(xù)4保證在多道程序環(huán)境下,當(dāng)多個(gè)進(jìn)程競(jìng)爭(zhēng)使用設(shè)備時(shí),按一定策略分配和管理各種設(shè)備,使系統(tǒng)能有條不紊的工作5保護(hù) 設(shè)備傳送或管理的數(shù)據(jù)應(yīng)該是平安的、不被破壞的、保密的 設(shè)備管理的目標(biāo)和任務(wù)(續(xù)6與設(shè)備無(wú)關(guān)性設(shè)備獨(dú)立性用戶(hù)在編制程序時(shí),使用邏輯設(shè)備名,由系統(tǒng)實(shí)現(xiàn)從邏輯設(shè)備到物理設(shè)備的轉(zhuǎn)換用戶(hù)能獨(dú)立于具體物理設(shè)備而方便的使用設(shè)備用戶(hù)申請(qǐng)使用設(shè)備時(shí),只需要指定設(shè)備

6、類(lèi)型,而無(wú)須指定具體物理設(shè)備,系統(tǒng)根據(jù)當(dāng)前的請(qǐng)求,及設(shè)備分配的情況,在相同類(lèi)別設(shè)備中,選擇一個(gè)空閑設(shè)備,并將其分配給一個(gè)申請(qǐng)進(jìn)程 設(shè)備管理的目標(biāo)和任務(wù)(續(xù)統(tǒng)一性: 對(duì)不同的設(shè)備采取統(tǒng)一的操作方式,在用戶(hù)程序中使用的是邏輯設(shè)備。優(yōu)點(diǎn): 設(shè)備忙碌或設(shè)備故障時(shí),用戶(hù)不必修改程序改善了系統(tǒng)的可適應(yīng)性和可擴(kuò)展性第五章設(shè)備管理 5.2 I/O軟件的組成 IO軟件的根本思想是按分層的思想構(gòu)成,較低層軟件要使較高層軟件獨(dú)立于硬件的特性,較高層軟件那么要向用戶(hù)提供一個(gè)友好的、清晰的、簡(jiǎn)單的、功能更強(qiáng)的接口 1. I/O軟件的組成在設(shè)計(jì)IO軟件時(shí)的一個(gè)關(guān)鍵概念是設(shè)備獨(dú)立性。用戶(hù)在編寫(xiě)使用軟盤(pán)或硬盤(pán)上文件的程序時(shí),

7、無(wú)需為不同的設(shè)備類(lèi)型而修改程序就可以使用與設(shè)備獨(dú)立性密切相關(guān)的是統(tǒng)一命名這一目標(biāo)。一個(gè)文件或一個(gè)設(shè)備的名字只應(yīng)是一個(gè)簡(jiǎn)單的字符串或一個(gè)整數(shù),不應(yīng)依賴(lài)于設(shè)備出錯(cuò)處理是IO軟件的另一個(gè)目標(biāo)。一般來(lái)說(shuō),數(shù)據(jù)傳輸中的錯(cuò)誤應(yīng)盡可能地在接近硬件層上處理最后一個(gè)問(wèn)題是可共享設(shè)備和獨(dú)占設(shè)備的處理問(wèn)題2. IO軟件的目標(biāo)每個(gè)進(jìn)程在啟動(dòng)一個(gè)IO操作后阻塞 直到IO操作完成并產(chǎn)生一個(gè)中斷由操作系統(tǒng)接管CPU后喚醒該進(jìn)程為止 3. 中斷處理程序與設(shè)備密切相關(guān)的代碼放在設(shè)備驅(qū)動(dòng)程序中,每個(gè)設(shè)備驅(qū)動(dòng)程序處理一種設(shè)備類(lèi)型每一個(gè)控制器都設(shè)有一個(gè)或多個(gè)設(shè)備存放器,用來(lái)存放向設(shè)備發(fā)送的命令和參數(shù)。設(shè)備驅(qū)動(dòng)程序負(fù)責(zé)釋放這些命令,并

8、監(jiān)督它們正確執(zhí)行一般,設(shè)備驅(qū)動(dòng)程序的任務(wù)是接收來(lái)自與設(shè)備無(wú)關(guān)的上層軟件的抽象請(qǐng)求,并執(zhí)行這個(gè)請(qǐng)求 4. 設(shè)備驅(qū)動(dòng)程序 在設(shè)備驅(qū)動(dòng)程序的進(jìn)程釋放一條或多條命令后,系統(tǒng)有兩種處理方式,多數(shù)情況下,執(zhí)行設(shè)備驅(qū)動(dòng)程序的進(jìn)程必須等待命令完成,這樣,在命令開(kāi)始執(zhí)行后,它阻塞自已,直到中斷處理時(shí)將它解除阻塞為止。而在其它情況下,命令執(zhí)行不必延遲就很快完成 4. 設(shè)備驅(qū)動(dòng)程序(續(xù) 雖然IO軟件中一局部是設(shè)備專(zhuān)用的,但大局部軟件是與設(shè)備無(wú)關(guān)的。設(shè)備驅(qū)動(dòng)程序與設(shè)備獨(dú)立軟件之間確實(shí)切界限是依賴(lài)于具體系統(tǒng)的 5. 設(shè)備獨(dú)立的軟件 1)獨(dú)立于設(shè)備的軟件的根本任務(wù)是實(shí)現(xiàn)所有設(shè)備都需要的功能,并且向用戶(hù)級(jí)軟件提供一個(gè)統(tǒng)一的

9、接口 2)如何給文件和設(shè)備這樣的對(duì)象命名是操作系統(tǒng)中的一個(gè)主要課題。獨(dú)立于設(shè)備的軟件負(fù)責(zé)把設(shè)備的符號(hào)名映射到正確的設(shè)備驅(qū)動(dòng)上 3)設(shè)備保護(hù) 系統(tǒng)如何防止無(wú)權(quán)存取設(shè)備的用戶(hù)存取設(shè)備呢? 4)不同的磁盤(pán)可以采用不同的扇區(qū)尺寸。向較高層軟件掩蓋這一事實(shí)并提供大小統(tǒng)一的塊尺寸,這正是設(shè)備獨(dú)立軟件的一個(gè)任務(wù)。它可將假設(shè)干扇區(qū)合成一個(gè)邏輯塊。這樣,較高層的軟件只與抽象設(shè)備打交道,獨(dú)立于物理扇區(qū)的尺寸而使用等長(zhǎng)的邏輯塊 5)緩沖技術(shù) 6)設(shè)備分配 7)出錯(cuò)處理 盡管大局部IO軟件都包含在操作系統(tǒng)中,但仍有一小局部是由與用戶(hù)程序連接在一起的庫(kù)過(guò)程,甚至完全由運(yùn)行于核外的程序構(gòu)成。系統(tǒng)調(diào)用,包括IO系統(tǒng)調(diào)用,通

10、常由庫(kù)過(guò)程實(shí)現(xiàn)這些過(guò)程所做的工作只是將系統(tǒng)調(diào)用時(shí)所用的參數(shù)放在適宜的位置,由其它的IO過(guò)程實(shí)際實(shí)現(xiàn)真正的操作6. 用戶(hù)空間的IO軟件1用戶(hù)進(jìn)程層執(zhí)行輸入輸出系統(tǒng)調(diào)用,對(duì)IO數(shù)據(jù)進(jìn)行格式化,為假脫機(jī)輸入輸出作準(zhǔn)備2獨(dú)立于設(shè)備的軟件實(shí)現(xiàn)設(shè)備的命名、設(shè)備的保護(hù)、成塊處理、緩沖技術(shù)和設(shè)備分配3設(shè)備驅(qū)動(dòng)程序設(shè)置設(shè)備存放器、檢查設(shè)備的執(zhí)行狀態(tài)4中斷處理程序負(fù)責(zé)IO完成時(shí),喚醒設(shè)備驅(qū)動(dòng)程序進(jìn)程,進(jìn)行中斷處理5硬件層實(shí)現(xiàn)物理IO的操作第五章設(shè)備管理 5.3 I/O硬件特點(diǎn)設(shè)備組成 IO設(shè)備一般由機(jī)械和電子兩局部組成, 把這兩局部分開(kāi)處理,以提供更加模塊化,更加通用的設(shè)計(jì)物理設(shè)備機(jī)械局部是設(shè)備本身物理裝置設(shè)備控

11、制器 電子局部叫做設(shè)備控制器或適配器。在小型和微型機(jī)中,它常采用印刷電路卡插入計(jì)算機(jī)中接口 完成設(shè)備與主機(jī)間的連接和通訊1. I/O硬件特點(diǎn) 控制器卡上通常有一個(gè)插座,通過(guò)電纜與設(shè)備相連 控制器和設(shè)備之間的接口是一個(gè)標(biāo)準(zhǔn)接口,它符合ANSI、IEEE或ISO這樣的國(guó)際標(biāo)準(zhǔn)CPU外部設(shè)備控制邏輯電路控制存放器狀態(tài)存放器數(shù)據(jù)存放器1操作異步性2設(shè)備自治性3接口通用性 關(guān)注點(diǎn):對(duì)該硬件如何進(jìn)行程序設(shè)計(jì),不考慮設(shè)備內(nèi)部如何工作 程序員:軟件接口 即硬件所接受的命令,它所完成的功能,報(bào)回的錯(cuò)誤 1.I/O設(shè)備特點(diǎn)(續(xù) 一個(gè)I/O過(guò)程由四步組成: 準(zhǔn)備 啟動(dòng) 測(cè)試和等待 結(jié)果檢查和錯(cuò)誤處理 通過(guò)對(duì)設(shè)備接口

12、存放器組的讀寫(xiě)完成 設(shè)備接口復(fù)雜繁瑣 2. 設(shè)備接口操作系統(tǒng)將命令寫(xiě)入控制器存放器中,以實(shí)現(xiàn)輸入輸出 例如:IBM PC的軟盤(pán)控制器可接收15條命令,READ、WRITE、FORMAT、SEEK、RECALIBRATE,命令可以帶參數(shù)。它們被一起送入控制器的存放器中當(dāng)控制器接受一條命令后,可獨(dú)立于CPU完成指定操作,CPU可以轉(zhuǎn)去執(zhí)行其它運(yùn)算。命令完成時(shí),控制器產(chǎn)生一個(gè)中斷,CPU響應(yīng)中斷,控制轉(zhuǎn)給操作系統(tǒng)。CPU通過(guò)讀控制器存放器中的信息,獲得操作結(jié)果和設(shè)備狀態(tài)控制器與設(shè)備之間的接口常常是一個(gè)低級(jí)接口。例如磁盤(pán),可以按每個(gè)磁道8扇區(qū),每個(gè)扇區(qū)512個(gè)字節(jié)進(jìn)行格式化。然而,實(shí)際從驅(qū)動(dòng)器出來(lái)的卻

13、是一連串的位流,以一個(gè)頭標(biāo)preamble開(kāi)始,然后是一個(gè)扇區(qū)的4096位5128,最后是檢查和或錯(cuò)誤校驗(yàn)碼ErrorC一C:ECC。頭標(biāo)是在對(duì)磁盤(pán)格式化時(shí)寫(xiě)上的,它包括柱面和扇區(qū)數(shù),扇區(qū)的大小和類(lèi)似的一些數(shù)據(jù)控制器的任務(wù)是把串行的位流轉(zhuǎn)換為字節(jié)塊,并進(jìn)行必要的錯(cuò)誤修正。首先,控制器按位進(jìn)行組裝,然后存入控制器內(nèi)部的緩沖區(qū)中形成以字節(jié)為單位的塊。在對(duì)塊驗(yàn)證檢查和并證明無(wú)錯(cuò)誤時(shí),再將它復(fù)制到主存中指I/O設(shè)備與CPU之間的連接方式,亦即將設(shè)備連接到一個(gè)計(jì)算機(jī)系統(tǒng)上的方式在一個(gè)確定的連接模式下,從I/O設(shè)備到CPU間的所有連接成分構(gòu)成了一條I/O路徑I/O鏈3. 設(shè)備連接模式四個(gè)要素: 設(shè)備接口形

14、式 I/O指令形式 I/O地址空間分配及譯碼 連線問(wèn)題4.設(shè)備與主機(jī)間最根本的連接方式端口地址譯碼按照主機(jī)與設(shè)備的約定格式和過(guò)程接受或發(fā)送數(shù)據(jù)和信號(hào) 計(jì)算機(jī) 設(shè)備 設(shè)備 計(jì)算機(jī)將計(jì)算機(jī)的數(shù)字信號(hào)轉(zhuǎn)換為機(jī)械局部能識(shí)別的模擬信號(hào),或反過(guò)來(lái)實(shí)現(xiàn)一些諸如設(shè)備內(nèi)部硬件緩沖存儲(chǔ)、數(shù)據(jù)加工的提高性能或增強(qiáng)功能的任務(wù)1) 設(shè)備接口形式接口電路中:多個(gè)存放器一個(gè)存放器有唯一的一個(gè)地址,每個(gè)地址為I/O端口,該地址稱(chēng)為I/O端口地址。I/O指令形式與I/O地址是相互關(guān)聯(lián)的,主要有兩種形式: 內(nèi)存映像編址內(nèi)存映像I/O模式 I/O獨(dú)立編址I/O專(zhuān)用指令2) 端口編址方法3) I/O獨(dú)立編址分配給系統(tǒng)中所有端口的地址

15、空間是完全獨(dú)立的,與內(nèi)存的地址空間沒(méi)有關(guān)系主機(jī)使用專(zhuān)門(mén)的I/O指令對(duì)端口進(jìn)行操作優(yōu)點(diǎn)外部設(shè)備不占用內(nèi)存的地址空間程序設(shè)計(jì)時(shí),易于區(qū)分是對(duì)內(nèi)存操作還是對(duì)I/O端口操作缺點(diǎn):對(duì)I/O端口操作的指令類(lèi)型少,操作不靈活例子:8086/8088,分配給I/O端口的地址空間64K,0000H0FFFFH,只能用IN和OUT指令對(duì)其進(jìn)行讀寫(xiě)操作4) 存儲(chǔ)映像編址分配給系統(tǒng)中所有端口的地址空間與內(nèi)存的地址空間統(tǒng)一編址主機(jī)把I/O端口看作一個(gè)存儲(chǔ)單元,對(duì)I/O的讀寫(xiě)操作等同于對(duì)存儲(chǔ)器的操作優(yōu)點(diǎn)但凡可對(duì)存儲(chǔ)器操作的指令都可對(duì)I/O端口操作不需要專(zhuān)門(mén)的I/O指令I(lǐng)/O端口可占有較大的地址空間缺點(diǎn):占用內(nèi)存空間設(shè)備完

16、成技術(shù):系統(tǒng)如何知道設(shè)備的一次I/O操作是否完成?對(duì)CPU編程的I/O技術(shù):CPU必須親自完成I/O的啟動(dòng)與完成的處理,親自執(zhí)行所有數(shù)據(jù)在內(nèi)存和設(shè)備之間的實(shí)際物理傳送 5. 要考慮的幾個(gè)問(wèn)題一次I/O 傳送過(guò)程: 準(zhǔn)備傳送后處理例:一個(gè)打印機(jī)有兩個(gè)I/O設(shè)備存放器 狀態(tài)存放器 數(shù)據(jù)存放器設(shè)備的一次操作是否完成? 測(cè)試設(shè)備的一個(gè)硬件信號(hào)幾種測(cè)試模式:1I/O測(cè)試指令2中斷技術(shù)1) 設(shè)備完成技術(shù)使CPU利用率盡可能不被I/O降低使CPU盡可能擺脫I/O 提高I/O本身的絕對(duì)速度 減少或緩解速度差距 使CPU不等待I/O 提高設(shè)備利用率 在設(shè)備與主機(jī)的硬連接上,引入總線,節(jié)省連線并提供配置擴(kuò)充與改變

17、時(shí)的靈活性;引入控制器,擴(kuò)大設(shè)備與主機(jī)間的相互適用范圍 小結(jié):控制器與設(shè)備的別離,循環(huán)測(cè)試到中斷,對(duì)CPU編程式的I/O到DMA,聯(lián)機(jī)I/O到假脫機(jī)進(jìn)一步改善第五章設(shè)備管理 5.4 I/O控制技術(shù)I/O控制的四種技術(shù)程序控制中斷驅(qū)動(dòng)直接存儲(chǔ)器存取DMA通道1.程序控制I/O技術(shù)由處理器提供I/O相關(guān)指令來(lái)實(shí)現(xiàn)I/O處理單元處理請(qǐng)求并設(shè)置I/O狀態(tài)存放器相關(guān)位不中斷處理器,也不給處理器警告信息處理器定期輪詢(xún)I/O單元的狀態(tài),直到處理完畢I/O軟件包含直接操縱I/O的指令控制指令: 用于激活外設(shè),并告訴它做什么狀態(tài)指令: 用于測(cè)試I/O控制中的各種狀態(tài)和條件數(shù)據(jù)傳送指令: 用于設(shè)備和主存之間來(lái)回傳

18、送數(shù)據(jù)主要缺陷:處理器必須關(guān)注I/O處理單元的狀態(tài),因而消耗大量時(shí)間輪詢(xún)信息,嚴(yán)重地降低了系統(tǒng)性能2.中斷驅(qū)動(dòng)I/O技術(shù)為了解決程序控制I/O方法的主要問(wèn)題 應(yīng)該讓處理器從輪詢(xún)?nèi)蝿?wù)中解放出來(lái) 使I/O操作和指令執(zhí)行并行起來(lái)具體作法: 當(dāng)I/O處理單元準(zhǔn)備好與設(shè)備交互的時(shí)候 通過(guò)物理信號(hào)通知處理器,即中斷處理器3. DMA技術(shù)中斷的引入大大地提高了處理器處理I/O的效率當(dāng)處理器和I/O間傳送數(shù)據(jù)時(shí),效率仍舊不高解決方法:直接存儲(chǔ)器訪問(wèn)DMA:Direct Memory Access通過(guò)系統(tǒng)總線中一獨(dú)立控制單元DMA控制器自動(dòng)控制成塊數(shù)據(jù)在內(nèi)存和I/O單元間的傳送大大提高處理I/O的效能DMA技術(shù)

19、續(xù)1當(dāng)處理器需要讀寫(xiě)一整塊數(shù)據(jù)時(shí)給DMA控制單元發(fā)送一條命令包含:是否請(qǐng)求一次讀或?qū)?,I/O設(shè)備的編址,開(kāi)始讀或?qū)懙闹鞔婢幹?,需要傳送的?shù)據(jù)長(zhǎng)度等信息處理器發(fā)送完命令后就可處理其它事情DMA控制器將自動(dòng)管理數(shù)據(jù)的傳送當(dāng)這個(gè)過(guò)程完成后,它會(huì)給處理器發(fā)一個(gè)中斷處理器只在開(kāi)始傳送和傳送結(jié)束時(shí)關(guān)注一下就可處理器和DMA傳送不完全并行有時(shí)會(huì)有總線競(jìng)爭(zhēng)的情況發(fā)生 處理器用總線時(shí)可能稍作等待 不會(huì)引起中斷 不引起程序上下文的保存通常過(guò)程只有一個(gè)總線周期在DMA傳送時(shí),處理器訪問(wèn)總線速度會(huì)變慢對(duì)于大量數(shù)據(jù)I/O傳送,DMA技術(shù)是很有價(jià)值DMA技術(shù)續(xù)2程序I/O中斷I/O DMA4.通道獨(dú)立于中央處理器,專(zhuān)門(mén)負(fù)

20、責(zé)數(shù)據(jù)I/O傳輸?shù)奶幚頇C(jī)它對(duì)外設(shè)實(shí)現(xiàn)統(tǒng)一管理代替CPU對(duì)I/O操作進(jìn)行控制使CPU和外設(shè)可以并行工作通道又稱(chēng)為I/O處理機(jī)引入通道的目的:為了使CPU從I/O事務(wù)中解脫出來(lái)同時(shí)為了提高CPU與設(shè)備、設(shè)備與設(shè)備之間的并行度第五章設(shè)備管理 5.5 設(shè)備有關(guān)技術(shù) Spooling虛擬設(shè)備技術(shù) 一個(gè)虛擬設(shè)備 一個(gè)資源轉(zhuǎn)換技術(shù)用空間,如輸入,輸出等換取CPU時(shí)間解決問(wèn)題: 在進(jìn)程所需物理設(shè)備不存在或被占用時(shí)使用該設(shè)備 假假設(shè)進(jìn)程翻開(kāi)打印機(jī)特殊文件后幾小時(shí)內(nèi)無(wú)所事事,其他進(jìn)程什么都打印不了!解決方案:創(chuàng)立值班進(jìn)程、SPOOLing目錄進(jìn)程首先生成要打印的文件,放入SPOOLing目錄值班進(jìn)程:唯一獲準(zhǔn)使用

21、打印機(jī)特殊文件的進(jìn)程,用以打印SPOOLing目錄里的文件通過(guò)禁止對(duì)特殊文件的直接使用、提高了使用效率1.打印機(jī)的SPOOLing值班進(jìn)程2. 網(wǎng)絡(luò)的SPOOLing值班進(jìn)程SPOOLing技術(shù)今天仍被廣泛使用網(wǎng)絡(luò)文件傳送 先把文件送到網(wǎng)絡(luò)SPOOLing目錄,然后網(wǎng)絡(luò)值班進(jìn)程把它取出并傳遞到目標(biāo)地址Internet電子郵件系統(tǒng) 為了寄郵,調(diào)用電子郵件程序 待發(fā)信存在SPOOLing中供以后傳輸注意:SPOOLing只提高設(shè)備利用率,縮短用戶(hù)程序執(zhí)行時(shí)間,并不提高CPU利用率5.5.2.中斷技術(shù)1. 中斷的概念:CPU對(duì)系統(tǒng)發(fā)生的某個(gè)事件作出的一種反響CPU暫停正在執(zhí)行的程序,保存現(xiàn)場(chǎng)后自動(dòng)轉(zhuǎn)

22、去執(zhí)行相應(yīng)事件的處理程序,處理完成后返回?cái)帱c(diǎn),繼續(xù)執(zhí)行被打斷的程序特點(diǎn): 1) 中斷隨機(jī)的 2) 中斷是可恢復(fù)的 3) 中斷是自動(dòng)處理的從用戶(hù)角度看中斷解決主機(jī)與外設(shè)的并行工作問(wèn)題提高可靠性實(shí)現(xiàn)多機(jī)聯(lián)系實(shí)現(xiàn)實(shí)時(shí)控制 2. 引入中斷的目的3 中斷類(lèi)型強(qiáng)迫性中斷 正在運(yùn)行的程序所不期望的,由于某種硬件故障或外部請(qǐng)求引起的自愿性中斷 用戶(hù)在程序中有意識(shí)安排的中斷,是由于用戶(hù)在編制程序時(shí)因?yàn)橐蟛僮飨到y(tǒng)提供效勞,有意使用“訪管指令或系統(tǒng)調(diào)用,使中斷發(fā)生1)強(qiáng)迫性中斷輸入/輸出(I/O)中斷:主要來(lái)自外部設(shè)備通道程序性中斷:運(yùn)行程序中本身的中斷(如溢出,缺頁(yè)中斷,缺段中斷,地址越界)時(shí)鐘中斷控制臺(tái)中斷硬

23、件故障2)自愿性中斷執(zhí)行I/O創(chuàng)立進(jìn)程分配內(nèi)存信號(hào)量操作發(fā)送/接收消息4. 微機(jī)中的中斷1. 可屏蔽中斷I/O中斷2. 不可屏蔽中斷機(jī)器內(nèi)部故障、掉電中斷3.程序錯(cuò)誤中斷溢出、除法錯(cuò)等中斷4.軟件中斷Trap指令或中斷指令I(lǐng)NT有的計(jì)算機(jī)中,為了區(qū)分和不喪失中斷信號(hào),對(duì)應(yīng)每個(gè)中斷源分別用一固定觸發(fā)器存放中斷信號(hào)規(guī)定值為1時(shí),表示有中斷信號(hào),為0時(shí)表示無(wú)這些觸發(fā)器的全體稱(chēng)為中斷存放器每個(gè)觸發(fā)器稱(chēng)為一個(gè)中斷位所以中斷存放器是由假設(shè)干個(gè)中斷位組成5. 中斷存放器6. 中斷響應(yīng)CPU如何響應(yīng)中斷, 兩個(gè)問(wèn)題:CPU何時(shí)響應(yīng)中斷? 通常在CPU執(zhí)行了一條指令以后,更確切地,在指令周期最后時(shí)刻接受中斷請(qǐng)求

24、,或此時(shí)掃描中斷存放器如何知道提出中斷請(qǐng)求的設(shè)備或中斷源? 因?yàn)橹挥兄乐袛嘣椿蛑袛嘣O(shè)備,才能調(diào)用相應(yīng)的中斷處理程序開(kāi)始取下一條指令執(zhí)行指令檢查指令處理中斷停止取周期執(zhí)行周期中斷周期不允許中斷允許中斷兩種解決方法:用軟件指令去查詢(xún)各設(shè)備接口 這種方法比較費(fèi)時(shí)多數(shù)微型機(jī)對(duì)此問(wèn)題的解決方法: 使用一種“向量中斷的硬件設(shè)施“向量中斷:當(dāng)CPU接受某中斷請(qǐng)求時(shí),該設(shè)備接口給處理器發(fā)送具有唯一性的“中斷向量,以標(biāo)識(shí)該設(shè)備“中斷向量在各計(jì)算機(jī)上實(shí)現(xiàn)方法差異比較大7. 中斷向量表 在有的機(jī)器中: 將主存最低位128個(gè)字保存作為中斷向量表,每個(gè)中斷向量占兩個(gè)字 中斷請(qǐng)求的設(shè)備接口為了標(biāo)識(shí)自己,向處理器發(fā)送一個(gè)

25、該設(shè)備在中斷向量表中表目的地址指針8. 中斷優(yōu)先級(jí) 在一些機(jī)器中,中斷優(yōu)先級(jí)按中斷類(lèi)型劃分: 以機(jī)器故障中斷的優(yōu)先級(jí)最高 程序中斷和訪問(wèn)管理程序中斷次之 外部中斷更次之 輸入輸出的優(yōu)先級(jí)最低9. 中斷屏蔽 在CPU上運(yùn)行的程序,有時(shí)由于種種原因,不希望其在執(zhí)行過(guò)程中被別的事件所中斷,稱(chēng)為中斷屏蔽。在PSW中設(shè)置中斷屏蔽碼以屏蔽某些指定的中斷類(lèi)型如果其PSW的中斷禁止位建立后,那么屏蔽中斷 不包括不可屏蔽的那些中斷如果PSW中的中斷禁止位未建立 那么可以接受其中斷優(yōu)先級(jí)高于運(yùn)行程序中斷優(yōu)先級(jí)的那些中斷各設(shè)備接口中也有中斷禁止位,以禁止該設(shè)備的中斷10. 實(shí)時(shí)處理的中斷對(duì)于以實(shí)時(shí)處理為主要任務(wù)的機(jī)

26、器,顯然,必須把具有重要意義傳感器發(fā)出的中斷作為高優(yōu)先級(jí),這樣才能有較好的響應(yīng)現(xiàn)代實(shí)時(shí)系統(tǒng)中,中斷優(yōu)先級(jí)的設(shè)計(jì)是靈活可變的,允許用戶(hù)根據(jù)應(yīng)用需要,選擇不同中斷優(yōu)先策略11. 中斷處理簡(jiǎn)單的中斷處理 - 典型的處理過(guò)程:1設(shè)備給處理器發(fā)一個(gè)中斷信號(hào)2處理器處理完當(dāng)前指令后響應(yīng)中斷,延遲非常短要求處理器沒(méi)有關(guān)閉中斷3處理器處理完當(dāng)前指令后檢測(cè)到中斷,判斷出中斷來(lái)源并向發(fā)送中斷的設(shè)備發(fā)送了確認(rèn)中斷信號(hào),確認(rèn)信號(hào)使得該設(shè)備將中斷信號(hào)恢復(fù)到一般狀態(tài)4處理器開(kāi)始為軟件處理中斷做準(zhǔn)備: 保存中斷點(diǎn)的程序執(zhí)行上下文環(huán)境,這通常包括程 序狀態(tài)字PSW,程序計(jì)數(shù)器PC中的下一條指令位置,一些存放器的值,它們通常保

27、存在系統(tǒng)控制棧中, 處理器狀態(tài)被切換到管態(tài)5處理器根據(jù)中斷源查詢(xún)中斷向量表,獲得與該中斷相聯(lián)系的處理程序入口地址,并將PC置成該地址,處理器開(kāi)始一個(gè)新的指令周期,控制轉(zhuǎn)移到中斷處理程序6中斷處理程序開(kāi)始工作,包括檢查I/O相關(guān)的狀態(tài)信息,操縱I/O設(shè)備或者在設(shè)備和主存之間傳送數(shù)據(jù)等等7中斷處理結(jié)束時(shí),處理器檢測(cè)到中斷返回指令,被中斷程序的上下文環(huán)境從系統(tǒng)堆棧中被恢復(fù) 處理器狀態(tài)恢復(fù)成原來(lái)的狀態(tài)。8PSW和PC被恢復(fù)成中斷前的值,處理器開(kāi)始一個(gè)新的指令周期,中斷處理結(jié)束簡(jiǎn)單的中斷處理過(guò)程12. 多個(gè)中斷的處理 假設(shè)中斷處理過(guò)程中又發(fā)生中斷,引起多中斷處理問(wèn)題兩種策略方法:第一種: 處理一個(gè)中斷時(shí)

28、禁止中斷,對(duì)任何新中斷置之不理,在這期間發(fā)生的中斷將保持掛起狀態(tài) 當(dāng)再次允許中斷時(shí),新中斷信號(hào)被處理器檢測(cè)到軟件實(shí)現(xiàn)方法: 在任何中斷處理前使用禁止中斷指令 在處理結(jié)束后開(kāi)放中斷指令 所有中斷嚴(yán)格按照發(fā)生順序處理 不考慮中斷緊急程度,無(wú)法到達(dá)較嚴(yán)格時(shí)間要求多中斷處理第一種策略方法第二種: 中斷按照優(yōu)先度分級(jí) 允許優(yōu)先級(jí)高中斷打斷優(yōu)先級(jí)低的中斷處理過(guò)程 這樣中斷優(yōu)先級(jí)技術(shù)將引起中斷處理的嵌套 只要適宜地定義中斷的優(yōu)先級(jí)別 方法一的弊端大都可以克服多中斷處理第二種策略方法13.典型的中斷處理1)I/O中斷由I/O設(shè)備的控制器或者通道發(fā)出兩類(lèi)I/O中斷:I/O操作正常結(jié)束如果要繼續(xù)I/O操作,需要在

29、準(zhǔn)備好以后重新啟動(dòng)I/O,假設(shè)請(qǐng)求I/O程序正處于等待I/O狀態(tài),那么應(yīng)將其喚醒I/O異常需要重新執(zhí)行失敗的I/O操作重試次數(shù)有上限,次數(shù)過(guò)大,系統(tǒng)將判定硬件故障 系統(tǒng)多道能力的重要推動(dòng)力量,時(shí)鐘中斷處理程序通常做與系統(tǒng)運(yùn)轉(zhuǎn)、管理和維護(hù)相關(guān)的工作,包括:維護(hù)軟件時(shí)鐘:系統(tǒng)有假設(shè)干個(gè)軟件時(shí)鐘,控制定時(shí)任務(wù)以及進(jìn)程的處理器時(shí)間配額,時(shí)鐘中斷需要維護(hù)、定時(shí)更新這些軟件時(shí)鐘處理器時(shí)間調(diào)度:維護(hù)當(dāng)前進(jìn)程時(shí)間片軟件時(shí)鐘,并在當(dāng)前進(jìn)程時(shí)間片到時(shí)以后運(yùn)行調(diào)度程序選擇下一個(gè)被調(diào)度的進(jìn)程控制系統(tǒng)定時(shí)任務(wù):通過(guò)軟件時(shí)鐘和調(diào)度程序定時(shí)激活一些系統(tǒng)任務(wù),如監(jiān)測(cè)死鎖、系統(tǒng)記帳、系統(tǒng)審計(jì)等實(shí)時(shí)處理2) 時(shí)鐘中斷3) 硬件故

30、障中斷 硬件故障中斷處理程序一般需要做的工作:保存現(xiàn)場(chǎng),使用一定警告手段,提供些輔助診斷信息在高可靠系統(tǒng)中,中斷處理程序還要評(píng)估系統(tǒng)可用性,盡可能恢復(fù)系統(tǒng)如Windows 2000/XP,關(guān)鍵硬件發(fā)生故障時(shí),如顯示卡損壞,出現(xiàn)系統(tǒng)藍(lán)屏,系統(tǒng)實(shí)際上進(jìn)入相應(yīng)故障處理程序,發(fā)現(xiàn)故障不可恢復(fù),那么在屏幕上打印出發(fā)生故障時(shí)程序位置,并開(kāi)始進(jìn)行內(nèi)存轉(zhuǎn)儲(chǔ)將一定范圍的內(nèi)存內(nèi)容寫(xiě)上磁盤(pán),是系統(tǒng)故障時(shí)的全系統(tǒng)“快照,備日后故障診斷程序指令出錯(cuò)、指令越權(quán)或者指令尋址越界而引發(fā)兩類(lèi)處理方法:只能由操作系統(tǒng)的相關(guān)擴(kuò)展功能模塊完成 多為程序試圖作不能做的操作引起的系統(tǒng)保護(hù) 如訪問(wèn)合法的、但不在內(nèi)存虛地址內(nèi),引發(fā)頁(yè)故障頁(yè)故

31、障一般會(huì)引發(fā)OS虛存模塊作一個(gè)頁(yè)面換入可由程序自己完成,如一些算術(shù)運(yùn)算錯(cuò)誤 不同程序可有不同處理方法,所以很多OS提供由用戶(hù)自己處理這類(lèi)中斷的“綠色通道 系統(tǒng)調(diào)試中斷斷點(diǎn)中斷、單步跟蹤也可被用戶(hù)程序處理,用以支持各種程序調(diào)試4) 程序性中斷5) 系統(tǒng)效勞請(qǐng)求自愿性中斷系統(tǒng)效勞請(qǐng)求由處理器專(zhuān)用指令訪管指令激發(fā)如x86處理器提供int指令,用來(lái)激發(fā)軟件中斷其他不少處理器那么提供系統(tǒng)調(diào)用指令syscall 執(zhí)行專(zhuān)用指令的結(jié)果是系統(tǒng)被切換到管態(tài),并且轉(zhuǎn)移到一段專(zhuān)門(mén)OS程序處開(kāi)始執(zhí)行指令格式通常是指令名加請(qǐng)求效勞識(shí)別號(hào)中斷號(hào)OS利用處理器提供的這種接口建立系統(tǒng)效勞體系處理器一般不負(fù)責(zé)定義系統(tǒng)調(diào)用所傳遞的

32、參數(shù)格式DOS:21h號(hào)中斷的系統(tǒng)效勞功能以及參數(shù)列表 現(xiàn)代操作系統(tǒng)一般不提供直接使用系統(tǒng)調(diào)用指令的接口,通常做法:提供一套方便、實(shí)用的應(yīng)用程序函數(shù)庫(kù)應(yīng)用程序設(shè)計(jì)接口API從應(yīng)用層面重新封裝系統(tǒng)調(diào)用屏蔽復(fù)雜的系統(tǒng)調(diào)用傳參問(wèn)題高級(jí)語(yǔ)言接口,有助于快速開(kāi)發(fā)有的系統(tǒng)在更高層面提供系統(tǒng)程序設(shè)計(jì)模板庫(kù)和類(lèi)庫(kù) 如Windows 2000/XP提供封裝系統(tǒng)用Win32 API和高層編程機(jī)制MFC以及ATL Linux提供封裝系統(tǒng)調(diào)用、符合POSIX標(biāo)準(zhǔn) API和C運(yùn)行庫(kù)6) 系統(tǒng)效勞請(qǐng)求實(shí)例設(shè)備控制器或其他系統(tǒng)硬件發(fā)出中斷處理器完成當(dāng)前指令的執(zhí)行處理器接受中斷處理器將PSW和PC推入系統(tǒng)堆棧處理器根據(jù)中斷類(lèi)

33、型讀入新的PC值中斷系統(tǒng)硬件完成的工作保存進(jìn)程狀態(tài)的其余信息進(jìn)程中斷恢復(fù)進(jìn)程狀態(tài)信息從系統(tǒng)堆?;謴?fù)原PSW和PC中斷系統(tǒng)軟件完成的工作程序狀態(tài)字指令計(jì)數(shù)器系統(tǒng)堆棧PSW1 PC1PSW2 PC2PSW3 PC3PSW4 PC4PSW5 PC5PC1PC2PC3強(qiáng)迫性中斷事件自愿性中斷事件保存現(xiàn)場(chǎng)信息保存現(xiàn)場(chǎng)信息取出中斷碼取出訪管號(hào)分析中斷原因分析何種系統(tǒng)調(diào)用轉(zhuǎn)相應(yīng)處理程序是否中斷嵌套由系統(tǒng)恢復(fù)現(xiàn)場(chǎng)由系統(tǒng)恢復(fù)現(xiàn)場(chǎng)轉(zhuǎn)低級(jí)調(diào)度程序返回上層中斷返回目態(tài)程序需要切換進(jìn)程 TFFT定義:通道是獨(dú)立于CPU的專(zhuān)門(mén)負(fù)責(zé)數(shù)據(jù)輸入/輸出傳輸工作的處理機(jī),對(duì)外部設(shè)備實(shí)現(xiàn)統(tǒng)一管理,代替CPU對(duì)輸入/輸出操作進(jìn)行控制,

34、從而使輸入,輸出操作可與CPU并行操作。 通道又稱(chēng)輸入輸出處理機(jī),術(shù)語(yǔ)“通道專(zhuān)指專(zhuān)門(mén)用來(lái)負(fù)責(zé)輸入輸出工作的處理機(jī)簡(jiǎn)稱(chēng)處理機(jī)。比起中央處理機(jī)來(lái),通道是一個(gè)比功能較弱、速度較慢、價(jià)格較為廉價(jià)的處理機(jī)。但“通道一詞在微型機(jī)中常指與或與處理機(jī)相連設(shè)備的單純的數(shù)據(jù)傳送通路,它并不具有處理機(jī)的功能。5.5.3. 通道技術(shù)1. 引入通道的目的 為了使CPU從I/O事務(wù)中解脫出來(lái),同時(shí)為了提高CPU與設(shè)備,設(shè)備與設(shè)備之間的并行工作能力 2. 通道類(lèi)型字節(jié)多路通道:通常按字節(jié)交叉的方式工作,適用于低速設(shè)備。數(shù)據(jù)選擇通道:按成組方式進(jìn)行數(shù)據(jù)傳輸,適用于高速設(shè)備。數(shù)組多路通道:綜合前二個(gè)優(yōu)點(diǎn)數(shù)據(jù)傳送率和通道利用率都

35、較高。 字節(jié)多路通道以字節(jié)為單位傳輸信息,它可以分時(shí)地執(zhí)行多個(gè)通道程序。當(dāng)一個(gè)通道程序控制某臺(tái)設(shè)備傳送一個(gè)字節(jié)后,通道硬件就控制轉(zhuǎn)去執(zhí)行另一個(gè)通道程序,控制另一臺(tái)設(shè)備傳送信息 主要連接以字節(jié)為單位的低速I(mǎi)/O設(shè)備。如打印機(jī),終端。 以字節(jié)為單位交叉?zhèn)鬏?,?dāng)一臺(tái)傳送一個(gè)字節(jié)后,立即轉(zhuǎn)去為另一臺(tái)傳送字節(jié)1) 字節(jié)多路通道 選擇通道是以成組方式工作的,即每次傳送一批數(shù)據(jù),故傳送速度很高。選擇通道在一段時(shí)間內(nèi)只能執(zhí)行一個(gè)通道程序,只允許一臺(tái)設(shè)備進(jìn)行數(shù)據(jù)傳輸 當(dāng)這臺(tái)設(shè)備數(shù)據(jù)傳輸完成后,再選擇與通道連接的另一臺(tái)設(shè)備,執(zhí)行它的相應(yīng)的通道程序 主要連接磁盤(pán),磁帶等高速I(mǎi)/O設(shè)備 2) 選擇通道 選擇通道選擇通

36、道 成組多路通道結(jié)合了選擇通道傳送速度高和字節(jié)多路通道能進(jìn)行分時(shí)并行操作的優(yōu)點(diǎn)。它先為一臺(tái)設(shè)備執(zhí)行一條通道指令,然后自動(dòng)轉(zhuǎn)接,為另一臺(tái)設(shè)備執(zhí)行一條通道指令 主要連接高速設(shè)備 這樣,對(duì)于連接多臺(tái)磁盤(pán)機(jī)的數(shù)組多路通道,它可以啟動(dòng)它們同時(shí)執(zhí)行移臂定位操作,然后,按序交叉地傳輸一批批數(shù)據(jù)。數(shù)據(jù)多路通道實(shí)際上是對(duì)通道程序采用多道程序設(shè)計(jì)的硬件實(shí)現(xiàn) 3)成組多路通道 3. 硬件連接結(jié)構(gòu) 通道:執(zhí)行通道程序,向控制器發(fā)出命令,并具有向CPU發(fā)中斷信號(hào)的功能。 一旦CPU發(fā)出指令,啟動(dòng)通道,那么通道獨(dú)立于CPU工作。一個(gè)通道可連接多個(gè)控制器,一個(gè)控制器可連接多個(gè)設(shè)備,形成樹(shù)形交叉連接 主要目的是啟動(dòng)外設(shè)時(shí):

37、a 提高了控制器效率 b 提高可靠性 c 提高并行度交叉連接5 通道相當(dāng)于一個(gè)功能簡(jiǎn)單的處理機(jī),包含通道指令空操作,讀操作,寫(xiě)操作,控制,轉(zhuǎn)移操作,并可執(zhí)行用這些指令編寫(xiě)的通道程序 4. 通道工作原理通道地址字 CAW: 記錄通道程序在內(nèi)存中的地址通道命令字 CCW: 保存正在執(zhí)行的通道指令通道狀態(tài)字 CSW: 存放通道執(zhí)行后的返回結(jié)果通道數(shù)據(jù)字 CDW:存放傳輸數(shù)據(jù) 通道和CPU共用內(nèi)存,通過(guò)周期竊取方式取得1) 通道運(yùn)算控制部件 用于I/O操作的命令主要有兩種: I/O指令:?jiǎn)?dòng)通道程序 通道命令:對(duì)I/O操作進(jìn)行控制 讀、反讀、寫(xiě)、測(cè)試設(shè)備狀態(tài)的數(shù)據(jù)傳輸命令、用于設(shè)備控制的命令磁帶反繞、

38、換頁(yè)、實(shí)現(xiàn)通道程序內(nèi)部控制的轉(zhuǎn)移命令 2) 通道命令 命令格式一般包括: 操作碼、數(shù)據(jù)傳輸內(nèi)存地址、特征位、計(jì)數(shù)器 3) 通道命令格式 CPU:執(zhí)行用戶(hù)程序,當(dāng)遇到I/O請(qǐng)求時(shí),可根據(jù)該請(qǐng)求生成通道程序放入內(nèi)存也可事先編好放入內(nèi)存,并將該通道程序的首地址放入CAW中;之后執(zhí)行“啟動(dòng)I/O指令,啟動(dòng)通道工作。 通道:接收到“啟動(dòng)I/O指令后,從CAW中取出通道程序的首地址,并根據(jù)首地址取出第一條指令放入CCW中,同時(shí)向CPU發(fā)答復(fù)信號(hào),使CPU可繼續(xù)執(zhí)行其他程序,而通道那么開(kāi)始執(zhí)行通道程序,完成傳輸工作。 4)工作原理通道程序完成實(shí)際I/O,啟動(dòng)I/O設(shè)備,執(zhí)行完畢后,如果還有下一條指令,那么繼

39、續(xù)執(zhí)行, 否那么表示傳輸完成 當(dāng)通道傳輸完成最后一條指令時(shí),向CPU發(fā)I/O中斷,并且通道停止工作。CPU接收中斷信號(hào),從CSW中取得有關(guān)信息,決定下一步做什么 5. 通道與CPU的關(guān)系主從關(guān)系可并行工作有通信方式作用不同通道/; 計(jì)算6.通道的開(kāi)展新的通道思想綜合了許多新的技術(shù)在個(gè)人計(jì)算機(jī)中,芯片組中專(zhuān)門(mén)I/O處理的芯片,稱(chēng)為IOPIO Processor,發(fā)揮通道的作用IBM 390 中,沿用了輸入輸出通道概念 IBM于1998年推出光纖通道技術(shù)稱(chēng)為FICON,可通過(guò) FICON 連接多達(dá)127個(gè)大容量I/O設(shè)備。傳輸速度是333MHzs,未來(lái)將到達(dá)1GHzs。 光纖通道技術(shù)具有數(shù)據(jù)傳輸速

40、率高、傳輸距離遠(yuǎn),可簡(jiǎn)化大型存儲(chǔ)系統(tǒng)設(shè)計(jì)的優(yōu)點(diǎn) 在大容量高速存儲(chǔ),如大型數(shù)據(jù)庫(kù)、多媒體、數(shù)字影像等應(yīng)用領(lǐng)域,有廣泛前景。5.5.4. DMA 技術(shù)1. DMA 方式與中斷的主要區(qū)別中斷方式是在數(shù)據(jù)緩沖存放區(qū)滿(mǎn)后,發(fā)中斷請(qǐng)求,CPU進(jìn)行中斷處理 DMA方式那么是在所要求傳送的數(shù)據(jù)塊全部傳送結(jié)束時(shí)要求CPU進(jìn)行中斷處理 大大減少了CPU進(jìn)行中斷處理的次數(shù)中斷方式的數(shù)據(jù)傳送是由CPU控制完成的 而DMA方式那么是在DMA控制器的控制下不經(jīng)過(guò)CPU控制完成的 不用DMA時(shí),磁盤(pán)如何讀:首先,控制器從磁盤(pán)驅(qū)動(dòng)器串行地一位一位地讀一個(gè)塊,直到將整塊信息放入控制器的內(nèi)部緩沖區(qū)中其次,它做和校驗(yàn)計(jì)算,以核實(shí)沒(méi)

41、有讀錯(cuò)誤發(fā)生然后控制器產(chǎn)生一個(gè)中斷。CPU響應(yīng)中斷,控制轉(zhuǎn)給操作系統(tǒng)。當(dāng)操作系統(tǒng)開(kāi)始運(yùn)行時(shí),它重復(fù)地從控制器緩沖區(qū)中一次一個(gè)字節(jié)或一個(gè)字地讀這個(gè)磁盤(pán)塊的信息,并將其送入內(nèi)存中控制器按照指定存儲(chǔ)器地址,把第一個(gè)字節(jié)送入主存然后,按指定字節(jié)數(shù)進(jìn)行數(shù)據(jù)傳送每當(dāng)傳送一個(gè)字節(jié)后,字節(jié)計(jì)數(shù)器值減1,直到字節(jié)計(jì)數(shù)器等于0此時(shí),控制器引發(fā)中斷,通知操作系統(tǒng),操作完成CPU提供被讀取塊磁盤(pán)地址目標(biāo)存儲(chǔ)地址待讀取字節(jié)數(shù)整塊數(shù)據(jù)讀進(jìn)緩沖區(qū)核準(zhǔn)校驗(yàn)2.DMA工作例如以硬盤(pán)為例 存放輸入數(shù)據(jù)的內(nèi)存起始地址、要傳送的字節(jié)數(shù)送入DMA控制器的內(nèi)存地址存放器和傳送字節(jié)計(jì)數(shù)器,中斷允許位和啟動(dòng)位置成1,啟動(dòng)設(shè)備 發(fā)出傳輸要求的

42、進(jìn)程進(jìn)入等待狀態(tài) 執(zhí)行指令被暫時(shí)掛起,進(jìn)程調(diào)度其他進(jìn)程占據(jù)CPU 輸入設(shè)備不斷竊取CPU工作周期,數(shù)據(jù)不斷寫(xiě)入內(nèi)存 傳送完畢,發(fā)出中斷信號(hào) CPU接到中斷信號(hào)轉(zhuǎn)入中斷處理程序處理 中斷處理結(jié)束,CPU返回原進(jìn)程或切換到新的進(jìn)程3.DMA工作原理竊取總線控制權(quán)CPU向控制器發(fā)出啟動(dòng)DMA通知和有關(guān)參數(shù)控制器向內(nèi)存發(fā)出詢(xún)問(wèn)請(qǐng)求訪問(wèn)內(nèi)存讀、寫(xiě)計(jì)數(shù)器減1結(jié)束否發(fā)中斷NYDMA的實(shí)現(xiàn)流程1. 緩沖技術(shù)的引入但凡數(shù)據(jù)到達(dá)和離去速度不匹配的地方均可采用緩沖技術(shù)。緩沖區(qū):有一定容量、暫存信息的存貯裝置。在操作系統(tǒng)中采用緩沖是為了實(shí)現(xiàn)數(shù)據(jù)的I/O操作,以緩解CPU與外部設(shè)備之間速度不匹配的矛盾,提高資源利用率5

43、.5.5.緩沖技術(shù)2. 引入緩沖區(qū)的好處提高硬件的并行操作能力;減少了I/O設(shè)備對(duì)處理器的中斷請(qǐng)求次數(shù)簡(jiǎn)化了中斷機(jī)制節(jié)省了系統(tǒng)開(kāi)銷(xiāo)3. 引入緩沖區(qū)的缺點(diǎn)在系統(tǒng)區(qū)要設(shè)置相當(dāng)大的緩沖池才能滿(mǎn)足所有的請(qǐng)求。從系統(tǒng)緩沖區(qū)傳送數(shù)據(jù)到調(diào)用進(jìn)程緩沖區(qū)要花費(fèi)額外的時(shí)間,增加了系統(tǒng)的總開(kāi)銷(xiāo)。硬緩沖:在設(shè)備中設(shè)置緩沖區(qū),由硬件實(shí)現(xiàn)軟緩沖:在內(nèi)存中開(kāi)辟一個(gè)空間,用作緩沖區(qū)4. 緩沖區(qū)設(shè)置5. 幾種緩沖技術(shù)1)單緩沖2)雙緩沖如以下圖a、b3)多緩沖:多個(gè)緩沖按順序構(gòu)成環(huán)形,先進(jìn)先出隊(duì)列的形式,設(shè)頭尾、指針指向同一個(gè)緩沖區(qū)。頭、尾指針讀寫(xiě)時(shí)不能相互超越。4)緩沖池。緩沖池為多個(gè)設(shè)備共享,設(shè)備需要時(shí)才接上,用完歸還。雙

44、緩沖a雙緩沖b5) 緩沖池管理程序 緩沖池管理程序負(fù)責(zé)緩沖池內(nèi)的組織,管理摘鏈、掛鏈,協(xié)調(diào)控制程序與用戶(hù)程序的工作。 終端輸入軟件中的鍵盤(pán)驅(qū)動(dòng)程序 任務(wù)之一:收集字符 兩種常見(jiàn)的字符緩沖方法:公共緩沖池驅(qū)動(dòng)程序中終端數(shù)據(jù)結(jié)構(gòu)緩沖6 緩沖例子終端數(shù)據(jù)結(jié)構(gòu)公共緩沖池終端0123終端數(shù)據(jù)結(jié)構(gòu)終端01終端0的緩沖區(qū)終端1的緩沖區(qū)公共緩沖池 終端固定緩沖區(qū) 新一代計(jì)算機(jī)出現(xiàn),帶來(lái)了總線技術(shù)的更新 1.總線的根本概念: 在計(jì)算機(jī)系統(tǒng)內(nèi)各種子系統(tǒng),如CPU、內(nèi)存、I/O設(shè)備等之間構(gòu)建公用的信號(hào)或數(shù)據(jù)傳輸通道,這種可共享連接的傳輸通道稱(chēng)為總線。5.5.6.總線技術(shù)總線的分類(lèi)CPU-內(nèi)存總線I/O總線數(shù)據(jù)總線地

45、址總線控制總線非本課程范圍 2. 總線的分類(lèi)微型計(jì)算機(jī)總線的種類(lèi)和開(kāi)展PCXT總線ISA總線MCA總線EISA總線VESA總線 PCI總線USB總線.(?)(?)(過(guò)時(shí))1394總線SCSI總線 USBUniversal Serial Bus通用串行總線,是一種連接I/O串行設(shè)備的技術(shù)標(biāo)準(zhǔn)沖破了計(jì)算機(jī)技術(shù)開(kāi)展的兩個(gè)歷史局限性: 1由于I/O設(shè)備的接口標(biāo)準(zhǔn)的不一致和有限的接口數(shù)量已無(wú)法滿(mǎn)足各種應(yīng)用迫切需要 2傳統(tǒng)的I/O設(shè)備的接口無(wú)法滿(mǎn)足實(shí)時(shí)數(shù)據(jù)傳輸與多媒體應(yīng)用的需求USB以WDMWindows Driver Model模型為根底,WDM包含一套通用的I/O效勞和二進(jìn)制兼容的設(shè)備驅(qū)動(dòng)程序 3.

46、USB技術(shù)USB支持同步數(shù)據(jù)傳輸方式和異步數(shù)據(jù)傳輸方式,其數(shù)據(jù)傳輸率有低速15Mbps和全速12Mbps兩種,比標(biāo)準(zhǔn)串口快100倍,比標(biāo)準(zhǔn)并口快10倍USB可以主動(dòng)為外部設(shè)備提供電源,允許外部設(shè)備快速連接,具有即插即用的功能允許外部設(shè)備的熱插拔1) USB的結(jié)構(gòu)控制器:控制器主要負(fù)責(zé)執(zhí)行由控制器驅(qū)動(dòng)程序發(fā)出的命令控制器驅(qū)動(dòng)程序:控制器驅(qū)動(dòng)程序在控制器與USB設(shè)備之間建立通信信道USB芯片驅(qū)動(dòng)程序:USB芯片驅(qū)動(dòng)程序提供了對(duì)USB的支持USB設(shè)備分為兩類(lèi): 1USB集線器:本身可再接其他USB外圍設(shè)備 2USB設(shè)備:連接在計(jì)算機(jī)上用來(lái)完成特定功能并符合USB標(biāo)準(zhǔn)的I/O設(shè)備單元,如鼠標(biāo)、鍵盤(pán)等2

47、) USB的傳輸方式4種不同的數(shù)據(jù)傳輸方式:1等時(shí)傳輸方式 以固定的傳輸速率,連續(xù)不斷傳輸數(shù)據(jù),發(fā)生錯(cuò)誤時(shí),USB不處理,而是繼續(xù)傳送新的數(shù)據(jù)。用于需要連續(xù)傳輸,且對(duì)數(shù)據(jù)的正確性要求不高而對(duì)時(shí)間極為敏感的外部設(shè)備,如麥克風(fēng)、音箱以及 等2中斷傳輸方式 該方式傳送的數(shù)據(jù)量很小,但這些數(shù)據(jù)需要及時(shí)處理,以到達(dá)實(shí)時(shí)效果,此方式主要用在鍵盤(pán)、鼠標(biāo)以及游戲手柄等外部設(shè)備上3控制傳輸方式 處理主機(jī)的USB設(shè)備的數(shù)據(jù)傳輸,包括設(shè)備控制指令、設(shè)備狀態(tài)查詢(xún)及確認(rèn)命令。當(dāng)USB設(shè)備收到這些數(shù)據(jù)和命令后將按照先進(jìn)先出的原那么按隊(duì)列方式處理到達(dá)的數(shù)據(jù)4批傳輸方式 用來(lái)傳輸要求正確無(wú)誤的數(shù)據(jù)。通常打印機(jī)、掃描儀和數(shù)碼相

48、機(jī)以這種方式與主機(jī)連接除等時(shí)傳輸方式外,其他3種方式在數(shù)據(jù)傳輸發(fā)生錯(cuò)誤時(shí),都會(huì)試圖重新發(fā)送數(shù)據(jù)以保證其準(zhǔn)確性USB的傳輸方式續(xù) 4. SCSI接口技術(shù) 小型計(jì)算機(jī)系統(tǒng)接口Small Computer System Interface 一個(gè)SCSI I/O設(shè)備控制器 可將新型高速I(mǎi)/O設(shè)備增加到計(jì)算機(jī)系統(tǒng)中 SCSI 設(shè)備控制器的智能化I/O控制 降低了計(jì)算機(jī)系統(tǒng)的負(fù)擔(dān) 使計(jì)算機(jī)系統(tǒng)具有更高的I/O能力SCSI系統(tǒng)結(jié)構(gòu)計(jì)算機(jī)系統(tǒng)I/O設(shè)備與部件配置的應(yīng)用技術(shù)顧名思義: 插入就可用,不需要進(jìn)行任何設(shè)置操作 5. 即插即用技術(shù)(Plug and Play 由于一個(gè)系統(tǒng)可以配置多種外部設(shè)備,設(shè)備也經(jīng)常

49、變動(dòng)和更換,它們都要占有一定的系統(tǒng)資源,彼此間在硬件和軟件上可能會(huì)產(chǎn)生沖突。因此在系統(tǒng)中要正確地對(duì)它們進(jìn)行配置和資源匹配;當(dāng)設(shè)備撤除、添置和進(jìn)行系統(tǒng)升級(jí)時(shí),配置過(guò)程往往是一個(gè)困難的過(guò)程。1) PnP技術(shù)的產(chǎn)生 1支持I/O設(shè)備及部件的自動(dòng)配置,使用戶(hù)能夠簡(jiǎn)單方便地使用系統(tǒng)擴(kuò)充設(shè)備 2減少由制造商裝入的種種用戶(hù)支持和限制,簡(jiǎn)化部件的硬件跳接設(shè)置,使I/O附加卡和部件不再具有人工跳接線設(shè)置電路3在主機(jī)板和附加卡上保存系統(tǒng)資源的配置參數(shù)和分配狀態(tài),有利于系統(tǒng)對(duì)整個(gè)I/O資源的分配和控制 4支持和兼容各種操作系統(tǒng)平臺(tái),具有很強(qiáng)的擴(kuò)展性和可移植性。 5在一定程度上具有“熱插入、“熱拼接技術(shù)2) PnP技

50、術(shù)的特點(diǎn) 功能: 1附加卡的識(shí)別與確認(rèn) 2資源分配 3附加卡自動(dòng)配置 多方面的支持:具有PnP功能的操作系統(tǒng)、配置管理軟件、軟件安裝程序、設(shè)備驅(qū)動(dòng)程序等;網(wǎng)絡(luò)設(shè)備的PnP支持;系統(tǒng)平臺(tái)的支持如:PnP主機(jī)板、控制芯片組和PnP BIOS等;各種支持PnP標(biāo)準(zhǔn)的總線的I/O控制卡和部件3) PnP技術(shù)的功能及支持6. 網(wǎng)絡(luò)I/O設(shè)備網(wǎng)絡(luò)計(jì)算已成為計(jì)算機(jī)開(kāi)展的方向之一典型網(wǎng)絡(luò)I/O設(shè)備網(wǎng)絡(luò)打印以往的打印模式 打印機(jī)連接到網(wǎng)上PC上,或連到文件效勞器上,提供網(wǎng)絡(luò)打印效勞新的網(wǎng)絡(luò)打印 采用網(wǎng)絡(luò)打印效勞器技術(shù),打印機(jī)直接上網(wǎng) 任何數(shù)據(jù)直接送到網(wǎng)絡(luò)打印機(jī)輸出 打印效勞器還能實(shí)現(xiàn)多種網(wǎng)絡(luò)自動(dòng)切換:不同網(wǎng)絡(luò)環(huán)

51、境中的用戶(hù)都可以直接向同一臺(tái)打印機(jī)發(fā)送打印作業(yè),打印效勞器會(huì)自動(dòng)識(shí)別較強(qiáng)的打印管理功能:可以管理網(wǎng)絡(luò)打印驅(qū)動(dòng),而且容易安裝和管理;可以實(shí)現(xiàn)遠(yuǎn)程登錄訪問(wèn),進(jìn)行遠(yuǎn)程打印機(jī)管理提高工作效率分布式的環(huán)境設(shè)置:可以安裝在網(wǎng)絡(luò)的任何地方,這種打印效勞方式,就顯得更加靈活和滿(mǎn)足需要QoS更好7. 網(wǎng)絡(luò)打印設(shè)備第五章設(shè)備管理 5.6設(shè)備分配與設(shè)備處理 當(dāng)某進(jìn)程向系統(tǒng)提出I/O請(qǐng)求時(shí),設(shè)備分配程序按一定策略分配設(shè)備、控制器和通道,形成一條數(shù)據(jù)傳輸通路,以供主機(jī)和設(shè)備間信息交換 設(shè)備分配與回收設(shè)備獨(dú)立性,即不能因?yàn)樵O(shè)備的忙碌、故障或更換而影響程序的運(yùn)行, 向用戶(hù)屏蔽物理設(shè)備, 呈現(xiàn)給用戶(hù)的一個(gè)操作簡(jiǎn)單的邏輯設(shè)備抽

52、象的I/O 操作,即設(shè)計(jì)一類(lèi)通用的I/O指令,它們的含義對(duì)不同類(lèi)型的設(shè)備作不同解釋。而且,在操作系統(tǒng)中,提供了假設(shè)干I/O系統(tǒng)調(diào)用。由系統(tǒng)將抽象的I/O 操作映射到專(zhuān)門(mén)的設(shè)備驅(qū)動(dòng)程序1. 設(shè)備管理中的數(shù)據(jù)結(jié)構(gòu)在多通路的系統(tǒng)中,為了滿(mǎn)足一個(gè)請(qǐng)求,不僅僅是分配一個(gè)設(shè)備的問(wèn)題,還應(yīng)分配相應(yīng)的控制器和通道,以確保與設(shè)備之間能進(jìn)行通信,在存儲(chǔ)器與/設(shè)備之間能進(jìn)行數(shù)據(jù)的直接存取。設(shè)備管理程序?qū)υO(shè)備進(jìn)行分配和控制是借助于一些表格;表格中記錄了對(duì)設(shè)備控制所需之信息。它們是設(shè)備管理程序?qū)崿F(xiàn)管理功能的數(shù)據(jù)結(jié)構(gòu)。 數(shù)據(jù)結(jié)構(gòu)續(xù)控制所需之信息。它們是設(shè)備管理程序?qū)崿F(xiàn)管理功能的數(shù)據(jù)結(jié)構(gòu)。如下表:設(shè)備控制表()每個(gè)設(shè)備一個(gè)

53、控制器表()每個(gè)控制器一個(gè)通道表()每個(gè)通道一個(gè)系統(tǒng)設(shè)備表()整個(gè)系統(tǒng)一個(gè) 整個(gè)系統(tǒng)一張表,記錄系統(tǒng)中所有I/O設(shè)備的信息,表目包括: 設(shè)備類(lèi)型、設(shè)備標(biāo)識(shí)符、進(jìn)程標(biāo)識(shí)符、DCT表指針等1) 系統(tǒng)設(shè)備表SDT 主要內(nèi)容:設(shè)備類(lèi)型、設(shè)備標(biāo)識(shí)符、設(shè)備狀態(tài)、與此設(shè)備相連的COCT、重復(fù)執(zhí)行的次數(shù)或時(shí)間、等待隊(duì)列的隊(duì)首和隊(duì)尾指針、I/O程序地址 3)COCT 4)CHCT COCT和CHCT與DCT類(lèi)似2) 設(shè)備控制表DCT 設(shè)備控制 通道控制 控制器控制 塊(DCB) 塊CHCB) 塊COCB設(shè)備標(biāo)示符通道標(biāo)示符控制器標(biāo)示符設(shè)備狀態(tài)通道狀態(tài)控制器狀態(tài)與設(shè)備相連的控制器表與通道相連的控制器表與控制器相連

54、的通道表等待此設(shè)備的進(jìn)程表 等待此通道的進(jìn)程表 等待控制器的進(jìn)程表 三種控制塊 由于在多道程序系統(tǒng)中,進(jìn)程數(shù)多于資源數(shù),引起資源的競(jìng)爭(zhēng)。因此,要有一套合理的分配原那么 考慮的因素: * I/O設(shè)備的固有屬性 * I/O設(shè)備的分配算法 * 設(shè)備分配的平安性 * 與設(shè)備的無(wú)關(guān)性2. 設(shè)備分配策略1) 獨(dú)享、共享、虛擬分配技術(shù)獨(dú)享分配方式:即一個(gè)設(shè)備分配給某作業(yè)后便由該作業(yè)獨(dú)占,直到該作業(yè)完成并釋放后,其它作業(yè)方能使用。大多數(shù)低度速設(shè)備都屬于獨(dú)享設(shè)備。共享分配方式:如磁盤(pán)、磁鼓之類(lèi)的外存儲(chǔ)器,既具有很能大的存儲(chǔ)容量,其定位操作的時(shí)間又短,因此,它們可為假設(shè)干作業(yè)所共享。虛擬分配方式:把一臺(tái)輸入機(jī)虛擬

55、為幾臺(tái)“虛擬的輸入機(jī)。例如:為了提高設(shè)備利用率引入了脫機(jī)輸入輸出或采用技術(shù),變一臺(tái)為“多臺(tái)設(shè)備要考慮充分發(fā)揮效率,防止由于不合理的分配策略造成死鎖。靜態(tài)分配:在進(jìn)程運(yùn)行前, 完成設(shè)備分配;運(yùn)行結(jié)束時(shí),收回設(shè)備 缺點(diǎn):設(shè)備利用率低動(dòng)態(tài)分配: 在進(jìn)程運(yùn)行過(guò)程中,當(dāng)用戶(hù)提出設(shè)備要求時(shí),進(jìn)行分配,一旦停止使用立即收回 優(yōu)點(diǎn):效率好 缺點(diǎn):分配策略不好時(shí), 產(chǎn)生死鎖獨(dú)占設(shè)備的分配 由于同時(shí)有多個(gè)進(jìn)程同時(shí)訪問(wèn),且訪問(wèn)頻繁,就會(huì)影響整個(gè)設(shè)備使用效率,影響系統(tǒng)效率。因此要考慮多個(gè)訪問(wèn)請(qǐng)求到達(dá)時(shí)效勞的順序,使平均效勞時(shí)間越短越好。共享設(shè)備分配 2)/設(shè)備的分配算法 /設(shè)備的分配機(jī)制,除了與設(shè)備的固有屬性有關(guān)外,

56、還與系統(tǒng)所采用的分配策略有關(guān)。/設(shè)備的分配與進(jìn)程調(diào)度很能相似,同樣可采用如下的一些算法:先請(qǐng)求先效勞:當(dāng)有多個(gè)進(jìn)程對(duì)同一設(shè)備提出/請(qǐng)求時(shí),該算法要求把所有發(fā)出/請(qǐng)求的進(jìn)程,按其發(fā)出請(qǐng)求的先后次序排成一個(gè)等待該設(shè)備的隊(duì)列。設(shè)備分配程序把/設(shè)備分配給隊(duì)列中第一個(gè)進(jìn)程。優(yōu)先權(quán)最高者優(yōu)先。對(duì)于何必先權(quán)相同的請(qǐng)求,那么按先請(qǐng)求先分配的原那么排隊(duì)。3) 設(shè)備分配的平安性 為了能同時(shí)操作多個(gè)/設(shè)備以加速進(jìn)程的推進(jìn),應(yīng)使得某進(jìn)程以命令形式發(fā)出/請(qǐng)求后,仍可繼續(xù)運(yùn)行,需要時(shí)又可發(fā)出第二個(gè)、第三個(gè)/請(qǐng)求。多請(qǐng)求方式的缺點(diǎn)是,設(shè)備分配不平安,因?yàn)樗邆湔?qǐng)求和保持條件,因而有可能產(chǎn)生死鎖的情況。由此可見(jiàn),在多請(qǐng)求方式

57、中,設(shè)備的分配程序應(yīng)保證不發(fā)生進(jìn)程死鎖。 4) 與設(shè)備無(wú)關(guān)性 為了提高系統(tǒng)的可適應(yīng)性和可擴(kuò)展性,我們希望 所編制的用戶(hù)程序與實(shí)際使用的物理設(shè)備無(wú)關(guān),這就是所謂與設(shè)備無(wú)關(guān)性。 為此,我們將邏輯設(shè)備與物理設(shè)備區(qū)分,并引入邏輯設(shè)備名稱(chēng)和物理設(shè)備名稱(chēng)的概念。為了實(shí)現(xiàn)與設(shè)備的無(wú)關(guān)性,系統(tǒng)中必須有一張聯(lián)系邏輯設(shè)備名稱(chēng)和物理設(shè)備名稱(chēng)的映射表,表3. 系統(tǒng)的邏輯設(shè)備表邏輯設(shè)備號(hào)物理設(shè)備號(hào)驅(qū)動(dòng)程序地址172042027204203220E00441FC106120D02772042015101FC1016111FC120邏輯設(shè)備與物理設(shè)備 這個(gè)中為三個(gè)不同的邏輯設(shè)備號(hào)列出了同樣的物理設(shè)備和驅(qū)動(dòng)程序的地址。這說(shuō)明

58、邏輯設(shè)備,目前均得到同一個(gè)物理設(shè)備的效勞這或許是因?yàn)榧す獯蛴C(jī)及字母型打印機(jī)正在被修理,因此本來(lái)輸出到這些設(shè)備上的請(qǐng)求都移到行式打印機(jī)。在這個(gè)映射表中我們還可以看到物理設(shè)備和都是由同一個(gè)驅(qū)動(dòng)程序效勞的。這是假定它們是同一類(lèi)型的終端。例如所有的終端均由一個(gè)驅(qū)動(dòng)程序效勞。 4. 設(shè)備分配程序 當(dāng)系統(tǒng)中已經(jīng)設(shè)置了數(shù)據(jù)結(jié)構(gòu),且確定了一定的分配原那么后,如果某進(jìn)程提出了請(qǐng)求,便可按下述步驟進(jìn)行設(shè)備分配:根據(jù)用戶(hù)請(qǐng)求的I/O設(shè)備的邏輯名,查找邏輯設(shè)備和物理設(shè)備的映射表;以物理設(shè)備為索引,查找SDT,找到該設(shè)備所連接的DCT;繼續(xù)查找與該設(shè)備連接的COCT和CHCT,就找到了一條通路。即:分配設(shè)備 分配控制

59、器-分配通道為進(jìn)程P分配所需的I/O設(shè)備從SDT表查該類(lèi)設(shè)備的控制表DCT由DCT檢查該設(shè)備忙否?不忙檢查分配此設(shè)備的平安性?不平安分配此設(shè)備給進(jìn)程P查此設(shè)備連接的COCT忙否?不忙不忙分配此控制器給進(jìn)程P查此控制器連接的CHCT忙否?最后一個(gè)DCT?分配此通道給進(jìn)程P啟動(dòng)I/O,進(jìn)行具體的I/O操作忙進(jìn)程P的PCB放入此設(shè)備的等待隊(duì)列YN忙最后一個(gè)COCT?最后一個(gè)DCT?進(jìn)程 P 的 PCB 放入此控制器的等待隊(duì)列YNY忙最后一個(gè)CHCT?Y最后一個(gè)COCT?進(jìn)程 P 的 PCB 放入此通道的等待隊(duì)列NYNN多通路設(shè)備分配流程示意圖5.6.2 設(shè)備處理 (1) 接收由I/O進(jìn)程發(fā)來(lái)的命令和

60、參數(shù),并將命令中的抽象要求轉(zhuǎn)換為具體要求,例如,將磁盤(pán)塊號(hào)轉(zhuǎn)換為磁盤(pán)的盤(pán)面、 磁道號(hào)及扇區(qū)號(hào)。 (2) 檢查用戶(hù)I/O請(qǐng)求的合法性,了解I/O設(shè)備的狀態(tài),傳遞有關(guān)參數(shù),設(shè)置設(shè)備的工作方式。1. 設(shè)備驅(qū)動(dòng)程序的功能和特點(diǎn)1) 設(shè)備驅(qū)動(dòng)程序的功能 (3) 發(fā)出I/O命令,如果設(shè)備空閑,便立即啟動(dòng)I/O設(shè)備去完成指定的I/O操作;如果設(shè)備處于忙碌狀態(tài),那么將請(qǐng)求者的請(qǐng)求塊掛在設(shè)備隊(duì)列上等待。 (4) 及時(shí)響應(yīng)由控制器或通道發(fā)來(lái)的中斷請(qǐng)求,并根據(jù)其中斷類(lèi)型調(diào)用相應(yīng)的中斷處理程序進(jìn)行處理。 (5) 對(duì)于設(shè)置有通道的計(jì)算機(jī)系統(tǒng),驅(qū)動(dòng)程序還應(yīng)能夠根據(jù)用戶(hù)的I/O請(qǐng)求,自動(dòng)地構(gòu)成通道程序。 2) 設(shè)備處理方式

溫馨提示

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

評(píng)論

0/150

提交評(píng)論