設(shè)備管理培訓(xùn)課件(PPT 137頁)
《設(shè)備管理培訓(xùn)課件(PPT 137頁)》由會(huì)員分享,可在線閱讀,更多相關(guān)《設(shè)備管理培訓(xùn)課件(PPT 137頁)(139頁珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、第五章第五章 設(shè)備管理設(shè)備管理nI/O系統(tǒng)是計(jì)算機(jī)系統(tǒng)的重要組成部分系統(tǒng)是計(jì)算機(jī)系統(tǒng)的重要組成部分nI/O系統(tǒng)包括用于實(shí)現(xiàn)系統(tǒng)包括用于實(shí)現(xiàn)信息輸入、輸出和存信息輸入、輸出和存儲(chǔ)儲(chǔ)功能的設(shè)備和相應(yīng)的控制器功能的設(shè)備和相應(yīng)的控制器n設(shè)備管理的設(shè)備管理的基本任務(wù)基本任務(wù)是是完成用戶提出的完成用戶提出的I/O請(qǐng)求,提高請(qǐng)求,提高I/O速率以及改善速率以及改善I/O的利用率的利用率n設(shè)備管理的設(shè)備管理的主要功能主要功能有有緩沖區(qū)管理、設(shè)備緩沖區(qū)管理、設(shè)備分配、設(shè)備處理、虛擬設(shè)備分配、設(shè)備處理、虛擬設(shè)備及及實(shí)現(xiàn)設(shè)備獨(dú)實(shí)現(xiàn)設(shè)備獨(dú)立性。立性。第五章設(shè) 備 管 理5.1I/O系統(tǒng)系統(tǒng)5.2I/O控制方式控制方式
2、5.3緩沖管理緩沖管理5.4I/O軟件軟件5.5設(shè)備分配設(shè)備分配5.6磁盤存儲(chǔ)器的管理磁盤存儲(chǔ)器的管理 5.1 I/O系統(tǒng)系統(tǒng)nI/O系統(tǒng)的組成系統(tǒng)的組成n直接用于直接用于I/O和存儲(chǔ)信息的設(shè)備和存儲(chǔ)信息的設(shè)備n相應(yīng)的設(shè)備控制器相應(yīng)的設(shè)備控制器nI/O通道(大、中型計(jì)算機(jī))通道(大、中型計(jì)算機(jī))n總線總線nI/O系統(tǒng)的結(jié)構(gòu)系統(tǒng)的結(jié)構(gòu)n微型機(jī)微型機(jī)I/O系統(tǒng)系統(tǒng)n主機(jī)主機(jī)I/O系統(tǒng)系統(tǒng)5.1 I/O系統(tǒng)系統(tǒng)nI/O系統(tǒng)的結(jié)構(gòu)系統(tǒng)的結(jié)構(gòu)n微型機(jī)微型機(jī)I/O系統(tǒng)系統(tǒng)n微型機(jī)比較簡(jiǎn)單,多采用總線微型機(jī)比較簡(jiǎn)單,多采用總線I/O系統(tǒng)結(jié)構(gòu)。系統(tǒng)結(jié)構(gòu)。CPU和內(nèi)存是直接連接到總線上的。和內(nèi)存是直接連接到總線
3、上的。I/O設(shè)備是通過設(shè)備設(shè)備是通過設(shè)備控制器連接到總線上,控制器連接到總線上,CPU并不直接與并不直接與I/O設(shè)備進(jìn)設(shè)備進(jìn)行通信,而是與設(shè)備控制器進(jìn)行通信,設(shè)備控制器行通信,而是與設(shè)備控制器進(jìn)行通信,設(shè)備控制器是處理機(jī)和設(shè)備之間的接口。是處理機(jī)和設(shè)備之間的接口。n主機(jī)主機(jī)I/O系統(tǒng)系統(tǒng)n在在I/O系統(tǒng)中采用總線結(jié)構(gòu),而是增加一級(jí)系統(tǒng)中采用總線結(jié)構(gòu),而是增加一級(jí)I/O通道。通道。其中,其中,I/O系統(tǒng)共分為系統(tǒng)共分為4級(jí):最低級(jí)為級(jí):最低級(jí)為I/O設(shè)備,次低設(shè)備,次低級(jí)為設(shè)備控制器,次高級(jí)為級(jí)為設(shè)備控制器,次高級(jí)為I/O通道,最高級(jí)是計(jì)算通道,最高級(jí)是計(jì)算機(jī)。因而也稱這樣的機(jī)。因而也稱這樣的I
4、/O系統(tǒng)結(jié)構(gòu)為四級(jí)結(jié)構(gòu)。系統(tǒng)結(jié)構(gòu)為四級(jí)結(jié)構(gòu)。5.1 I/O系統(tǒng)系統(tǒng)n5.1.1 I/O設(shè)備設(shè)備n5.1.2 設(shè)備控制器設(shè)備控制器n5.1.3 I/O通道通道n5.1.4 總線系統(tǒng)總線系統(tǒng)5.1.1 I/O設(shè)備設(shè)備nI/O設(shè)備的類型設(shè)備的類型 n按從屬關(guān)系分類按從屬關(guān)系分類n系統(tǒng)設(shè)備系統(tǒng)設(shè)備n用戶設(shè)備用戶設(shè)備5.1.1 I/O設(shè)備設(shè)備nI/O設(shè)備的類型設(shè)備的類型 n按傳輸速率分類按傳輸速率分類n低速設(shè)備低速設(shè)備 n每秒幾個(gè)字節(jié)至數(shù)百字節(jié)每秒幾個(gè)字節(jié)至數(shù)百字節(jié)n鍵盤、鼠標(biāo)、語音輸入輸出設(shè)備等鍵盤、鼠標(biāo)、語音輸入輸出設(shè)備等n中速設(shè)備中速設(shè)備n每秒數(shù)千至數(shù)萬字節(jié)每秒數(shù)千至數(shù)萬字節(jié)n行式打印機(jī)、激光打印
5、機(jī)等行式打印機(jī)、激光打印機(jī)等n高速設(shè)備高速設(shè)備n每秒數(shù)百每秒數(shù)百K至數(shù)十至數(shù)十M字節(jié)字節(jié)n磁盤機(jī)、磁帶機(jī)、光盤機(jī)等磁盤機(jī)、磁帶機(jī)、光盤機(jī)等5.1.1 I/O設(shè)備設(shè)備nI/O設(shè)備的類型設(shè)備的類型n按信息交換的單位分類按信息交換的單位分類n塊設(shè)備塊設(shè)備(Block Device)n信息的存取總是以數(shù)據(jù)信息的存取總是以數(shù)據(jù)塊塊為單位為單位n可尋址可尋址n如,磁盤,盤塊的大小為如,磁盤,盤塊的大小為512 B4 KBn字符設(shè)備字符設(shè)備(Character Device)n基本單位是基本單位是字符字符n不可尋址不可尋址n如,交互式終端、打印機(jī)如,交互式終端、打印機(jī)5.1.1 I/O設(shè)備設(shè)備nI/O設(shè)備的
6、類型設(shè)備的類型n按資源分配角度分類(共享屬性)按資源分配角度分類(共享屬性)n獨(dú)占設(shè)備獨(dú)占設(shè)備n多數(shù)低速設(shè)備屬獨(dú)占設(shè)備,如打印機(jī)多數(shù)低速設(shè)備屬獨(dú)占設(shè)備,如打印機(jī)n共享設(shè)備共享設(shè)備 n可供多個(gè)進(jìn)程同時(shí)訪問,如磁盤可供多個(gè)進(jìn)程同時(shí)訪問,如磁盤n虛擬設(shè)備虛擬設(shè)備n通過虛擬技術(shù)將一臺(tái)獨(dú)占設(shè)備變換為若通過虛擬技術(shù)將一臺(tái)獨(dú)占設(shè)備變換為若干個(gè)邏輯設(shè)備,供若干個(gè)進(jìn)程同時(shí)使用干個(gè)邏輯設(shè)備,供若干個(gè)進(jìn)程同時(shí)使用5.1.1 I/O設(shè)備設(shè)備nI/O設(shè)備的類型設(shè)備的類型n按操作特性按操作特性n存儲(chǔ)設(shè)備存儲(chǔ)設(shè)備n存儲(chǔ)信息,如磁盤等存儲(chǔ)信息,如磁盤等nI/O設(shè)備設(shè)備n用來向用來向CPU傳送信息或輸出加工處傳送信息或輸出加工
7、處理后的信息,如顯示器、打印機(jī)理后的信息,如顯示器、打印機(jī)5.1.1 I/O設(shè)備設(shè)備n設(shè)備與控制器之間的接口設(shè)備與控制器之間的接口由外界輸入的信號(hào)由外界輸入的信號(hào)經(jīng)轉(zhuǎn)換器轉(zhuǎn)換后送經(jīng)轉(zhuǎn)換器轉(zhuǎn)換后送入緩沖器,數(shù)據(jù)達(dá)入緩沖器,數(shù)據(jù)達(dá)到一定的字符數(shù)后,到一定的字符數(shù)后,再?gòu)木彌_器通過一再?gòu)木彌_器通過一組數(shù)據(jù)信號(hào)線送到組數(shù)據(jù)信號(hào)線送到控制器控制器用于在設(shè)備和設(shè)備控制用于在設(shè)備和設(shè)備控制器之間傳送數(shù)據(jù)。器之間傳送數(shù)據(jù)。從設(shè)從設(shè)備控制器經(jīng)過數(shù)據(jù)信號(hào)備控制器經(jīng)過數(shù)據(jù)信號(hào)線傳送來的數(shù)據(jù)先暫存線傳送來的數(shù)據(jù)先暫存在緩沖器,經(jīng)轉(zhuǎn)換器經(jīng)在緩沖器,經(jīng)轉(zhuǎn)換器經(jīng)過適當(dāng)轉(zhuǎn)換后,逐個(gè)字過適當(dāng)轉(zhuǎn)換后,逐個(gè)字符輸出符輸出作為由設(shè)備
8、控制器作為由設(shè)備控制器向向I/OI/O設(shè)備發(fā)送控制設(shè)備發(fā)送控制信號(hào)時(shí)的通路。信號(hào)時(shí)的通路。規(guī)規(guī)定設(shè)備要執(zhí)行的操定設(shè)備要執(zhí)行的操作作用于傳送指示用于傳送指示設(shè)備當(dāng)前狀態(tài)設(shè)備當(dāng)前狀態(tài)的信號(hào):的信號(hào):正在正在讀、寫或完成讀、寫或完成接接口口5.1.2 設(shè)備控制器設(shè)備控制器nCPU與與I/O設(shè)備之間的接口設(shè)備之間的接口n接收接收CPU發(fā)來的命令,發(fā)來的命令,控制控制一個(gè)或多個(gè)一個(gè)或多個(gè)I/O設(shè)設(shè)備工作,以備工作,以實(shí)現(xiàn)實(shí)現(xiàn)I/O設(shè)備和計(jì)算機(jī)之間的數(shù)據(jù)設(shè)備和計(jì)算機(jī)之間的數(shù)據(jù)交換,交換,減輕減輕CPU的負(fù)擔(dān)的負(fù)擔(dān)n一個(gè)可編址的設(shè)備一個(gè)可編址的設(shè)備n分類分類n控制字符設(shè)備控制字符設(shè)備n控制塊設(shè)備控制塊設(shè)備5
9、.1.2 設(shè)備控制器設(shè)備控制器n基本功能基本功能n接收和識(shí)別命令接收和識(shí)別命令n控制寄存器控制寄存器存放接受的命令和參數(shù),并對(duì)其譯碼存放接受的命令和參數(shù),并對(duì)其譯碼 n數(shù)據(jù)交換數(shù)據(jù)交換 n實(shí)現(xiàn)實(shí)現(xiàn)CPU與控制器、控制器與設(shè)備之間的數(shù)據(jù)交換,與控制器、控制器與設(shè)備之間的數(shù)據(jù)交換,需設(shè)置需設(shè)置數(shù)據(jù)寄存器數(shù)據(jù)寄存器n標(biāo)識(shí)和報(bào)告設(shè)備的狀態(tài):需設(shè)置標(biāo)識(shí)和報(bào)告設(shè)備的狀態(tài):需設(shè)置狀態(tài)寄存器狀態(tài)寄存器n地址識(shí)別地址識(shí)別 n識(shí)別所控制的設(shè)備,需設(shè)置識(shí)別所控制的設(shè)備,需設(shè)置地址譯碼器地址譯碼器n數(shù)據(jù)緩沖數(shù)據(jù)緩沖:解決:解決I/O設(shè)備速率低的問題設(shè)備速率低的問題n差錯(cuò)控制差錯(cuò)控制:對(duì):對(duì)I/O設(shè)備發(fā)送的數(shù)據(jù)進(jìn)行差錯(cuò)
10、檢測(cè)設(shè)備發(fā)送的數(shù)據(jù)進(jìn)行差錯(cuò)檢測(cè)5.1.2 設(shè)備控制器設(shè)備控制器n設(shè)備控制器的組成設(shè)備控制器的組成設(shè)備(輸入)或設(shè)備(輸入)或CPU(輸出)送來(輸出)送來的數(shù)據(jù)的數(shù)據(jù)CPU送來的控制信送來的控制信息或設(shè)備的狀態(tài)信息或設(shè)備的狀態(tài)信息息CPU發(fā)送啟動(dòng)命令,發(fā)送啟動(dòng)命令,同時(shí),同時(shí),CPU發(fā)送地發(fā)送地址,對(duì)地址譯碼,址,對(duì)地址譯碼,選擇相應(yīng)設(shè)備控制選擇相應(yīng)設(shè)備控制5.1.3I/O通道通道nI/O通道通道(I/O Channel)設(shè)備的引入設(shè)備的引入n一種特殊處理機(jī),專門負(fù)責(zé)輸入一種特殊處理機(jī),專門負(fù)責(zé)輸入/輸出工作輸出工作n有自己簡(jiǎn)單的指令系統(tǒng),只有數(shù)據(jù)傳送指令和設(shè)備控有自己簡(jiǎn)單的指令系統(tǒng),只有數(shù)據(jù)
11、傳送指令和設(shè)備控制指令制指令n主要目的是為了建立獨(dú)立的主要目的是為了建立獨(dú)立的I/O操作,使有關(guān)對(duì)操作,使有關(guān)對(duì)I/O操操作的組織、管理及其結(jié)束處理也獨(dú)立于作的組織、管理及其結(jié)束處理也獨(dú)立于CPUnCPU向向I/O通道發(fā)送通道發(fā)送I/O命令,由通道執(zhí)行程序命令,由通道執(zhí)行程序n通道與一般處理機(jī)的區(qū)別通道與一般處理機(jī)的區(qū)別n指令單一指令單一n沒有獨(dú)立的內(nèi)存沒有獨(dú)立的內(nèi)存 5.1.3I/O通道通道n通道類型通道類型n字節(jié)多路通道(字節(jié)多路通道(Byte Multiplexor Channel)n以字節(jié)交換方式工作,分時(shí)并行操作以字節(jié)交換方式工作,分時(shí)并行操作n主要用來連接多個(gè)中低速設(shè)備主要用來連接
12、多個(gè)中低速設(shè)備5.1.3I/O通道通道n通道類型通道類型n數(shù)組選擇通道(數(shù)組選擇通道(Block Selector Channel)n以成組方式工作,高速傳輸數(shù)據(jù)以成組方式工作,高速傳輸數(shù)據(jù)n可以連接多臺(tái)高速設(shè)備可以連接多臺(tái)高速設(shè)備n僅含有一個(gè)分配型子通道,在一段時(shí)間內(nèi)只僅含有一個(gè)分配型子通道,在一段時(shí)間內(nèi)只能執(zhí)行一個(gè)通道程序,控制一臺(tái)能執(zhí)行一個(gè)通道程序,控制一臺(tái)I/O設(shè)備設(shè)備n由設(shè)備獨(dú)占使用,利用率較低由設(shè)備獨(dú)占使用,利用率較低5.1.3I/O通道通道n通道類型通道類型n數(shù)組多路通道(數(shù)組多路通道(Block Multiplexor Channel)n將將數(shù)組選擇通道數(shù)組選擇通道傳輸速率高和
13、傳輸速率高和字節(jié)多路通道字節(jié)多路通道分時(shí)并行操作的優(yōu)點(diǎn)相結(jié)合而形成的一種新分時(shí)并行操作的優(yōu)點(diǎn)相結(jié)合而形成的一種新通道。通道。n它含有多個(gè)非分配型子通道,它含有多個(gè)非分配型子通道,因而這種通因而這種通道既具有很高的數(shù)據(jù)傳輸速率,又能獲得令道既具有很高的數(shù)據(jù)傳輸速率,又能獲得令人滿意的通道利用率。人滿意的通道利用率。5.1.3I/O通道通道n“瓶頸瓶頸”問題問題n價(jià)格昂貴,所設(shè)置的通道數(shù)量較少;價(jià)格昂貴,所設(shè)置的通道數(shù)量較少;n往往使它成了往往使它成了I/O的瓶頸,進(jìn)而造成整個(gè)系統(tǒng)的瓶頸,進(jìn)而造成整個(gè)系統(tǒng)吞吐量的下降。吞吐量的下降。5.1.3I/O通道通道n“瓶頸瓶頸”問題問題n解決方法解決方法n
14、增加設(shè)備到主機(jī)間的通路而不增加通道。即,把一增加設(shè)備到主機(jī)間的通路而不增加通道。即,把一個(gè)設(shè)備連接到多個(gè)控制器上,而一個(gè)控制器又連接個(gè)設(shè)備連接到多個(gè)控制器上,而一個(gè)控制器又連接到多個(gè)通道上。到多個(gè)通道上。5.1.4總線系統(tǒng)總線系統(tǒng)n在計(jì)算機(jī)系統(tǒng)中的各部件,如在計(jì)算機(jī)系統(tǒng)中的各部件,如CPU、存儲(chǔ)、存儲(chǔ)器以及各種器以及各種I/O設(shè)備之間都是通過總線來聯(lián)設(shè)備之間都是通過總線來聯(lián)系。系。一個(gè)典型的一個(gè)典型的PC總線結(jié)構(gòu)總線結(jié)構(gòu)5.1.4總線系統(tǒng)總線系統(tǒng)nISA和和EISA總線總線nISA(Industry Standard Architecture)總線總線n1984年為年為80286型微機(jī)設(shè)計(jì)型微
15、機(jī)設(shè)計(jì)n帶寬為帶寬為8位位n最高傳輸速率為最高傳輸速率為2 Mb/snEISA(Extended ISA)總線總線n帶寬為帶寬為32位位n傳輸速率傳輸速率32 Mb/s5.1.4總線系統(tǒng)總線系統(tǒng)n局部總線局部總線(Local Bus)n指將多媒體卡、高速指將多媒體卡、高速LAN網(wǎng)卡、高性能圖形板網(wǎng)卡、高性能圖形板等從等從ISA總線上卸下來,再通過局部總線控制總線上卸下來,再通過局部總線控制器直接接到器直接接到CPU總線上。總線上。nVESA(Video Electronic Standard Association)總線總線 n帶寬帶寬32位位n最高傳輸速率為最高傳輸速率為132 Mb/sn
16、PCI(Peripheral Component Interconnect)總線總線n在在CPU和外設(shè)間插入一復(fù)雜的管理層,用于協(xié)調(diào)數(shù)和外設(shè)間插入一復(fù)雜的管理層,用于協(xié)調(diào)數(shù)據(jù)傳輸和提供一致的接口據(jù)傳輸和提供一致的接口5.2I/O控制方式控制方式n5.2.1 程序程序I/O方式方式n5.2.2 中斷驅(qū)動(dòng)中斷驅(qū)動(dòng)I/O控制方式控制方式 n5.2.3 直接存儲(chǔ)器訪問直接存儲(chǔ)器訪問DMA I/O控制方式控制方式n5.2.4 I/O通道控制方式通道控制方式5.2.1 程序程序I/O(Programmed I/O)方式方式nCPU通過通過I/O測(cè)試指令測(cè)試設(shè)備接口中的狀測(cè)試指令測(cè)試設(shè)備接口中的狀態(tài)位:態(tài)位
17、:n“忙忙”,則一直測(cè)試;,則一直測(cè)試;n“閑閑”,進(jìn)行數(shù)據(jù)傳送,每次傳送一個(gè)字符,進(jìn)行數(shù)據(jù)傳送,每次傳送一個(gè)字符n又稱為忙又稱為忙等方式。等方式。n存在的問題存在的問題nCPU的絕大部分時(shí)間都處于等待的絕大部分時(shí)間都處于等待I/O設(shè)備完成設(shè)備完成數(shù)據(jù)數(shù)據(jù)I/O的循環(huán)測(cè)試中的循環(huán)測(cè)試中n外設(shè)不能合理使用,也無法支持多道程序外設(shè)不能合理使用,也無法支持多道程序5.2.1 程序程序I/O方式方式n主機(jī)不斷地讀取主機(jī)不斷地讀取位,直到該位被清除位,直到該位被清除(這個(gè)過程稱這個(gè)過程稱為輪詢,亦稱忙等待為輪詢,亦稱忙等待-busy waiting)n主機(jī)設(shè)置命令寄存器中的主機(jī)設(shè)置命令寄存器中的位并向數(shù)
18、據(jù)輸出寄存器中位并向數(shù)據(jù)輸出寄存器中寫入一個(gè)字節(jié)。寫入一個(gè)字節(jié)。n主機(jī)設(shè)置命令主機(jī)設(shè)置命令位位n當(dāng)控制器注意到命令當(dāng)控制器注意到命令位已被設(shè)置,則設(shè)置位已被設(shè)置,則設(shè)置位。位。n控制器讀取命令寄存器,并看到寫入命令。它從數(shù)據(jù)控制器讀取命令寄存器,并看到寫入命令。它從數(shù)據(jù)輸出寄存器中讀取一個(gè)字節(jié),并向設(shè)備執(zhí)行輸出寄存器中讀取一個(gè)字節(jié),并向設(shè)備執(zhí)行I/O操作。操作。n控制器清除命令控制器清除命令位,清除狀態(tài)寄存器的位,清除狀態(tài)寄存器的位以位以表示設(shè)備表示設(shè)備I/O成功,清除成功,清除位以表示完成。位以表示完成。5.2.1 程序程序I/O方式方式5.2.2 中斷驅(qū)動(dòng)中斷驅(qū)動(dòng)I/O控制方式控制方式n中
19、斷驅(qū)動(dòng)(中斷驅(qū)動(dòng)(Interrupt Driven)方式,即當(dāng)方式,即當(dāng)某進(jìn)程要啟動(dòng)某個(gè)某進(jìn)程要啟動(dòng)某個(gè)I/O設(shè)備工作時(shí),便由設(shè)備工作時(shí),便由CPU向相應(yīng)的設(shè)備控制器發(fā)出一條向相應(yīng)的設(shè)備控制器發(fā)出一條I/O命令,命令,然后立即返回繼續(xù)執(zhí)行原來的任務(wù)。然后立即返回繼續(xù)執(zhí)行原來的任務(wù)。n設(shè)備控制器按命令要求去控制指定的設(shè)備控制器按命令要求去控制指定的I/O設(shè)設(shè)備,完成后,通過中斷向備,完成后,通過中斷向CPU發(fā)送一中斷發(fā)送一中斷信號(hào)。信號(hào)。n在在I/O設(shè)備輸入數(shù)據(jù)的過程中,無須設(shè)備輸入數(shù)據(jù)的過程中,無須CPU干干預(yù),每次傳送一個(gè)字符。預(yù),每次傳送一個(gè)字符。5.2.2 中斷驅(qū)動(dòng)中斷驅(qū)動(dòng)I/O控制方式
20、控制方式n兩種中斷請(qǐng)求兩種中斷請(qǐng)求n非屏蔽中斷:用來處理如不可恢復(fù)內(nèi)存錯(cuò)誤等非屏蔽中斷:用來處理如不可恢復(fù)內(nèi)存錯(cuò)誤等事件;事件;n可屏蔽中斷:由可屏蔽中斷:由CPU在執(zhí)行關(guān)鍵的不可中斷的在執(zhí)行關(guān)鍵的不可中斷的指令序列前加以屏蔽。指令序列前加以屏蔽。n中斷的用途中斷的用途n中斷機(jī)制用于處理各種異常,如被零除,訪問中斷機(jī)制用于處理各種異常,如被零除,訪問一個(gè)受保護(hù)的或不存在的內(nèi)存地址;一個(gè)受保護(hù)的或不存在的內(nèi)存地址;n系統(tǒng)調(diào)用的實(shí)現(xiàn)需要用到中斷(軟中斷);系統(tǒng)調(diào)用的實(shí)現(xiàn)需要用到中斷(軟中斷);n中斷也可以用來管理內(nèi)核的控制流。中斷也可以用來管理內(nèi)核的控制流。5.2.2 中斷驅(qū)動(dòng)中斷驅(qū)動(dòng)I/O控制方
21、式控制方式5.2.3 直接存儲(chǔ)器訪問直接存儲(chǔ)器訪問(DMA)I/O控制方式控制方式n特點(diǎn)特點(diǎn)n數(shù)據(jù)傳輸?shù)幕締挝皇菙?shù)據(jù)傳輸?shù)幕締挝皇菙?shù)據(jù)塊數(shù)據(jù)塊n所傳送的數(shù)據(jù)是所傳送的數(shù)據(jù)是從設(shè)備直接送入內(nèi)存從設(shè)備直接送入內(nèi)存的,或者的,或者相反相反n僅在傳送一個(gè)或多個(gè)數(shù)據(jù)塊的僅在傳送一個(gè)或多個(gè)數(shù)據(jù)塊的開始和結(jié)束開始和結(jié)束時(shí)才時(shí)才需需CPU干預(yù)干預(yù)n除了具有中斷機(jī)構(gòu)外,還增加了除了具有中斷機(jī)構(gòu)外,還增加了DMA控制器控制器n數(shù)據(jù)傳送方向、存放數(shù)據(jù)的內(nèi)存地址及傳送數(shù)數(shù)據(jù)傳送方向、存放數(shù)據(jù)的內(nèi)存地址及傳送數(shù)據(jù)長(zhǎng)度需據(jù)長(zhǎng)度需CPU控制控制n每個(gè)設(shè)備需配置一個(gè)每個(gè)設(shè)備需配置一個(gè)DMA控制器控制器5.2.3 直接存儲(chǔ)
22、器訪問直接存儲(chǔ)器訪問(DMA)I/O控制方式控制方式nDMA控制器的組成控制器的組成n主機(jī)與主機(jī)與DMA控制器的接口控制器的接口nDMA控制器與塊設(shè)備的接口控制器與塊設(shè)備的接口nI/O控制邏輯控制邏輯5.2.3 直接存儲(chǔ)器訪問直接存儲(chǔ)器訪問(DMA)I/O控制方式控制方式nDMA控制器中四類寄存器控制器中四類寄存器n命令命令/狀態(tài)寄存器狀態(tài)寄存器CRn接收接收CPU發(fā)送的發(fā)送的I/O命令或有關(guān)控制信息,或設(shè)備命令或有關(guān)控制信息,或設(shè)備狀態(tài)狀態(tài)n內(nèi)存地址寄存器內(nèi)存地址寄存器MARn輸入時(shí):數(shù)據(jù)存放到內(nèi)存的輸入時(shí):數(shù)據(jù)存放到內(nèi)存的起始目標(biāo)地址起始目標(biāo)地址n輸出時(shí):存放數(shù)據(jù)由內(nèi)存到設(shè)備的輸出時(shí):存放
23、數(shù)據(jù)由內(nèi)存到設(shè)備的內(nèi)存源地址內(nèi)存源地址n數(shù)據(jù)寄存器數(shù)據(jù)寄存器DRn暫存從設(shè)備到內(nèi)存暫存從設(shè)備到內(nèi)存/內(nèi)存到設(shè)備的數(shù)據(jù)內(nèi)存到設(shè)備的數(shù)據(jù)n數(shù)據(jù)計(jì)數(shù)器數(shù)據(jù)計(jì)數(shù)器DCn存放本次存放本次CPU要讀或?qū)懙淖郑ü?jié))數(shù)要讀或?qū)懙淖郑ü?jié))數(shù)5.2.3 直接存儲(chǔ)器訪問直接存儲(chǔ)器訪問(DMA)I/O控制方式控制方式nDMA工作過程工作過程DMA傳輸?shù)牧鶄€(gè)步驟傳輸?shù)牧鶄€(gè)步驟5.2.3 直接存儲(chǔ)器訪問直接存儲(chǔ)器訪問(DMA)I/O控制方式控制方式nDMA與中斷方式的主要區(qū)別與中斷方式的主要區(qū)別n中斷方式在每個(gè)數(shù)據(jù)傳送完后中斷中斷方式在每個(gè)數(shù)據(jù)傳送完后中斷CPU,DMA方式則是在所要求傳送的一批數(shù)據(jù)全部方式則是在所要求傳
24、送的一批數(shù)據(jù)全部傳送完時(shí)中斷傳送完時(shí)中斷CPU。n中斷方式的數(shù)據(jù)傳送時(shí)在中斷處理時(shí)由中斷方式的數(shù)據(jù)傳送時(shí)在中斷處理時(shí)由CPU控控制完成的,而制完成的,而DMA則是在則是在DMA控制下完成的控制下完成的nDMA方式的方式的局限性局限性:傳送方向、始址、長(zhǎng)度:傳送方向、始址、長(zhǎng)度等由等由CPU控制,一個(gè)設(shè)備一個(gè)控制,一個(gè)設(shè)備一個(gè)DMA,成本高。,成本高。5.2.4I/O通道控制方式通道控制方式nI/O通道控制方式的引入通道控制方式的引入 n與與DMA類似,以內(nèi)存為中心的數(shù)據(jù)交換方式類似,以內(nèi)存為中心的數(shù)據(jù)交換方式n進(jìn)一步減少了進(jìn)一步減少了CPU的干預(yù),把對(duì)的干預(yù),把對(duì)一個(gè)一個(gè)數(shù)據(jù)塊的數(shù)據(jù)塊的讀讀(
25、或?qū)懟驅(qū)?為單位的干預(yù),減少為對(duì)為單位的干預(yù),減少為對(duì)一組一組數(shù)據(jù)塊數(shù)據(jù)塊的讀的讀(或?qū)懟驅(qū)?及有關(guān)的控制和管理為單位的干預(yù)及有關(guān)的控制和管理為單位的干預(yù)n一個(gè)通道控制多臺(tái)設(shè)備一個(gè)通道控制多臺(tái)設(shè)備nCPU僅在僅在I/O操作的開始和結(jié)束時(shí)花費(fèi)少量時(shí)操作的開始和結(jié)束時(shí)花費(fèi)少量時(shí)間處理與間處理與I/O有關(guān)的工作有關(guān)的工作n可實(shí)現(xiàn)可實(shí)現(xiàn)CPU、通道通道和和I/O設(shè)備設(shè)備三者的三者的并行操作并行操作,從而更有效地提高整個(gè)系統(tǒng)的資源利用率從而更有效地提高整個(gè)系統(tǒng)的資源利用率5.2.4I/O通道控制方式通道控制方式n通道程序通道程序n操作碼操作碼n規(guī)定指令所執(zhí)行的操作,如讀、寫、控制等規(guī)定指令所執(zhí)行的操作,
26、如讀、寫、控制等n內(nèi)存地址內(nèi)存地址n標(biāo)明字符送入內(nèi)存或從內(nèi)存取出的內(nèi)存首址標(biāo)明字符送入內(nèi)存或從內(nèi)存取出的內(nèi)存首址n計(jì)數(shù)計(jì)數(shù)n本條指令所要讀本條指令所要讀/寫的字節(jié)數(shù)寫的字節(jié)數(shù)n通道程序結(jié)束位通道程序結(jié)束位n表示通道程序是否結(jié)束,表示通道程序是否結(jié)束,P=1表示結(jié)束表示結(jié)束n記錄結(jié)束標(biāo)志記錄結(jié)束標(biāo)志nR=0,表示本指令與下一指令處理同一個(gè)記錄,表示本指令與下一指令處理同一個(gè)記錄nR=1,表示處理某記錄的最后一條指令,表示處理某記錄的最后一條指令5.2.4I/O通道控制方式通道控制方式操作碼操作碼 PR計(jì)數(shù)計(jì)數(shù)內(nèi)存地址內(nèi)存地址WRITE 0080813WRITE001401034WRITE0160
27、5830WRITE013002000WRITE002501850WRITE11250720CPU與通道之間的通信與通道之間的通信5.3 緩沖管理緩沖管理n5.3.1 緩沖的引入緩沖的引入n5.3.2 單緩沖和雙緩沖單緩沖和雙緩沖n5.3.3 循環(huán)緩沖循環(huán)緩沖n5.3.4 緩沖池(緩沖池(Buffer Pool)5.3.1 緩沖的引入緩沖的引入n緩和緩和CPU與與I/O設(shè)備間速度不匹配的矛盾。設(shè)備間速度不匹配的矛盾。n數(shù)據(jù)到達(dá)速率與其離去速率不同數(shù)據(jù)到達(dá)速率與其離去速率不同n減少對(duì)減少對(duì)CPU的中斷頻率,放寬對(duì)的中斷頻率,放寬對(duì)CPU中斷中斷響應(yīng)時(shí)間的限制。響應(yīng)時(shí)間的限制。1位緩沖位緩沖9.6
28、Kb/s(a)中斷中斷CPU的頻的頻率為率為9.6Kb/s,每每100 s中斷一中斷一次次CPUCPU必須在必須在100 s內(nèi)響應(yīng),內(nèi)響應(yīng),否則數(shù)據(jù)會(huì)被否則數(shù)據(jù)會(huì)被沖掉沖掉8位緩沖寄存器位緩沖寄存器送內(nèi)存送內(nèi)存9.6 Kb/s(b)中斷中斷CPU的頻率降的頻率降低為低為9.6Kb/8 5.3.1 緩沖的引入緩沖的引入n提高提高CPU和和I/O設(shè)備之間的并行性設(shè)備之間的并行性n提高系統(tǒng)的吞吐量和設(shè)備的利用率提高系統(tǒng)的吞吐量和設(shè)備的利用率8位緩沖寄存器位緩沖寄存器9.6 Kb/s送內(nèi)存送內(nèi)存(c)每每800 s中斷一中斷一次次CPU5.3.2單緩沖和雙緩沖單緩沖和雙緩沖n單緩沖單緩沖(Single
29、 Buffer)輸入設(shè)備,緩輸入設(shè)備,緩沖區(qū)均空閑沖區(qū)均空閑CTCT時(shí)時(shí),輸入先結(jié)束;反輸入先結(jié)束;反之,之,計(jì)算先結(jié)束。因此,計(jì)算先結(jié)束。因此,每塊數(shù)據(jù)的處理時(shí)間為:每塊數(shù)據(jù)的處理時(shí)間為:maxC,T+MmaxC,T+M5.3.2單緩沖和雙緩沖單緩沖和雙緩沖n雙緩沖雙緩沖(Double Buffer)輸入設(shè)備,緩輸入設(shè)備,緩沖區(qū)沖區(qū)2均空閑均空閑CTCT時(shí)時(shí),輸入先結(jié)束;反輸入先結(jié)束;反之,計(jì)算先結(jié)束。因此,之,計(jì)算先結(jié)束。因此,每塊數(shù)據(jù)的處理時(shí)間約每塊數(shù)據(jù)的處理時(shí)間約為:為:maxC,TmaxC,T例,兩臺(tái)機(jī)器間通信例,兩臺(tái)機(jī)器間通信。只能實(shí)現(xiàn)單向只能實(shí)現(xiàn)單向的數(shù)據(jù)傳輸?shù)臄?shù)據(jù)傳輸5.3.3
30、 循環(huán)緩沖循環(huán)緩沖n循環(huán)緩沖的引入循環(huán)緩沖的引入n當(dāng)輸入與輸出速度基本匹配時(shí),雙緩沖能獲得較好效當(dāng)輸入與輸出速度基本匹配時(shí),雙緩沖能獲得較好效果;當(dāng)速度相差較大時(shí),可引入多個(gè)(大小相等)緩果;當(dāng)速度相差較大時(shí),可引入多個(gè)(大小相等)緩沖,組織成循環(huán)緩沖的形式?jīng)_,組織成循環(huán)緩沖的形式n循環(huán)緩沖的組成循環(huán)緩沖的組成n多個(gè)緩沖區(qū)多個(gè)緩沖區(qū)n用于裝輸入數(shù)據(jù)的用于裝輸入數(shù)據(jù)的空緩沖區(qū)空緩沖區(qū)Rn已裝滿數(shù)據(jù)的已裝滿數(shù)據(jù)的滿緩沖區(qū)滿緩沖區(qū)Gn計(jì)算進(jìn)程計(jì)算進(jìn)程正在使用正在使用的現(xiàn)行工作緩沖區(qū)的現(xiàn)行工作緩沖區(qū)Cn多個(gè)指針多個(gè)指針n指示計(jì)算進(jìn)程下一指示計(jì)算進(jìn)程下一可用緩沖區(qū)可用緩沖區(qū)Nextgn指示輸入進(jìn)程下一指
31、示輸入進(jìn)程下一可用空緩沖區(qū)可用空緩沖區(qū)Nextin指示計(jì)算進(jìn)程指示計(jì)算進(jìn)程正在使用正在使用的緩沖區(qū)的緩沖區(qū)Current5.3.3 循環(huán)緩沖循環(huán)緩沖類型:類型:R:空緩沖區(qū);空緩沖區(qū);G:滿緩沖區(qū);:滿緩沖區(qū);C:當(dāng)前緩沖區(qū):當(dāng)前緩沖區(qū)5.3.3 循環(huán)緩沖循環(huán)緩沖n循環(huán)緩沖區(qū)的使用循環(huán)緩沖區(qū)的使用nGetbuf過程過程n為計(jì)算進(jìn)程和輸入進(jìn)程提供緩沖區(qū),并移動(dòng)指針為計(jì)算進(jìn)程和輸入進(jìn)程提供緩沖區(qū),并移動(dòng)指針nReleasebuf過程過程n當(dāng)計(jì)算進(jìn)程或輸入使用完緩沖區(qū)后,調(diào)用過程將緩當(dāng)計(jì)算進(jìn)程或輸入使用完緩沖區(qū)后,調(diào)用過程將緩沖區(qū)釋放沖區(qū)釋放n進(jìn)程同步進(jìn)程同步輸入、計(jì)算進(jìn)程并行輸入、計(jì)算進(jìn)程并行nN
32、exti指針追趕上指針追趕上Nextg指針指針n輸入進(jìn)程速度大于計(jì)算進(jìn)程,全部空緩沖區(qū)已滿,輸入進(jìn)程速度大于計(jì)算進(jìn)程,全部空緩沖區(qū)已滿,無可用緩沖區(qū),輸入進(jìn)程阻塞(無可用緩沖區(qū),輸入進(jìn)程阻塞(系統(tǒng)受計(jì)算限制系統(tǒng)受計(jì)算限制)nNextg指針追趕上指針追趕上Nexti指針指針n計(jì)算進(jìn)程速度大于輸入進(jìn)程,全部緩沖區(qū)空,無可計(jì)算進(jìn)程速度大于輸入進(jìn)程,全部緩沖區(qū)空,無可用數(shù)據(jù),計(jì)算進(jìn)程阻塞(用數(shù)據(jù),計(jì)算進(jìn)程阻塞(系統(tǒng)受系統(tǒng)受I/O限制限制)5.3.4緩沖池緩沖池n緩沖池的組成緩沖池的組成n專用緩沖的利用率不高,與環(huán)形緩沖不同的是緩沖池專用緩沖的利用率不高,與環(huán)形緩沖不同的是緩沖池中的緩沖區(qū)是系統(tǒng)的中的緩
33、沖區(qū)是系統(tǒng)的公用資源公用資源,可供,可供多個(gè)進(jìn)程共享多個(gè)進(jìn)程共享,既能用于既能用于輸入輸入,也能用于,也能用于輸出輸出n緩沖區(qū)類型緩沖區(qū)類型n空空(閑閑)緩沖區(qū)緩沖區(qū)n裝滿輸入數(shù)據(jù)的緩沖區(qū)裝滿輸入數(shù)據(jù)的緩沖區(qū)n裝滿輸出數(shù)據(jù)的緩沖區(qū)裝滿輸出數(shù)據(jù)的緩沖區(qū)n緩沖隊(duì)列:按其使用情況緩沖隊(duì)列:按其使用情況n空緩沖隊(duì)列空緩沖隊(duì)列emqn輸入隊(duì)列輸入隊(duì)列inqn輸出隊(duì)列輸出隊(duì)列outq5.3.4緩沖池緩沖池n緩沖池的組成緩沖池的組成n四種工作緩沖區(qū)四種工作緩沖區(qū)n用于收容輸入數(shù)據(jù)的工作緩沖區(qū)(用于收容輸入數(shù)據(jù)的工作緩沖區(qū)(hin)n用于提取輸入數(shù)據(jù)的工作緩沖區(qū)(用于提取輸入數(shù)據(jù)的工作緩沖區(qū)(sin)n用于收
34、容輸出數(shù)據(jù)的工作緩沖區(qū)(用于收容輸出數(shù)據(jù)的工作緩沖區(qū)(hout)n用于提取輸出數(shù)據(jù)的工作緩沖區(qū)(用于提取輸出數(shù)據(jù)的工作緩沖區(qū)(sout)5.3.4緩沖池緩沖池n緩沖區(qū)操作過程緩沖區(qū)操作過程nGetbuf(type),type:隊(duì)列類型:隊(duì)列類型 nPutbuf(type,number),number:緩沖區(qū)編號(hào):緩沖區(qū)編號(hào)n隊(duì)列是臨界資源隊(duì)列是臨界資源n互斥信號(hào)量互斥信號(hào)量MS,每個(gè)隊(duì)列一個(gè),每個(gè)隊(duì)列一個(gè)MS(type)n資源信號(hào)量資源信號(hào)量RS,每個(gè)隊(duì)列一個(gè),每個(gè)隊(duì)列一個(gè)RS(type)n隊(duì)列操作過程隊(duì)列操作過程nTakebuf(type):?。喝ype所指隊(duì)列隊(duì)首緩沖區(qū)所指隊(duì)列隊(duì)首緩沖區(qū)
35、nAddbuf(type,number):將:將number所指緩沖所指緩沖區(qū)加到區(qū)加到type所指隊(duì)列尾。所指隊(duì)列尾。5.3.4緩沖池緩沖池Procedure Getbuf(type)begin Wait(RS(type);Wait(MS(type);B(number):=Takebuf(type);/從隊(duì)首摘下一個(gè)緩沖區(qū)從隊(duì)首摘下一個(gè)緩沖區(qū) Signal(MS(type);end Procedure Putbuf(type,number)begin Wait(MS(type);Addbuf(type,number);/將指定緩沖區(qū)掛在將指定緩沖區(qū)掛在type隊(duì)列上隊(duì)列上 Signal(MS
36、(type);Signal(RS(type);end5.3.4緩沖池緩沖池n緩沖區(qū)工作方式緩沖區(qū)工作方式hinsoutsinhout收容輸入收容輸入提取輸出提取輸出用用戶戶進(jìn)進(jìn)程程提取輸入提取輸入收容輸出收容輸出緩沖池緩沖池Getbuf(emq)Putbuf(inq,hin)Getbuf(inq)Putbuf(emp,sin)Getbuf(emq)Putbuf(outq,hout)Getbuf(outq)Putbuf(emq,sout)1.hin=getbuf(emq);putbuf(inq,hin)2.sin=getbuf(inq);計(jì)算;計(jì)算;putbuf(emq,sin)3.hout=g
37、etbuf(emq);putbuf(outq,hout)4.sout=getbuf(outq);輸出;輸出;putbuf(emq,sout)5.3 緩沖區(qū)管理緩沖區(qū)管理n無緩沖時(shí)問題分析無緩沖時(shí)問題分析n設(shè)備直接向進(jìn)程地址空間傳送數(shù)據(jù)。如用戶從設(shè)備直接向進(jìn)程地址空間傳送數(shù)據(jù)。如用戶從磁帶中讀數(shù)據(jù)塊的操作。磁帶中讀數(shù)據(jù)塊的操作。n忙等待方式忙等待方式。浪費(fèi)大量。浪費(fèi)大量CPU時(shí)間;時(shí)間;n阻塞方式阻塞方式。進(jìn)程阻塞在設(shè)備的。進(jìn)程阻塞在設(shè)備的I/O請(qǐng)求隊(duì)列中。請(qǐng)求隊(duì)列中。n不能將進(jìn)程全部換出,還可能出現(xiàn)單進(jìn)程死鎖。不能將進(jìn)程全部換出,還可能出現(xiàn)單進(jìn)程死鎖。(進(jìn)程在等待(進(jìn)程在等待I/O操作結(jié)果之前
38、被換出,等待操作結(jié)果之前被換出,等待I/O事件,而事件,而I/O操作也被阻塞,等待該進(jìn)程被換操作也被阻塞,等待該進(jìn)程被換入。)入。)5.4I/O 軟軟 件件n5.4.1 I/O軟件的設(shè)計(jì)目標(biāo)和原則軟件的設(shè)計(jì)目標(biāo)和原則n5.4.2 中斷處理程序中斷處理程序n5.4.3 設(shè)備驅(qū)動(dòng)程序設(shè)備驅(qū)動(dòng)程序n5.4.4 設(shè)備獨(dú)立性軟件設(shè)備獨(dú)立性軟件n5.4.5 用戶層的用戶層的I/O軟件軟件5.4.1 I/O軟件的設(shè)計(jì)目標(biāo)和原則軟件的設(shè)計(jì)目標(biāo)和原則n從系統(tǒng)的觀點(diǎn)考慮從系統(tǒng)的觀點(diǎn)考慮n采用多種技術(shù)和措施,解決由于外部設(shè)備與采用多種技術(shù)和措施,解決由于外部設(shè)備與CPU速度不匹配所引起的問題,提高主機(jī)和外速度不匹配
39、所引起的問題,提高主機(jī)和外設(shè)的并行工作能力,提高系統(tǒng)效率。設(shè)的并行工作能力,提高系統(tǒng)效率。n從用戶的觀點(diǎn)考慮從用戶的觀點(diǎn)考慮n設(shè)法消除或屏蔽設(shè)備硬件內(nèi)部的低級(jí)處理過程,設(shè)法消除或屏蔽設(shè)備硬件內(nèi)部的低級(jí)處理過程,提供一個(gè)簡(jiǎn)便、易用、抽象的邏輯設(shè)備接口,提供一個(gè)簡(jiǎn)便、易用、抽象的邏輯設(shè)備接口,保證用戶安全、方便地使用各類設(shè)備。保證用戶安全、方便地使用各類設(shè)備。5.4.1 I/O軟件的設(shè)計(jì)目標(biāo)和原則軟件的設(shè)計(jì)目標(biāo)和原則n目標(biāo)目標(biāo)n與具體設(shè)備無關(guān)與具體設(shè)備無關(guān)n為了提高為了提高OS的可移植性和易適應(yīng)性,的可移植性和易適應(yīng)性,I/O軟件軟件應(yīng)負(fù)責(zé)屏蔽設(shè)備的具體細(xì)節(jié),向高層軟件提供應(yīng)負(fù)責(zé)屏蔽設(shè)備的具體細(xì)節(jié)
40、,向高層軟件提供抽象的邏輯設(shè)備,并完成邏輯設(shè)備與具體物理抽象的邏輯設(shè)備,并完成邏輯設(shè)備與具體物理設(shè)備的映射。設(shè)備的映射。n統(tǒng)一命名統(tǒng)一命名n在系統(tǒng)中對(duì)各類設(shè)備采取預(yù)先設(shè)計(jì)的、統(tǒng)一的在系統(tǒng)中對(duì)各類設(shè)備采取預(yù)先設(shè)計(jì)的、統(tǒng)一的邏輯名稱進(jìn)行命名,所有軟件都以邏輯名稱訪邏輯名稱進(jìn)行命名,所有軟件都以邏輯名稱訪問設(shè)備。問設(shè)備。5.4.1 I/O軟件的設(shè)計(jì)目標(biāo)和原則軟件的設(shè)計(jì)目標(biāo)和原則n目標(biāo)目標(biāo)n對(duì)錯(cuò)誤的處理對(duì)錯(cuò)誤的處理n盡可能在接近硬件的層面處理,在低層軟件能盡可能在接近硬件的層面處理,在低層軟件能夠解決的錯(cuò)誤就不讓高層軟件感知,只有低層夠解決的錯(cuò)誤就不讓高層軟件感知,只有低層軟件解決不了的錯(cuò)誤才通知高層
41、軟件解決。軟件解決不了的錯(cuò)誤才通知高層軟件解決。n對(duì)緩沖區(qū)的管理對(duì)緩沖區(qū)的管理n由于由于CPU與設(shè)備之間的速度差異,無論是塊設(shè)與設(shè)備之間的速度差異,無論是塊設(shè)備還是字符設(shè)備,都需要使用緩沖技術(shù)。備還是字符設(shè)備,都需要使用緩沖技術(shù)。n對(duì)于不同類型的設(shè)備,其緩沖區(qū)對(duì)于不同類型的設(shè)備,其緩沖區(qū)(塊塊)的大小是不的大小是不一樣的,一樣的,I/O軟件應(yīng)能屏蔽這種差異。軟件應(yīng)能屏蔽這種差異。5.4.1 I/O軟件的設(shè)計(jì)目標(biāo)和原則軟件的設(shè)計(jì)目標(biāo)和原則n目標(biāo)目標(biāo)n設(shè)備的分配和釋放設(shè)備的分配和釋放n對(duì)于獨(dú)占設(shè)備和共享設(shè)備帶來的許多問題,對(duì)于獨(dú)占設(shè)備和共享設(shè)備帶來的許多問題,I/O軟件必須能夠同時(shí)進(jìn)行妥善的解決。
42、軟件必須能夠同時(shí)進(jìn)行妥善的解決。nI/O控制方式控制方式n針對(duì)具有不同傳輸速率的設(shè)備,綜合系統(tǒng)效率針對(duì)具有不同傳輸速率的設(shè)備,綜合系統(tǒng)效率和系統(tǒng)代價(jià)等因素,合理選擇和系統(tǒng)代價(jià)等因素,合理選擇I/O控制方式,以控制方式,以提高系統(tǒng)的利用率。提高系統(tǒng)的利用率。n為方便用戶,為方便用戶,I/O軟件也應(yīng)屏蔽這種差異,向高軟件也應(yīng)屏蔽這種差異,向高層軟件提供統(tǒng)一的操作接口。層軟件提供統(tǒng)一的操作接口。5.4.1 I/O軟件的設(shè)計(jì)目標(biāo)和原則軟件的設(shè)計(jì)目標(biāo)和原則實(shí)現(xiàn)與用戶交互的接口。用實(shí)現(xiàn)與用戶交互的接口。用戶可直接調(diào)用在戶可直接調(diào)用在I/OI/O操作有操作有關(guān)的庫函數(shù),對(duì)設(shè)備進(jìn)行操關(guān)的庫函數(shù),對(duì)設(shè)備進(jìn)行操作
43、。作。實(shí)現(xiàn)與設(shè)備驅(qū)動(dòng)器的統(tǒng)一實(shí)現(xiàn)與設(shè)備驅(qū)動(dòng)器的統(tǒng)一接口、設(shè)備命名、設(shè)備的接口、設(shè)備命名、設(shè)備的保護(hù)以及分配與釋放等,保護(hù)以及分配與釋放等,同時(shí)為設(shè)備管理和數(shù)據(jù)傳同時(shí)為設(shè)備管理和數(shù)據(jù)傳送提供必要的存儲(chǔ)空間。送提供必要的存儲(chǔ)空間。與硬件直接相關(guān),負(fù)責(zé)實(shí)現(xiàn)與硬件直接相關(guān),負(fù)責(zé)實(shí)現(xiàn)系統(tǒng)對(duì)設(shè)備發(fā)出的操作指令,系統(tǒng)對(duì)設(shè)備發(fā)出的操作指令,驅(qū)動(dòng)驅(qū)動(dòng)I/OI/O設(shè)備工作。設(shè)備工作。保存被中斷進(jìn)程的保存被中斷進(jìn)程的CPUCPU環(huán)境,環(huán)境,轉(zhuǎn)入相應(yīng)的中斷處理程序轉(zhuǎn)入相應(yīng)的中斷處理程序進(jìn)行處理,處理完后再恢進(jìn)行處理,處理完后再恢復(fù)被中斷進(jìn)程的現(xiàn)場(chǎng)后返復(fù)被中斷進(jìn)程的現(xiàn)場(chǎng)后返回到被中斷進(jìn)程?;氐奖恢袛噙M(jìn)程。nI/O軟件的
44、層次式結(jié)構(gòu)軟件的層次式結(jié)構(gòu)5.4.2 中斷處理程序中斷處理程序nI/O中斷處理程序中斷處理程序n系統(tǒng)為每類設(shè)備設(shè)置一個(gè)系統(tǒng)為每類設(shè)備設(shè)置一個(gè)I/O中斷處理程序,中斷處理程序,它們的入口地址被存放在內(nèi)存的固定單元中,它們的入口地址被存放在內(nèi)存的固定單元中,稱為中斷向量。稱為中斷向量。n當(dāng)設(shè)備完成一次當(dāng)設(shè)備完成一次I/O操作時(shí),發(fā)出中斷信號(hào),操作時(shí),發(fā)出中斷信號(hào),CPU接受中斷信號(hào),暫?,F(xiàn)行進(jìn)程的執(zhí)行,根接受中斷信號(hào),暫?,F(xiàn)行進(jìn)程的執(zhí)行,根據(jù)中斷向量轉(zhuǎn)到相應(yīng)的據(jù)中斷向量轉(zhuǎn)到相應(yīng)的I/O中斷處理程序。中斷處理程序。nI/O中斷處理程序的基本工作中斷處理程序的基本工作n保留現(xiàn)行進(jìn)程的執(zhí)行現(xiàn)場(chǎng);保留現(xiàn)行
45、進(jìn)程的執(zhí)行現(xiàn)場(chǎng);n通知等待該通知等待該I/O操作完成的進(jìn)程;操作完成的進(jìn)程;n最終轉(zhuǎn)入進(jìn)程調(diào)度程序進(jìn)行重新調(diào)度。最終轉(zhuǎn)入進(jìn)程調(diào)度程序進(jìn)行重新調(diào)度。5.4.2 中斷處理程序中斷處理程序n工作步驟工作步驟n喚醒被阻塞的驅(qū)動(dòng)喚醒被阻塞的驅(qū)動(dòng)(程序程序)進(jìn)程進(jìn)程n保護(hù)被中斷進(jìn)程的保護(hù)被中斷進(jìn)程的CPU環(huán)境環(huán)境n轉(zhuǎn)入相應(yīng)的設(shè)備處理程序轉(zhuǎn)入相應(yīng)的設(shè)備處理程序n中斷處理中斷處理n恢復(fù)被中斷進(jìn)程的現(xiàn)場(chǎng)恢復(fù)被中斷進(jìn)程的現(xiàn)場(chǎng)中斷現(xiàn)場(chǎng)保護(hù)示意圖中斷現(xiàn)場(chǎng)保護(hù)示意圖 不同的設(shè)備中不同的設(shè)備中斷處理程序不斷處理程序不同同 5.4.2 中斷處理程序中斷處理程序I/O完成后,驅(qū)動(dòng)程完成后,驅(qū)動(dòng)程序必須檢查本次序必須檢查本次I
46、/O操作中是否發(fā)生了錯(cuò)操作中是否發(fā)生了錯(cuò)誤,并向上層軟件報(bào)誤,并向上層軟件報(bào)告,最終向調(diào)用者報(bào)告,最終向調(diào)用者報(bào)告本次告本次I/O的執(zhí)行情的執(zhí)行情況況5.4.3設(shè)備驅(qū)動(dòng)程序設(shè)備驅(qū)動(dòng)程序n設(shè)備處理程序設(shè)備處理程序又稱為又稱為設(shè)備驅(qū)動(dòng)程序設(shè)備驅(qū)動(dòng)程序,是,是I/O進(jìn)程與進(jìn)程與設(shè)備控制器之間的通信程序設(shè)備控制器之間的通信程序n功能功能n接收接收用戶的用戶的I/O請(qǐng)求請(qǐng)求命令和參數(shù)命令和參數(shù),并將命令中的抽象,并將命令中的抽象要求要求轉(zhuǎn)換轉(zhuǎn)換為具體要求(為具體要求(I/O請(qǐng)求塊)。請(qǐng)求塊)。n檢查檢查用戶用戶I/O請(qǐng)求的請(qǐng)求的合法性合法性,了解,了解I/O設(shè)備的狀態(tài),設(shè)備的狀態(tài),傳遞有關(guān)參數(shù),傳遞有關(guān)
47、參數(shù),設(shè)置設(shè)置設(shè)備的設(shè)備的工作方式。工作方式。n發(fā)出發(fā)出I/O命令并檢查設(shè)備狀態(tài),空閑則啟動(dòng)命令并檢查設(shè)備狀態(tài),空閑則啟動(dòng)I/O完成完成指定的操作,忙碌則指定的操作,忙碌則將請(qǐng)求者的請(qǐng)求塊掛將請(qǐng)求者的請(qǐng)求塊掛到相應(yīng)設(shè)備到相應(yīng)設(shè)備的的I/O請(qǐng)求隊(duì)列。請(qǐng)求隊(duì)列。n及時(shí)及時(shí)響應(yīng)響應(yīng)由控制器或通道發(fā)來的由控制器或通道發(fā)來的中斷中斷請(qǐng)求并處理請(qǐng)求并處理n若計(jì)算機(jī)系統(tǒng)設(shè)置有通道,則驅(qū)動(dòng)程序根據(jù)用戶的若計(jì)算機(jī)系統(tǒng)設(shè)置有通道,則驅(qū)動(dòng)程序根據(jù)用戶的I/O請(qǐng)求,請(qǐng)求,自動(dòng)地構(gòu)成通道程序。自動(dòng)地構(gòu)成通道程序。5.4.3設(shè)備驅(qū)動(dòng)程序設(shè)備驅(qū)動(dòng)程序n注意注意n每類設(shè)備有一個(gè)每類設(shè)備有一個(gè)I/O請(qǐng)求隊(duì)列,在系統(tǒng)初始化時(shí),請(qǐng)
48、求隊(duì)列,在系統(tǒng)初始化時(shí),將系統(tǒng)中所有設(shè)備的將系統(tǒng)中所有設(shè)備的I/O請(qǐng)求隊(duì)列置為空。請(qǐng)求隊(duì)列置為空。n在系統(tǒng)初啟時(shí),系統(tǒng)為每類設(shè)備創(chuàng)建一個(gè)進(jìn)程在系統(tǒng)初啟時(shí),系統(tǒng)為每類設(shè)備創(chuàng)建一個(gè)進(jìn)程(其中的一種方式),執(zhí)行程序就是該設(shè)備的設(shè)(其中的一種方式),執(zhí)行程序就是該設(shè)備的設(shè)備驅(qū)動(dòng)程序。由于系統(tǒng)初啟時(shí),相應(yīng)的備驅(qū)動(dòng)程序。由于系統(tǒng)初啟時(shí),相應(yīng)的I/O請(qǐng)求隊(duì)請(qǐng)求隊(duì)列為空,則在該隊(duì)列上睡眠。列為空,則在該隊(duì)列上睡眠。n一旦有一旦有I/O請(qǐng)求塊掛入,喚醒該設(shè)備驅(qū)動(dòng)進(jìn)程。它請(qǐng)求塊掛入,喚醒該設(shè)備驅(qū)動(dòng)進(jìn)程。它被調(diào)度到時(shí),從隊(duì)列中取出一個(gè)被調(diào)度到時(shí),從隊(duì)列中取出一個(gè)I/O請(qǐng)求塊,并按請(qǐng)求塊,并按該塊的內(nèi)容執(zhí)行一次該塊的
49、內(nèi)容執(zhí)行一次I/O操作,發(fā)出操作,發(fā)出I/O完成(或出完成(或出錯(cuò))中斷信號(hào)。然后,檢查請(qǐng)求隊(duì),若為空,則錯(cuò))中斷信號(hào)。然后,檢查請(qǐng)求隊(duì),若為空,則進(jìn)入睡眠狀態(tài),否則,取下一個(gè)請(qǐng)求塊。進(jìn)入睡眠狀態(tài),否則,取下一個(gè)請(qǐng)求塊。5.4.3設(shè)備驅(qū)動(dòng)程序設(shè)備驅(qū)動(dòng)程序n設(shè)備處理方式設(shè)備處理方式n在在整個(gè)系統(tǒng)整個(gè)系統(tǒng)中設(shè)置中設(shè)置一個(gè)一個(gè)I/O進(jìn)程進(jìn)程,統(tǒng)一負(fù)責(zé)所,統(tǒng)一負(fù)責(zé)所有設(shè)備的驅(qū)動(dòng)工作。專門用于執(zhí)行系統(tǒng)中所有有設(shè)備的驅(qū)動(dòng)工作。專門用于執(zhí)行系統(tǒng)中所有各類設(shè)備的各類設(shè)備的I/O操作。操作。n為每為每一類設(shè)備一類設(shè)備設(shè)置設(shè)置一個(gè)進(jìn)程一個(gè)進(jìn)程,專門用于負(fù)責(zé)該,專門用于負(fù)責(zé)該類設(shè)備的驅(qū)動(dòng)工作(類設(shè)備的驅(qū)動(dòng)工作(I/
50、O操作)操作)。n為為每臺(tái)每臺(tái)設(shè)備建立設(shè)備建立一個(gè)一個(gè)設(shè)備驅(qū)動(dòng)進(jìn)程,它們分別設(shè)備驅(qū)動(dòng)進(jìn)程,它們分別負(fù)責(zé)專門設(shè)備的驅(qū)動(dòng)工作。同類設(shè)備的各驅(qū)動(dòng)負(fù)責(zé)專門設(shè)備的驅(qū)動(dòng)工作。同類設(shè)備的各驅(qū)動(dòng)進(jìn)程共享該類設(shè)備的設(shè)備驅(qū)動(dòng)程序。進(jìn)程共享該類設(shè)備的設(shè)備驅(qū)動(dòng)程序。n不設(shè)置專門的不設(shè)置專門的設(shè)備處理進(jìn)程,而只為設(shè)備處理進(jìn)程,而只為各類設(shè)備各類設(shè)備設(shè)置相應(yīng)的設(shè)備處理程序設(shè)置相應(yīng)的設(shè)備處理程序(模塊模塊),供用戶進(jìn)程供用戶進(jìn)程或系統(tǒng)進(jìn)程調(diào)用?;蛳到y(tǒng)進(jìn)程調(diào)用。5.4.3設(shè)備驅(qū)動(dòng)程序設(shè)備驅(qū)動(dòng)程序n設(shè)備驅(qū)動(dòng)程序的特點(diǎn)設(shè)備驅(qū)動(dòng)程序的特點(diǎn)n驅(qū)動(dòng)程序驅(qū)動(dòng)程序主要是指在請(qǐng)求主要是指在請(qǐng)求I/O的進(jìn)程與設(shè)備控制器之間的進(jìn)程與設(shè)備控制器之
51、間的一個(gè)通信和轉(zhuǎn)換程序的一個(gè)通信和轉(zhuǎn)換程序n驅(qū)動(dòng)程序驅(qū)動(dòng)程序與與設(shè)備設(shè)備控制器控制器和和I/O設(shè)備的設(shè)備的硬件特性緊密相關(guān)硬件特性緊密相關(guān),因而對(duì)不同類型的設(shè)備應(yīng)配置不同的驅(qū)動(dòng)程序因而對(duì)不同類型的設(shè)備應(yīng)配置不同的驅(qū)動(dòng)程序n驅(qū)動(dòng)程序與驅(qū)動(dòng)程序與I/O設(shè)備所采用的設(shè)備所采用的I/O控制方式緊密相關(guān)控制方式緊密相關(guān)n由于驅(qū)動(dòng)程序與硬件緊密相關(guān),由于驅(qū)動(dòng)程序與硬件緊密相關(guān),因而其中的一部分必因而其中的一部分必須用匯編語言書寫須用匯編語言書寫n驅(qū)動(dòng)程序應(yīng)允許可重入。一個(gè)正在運(yùn)行的驅(qū)動(dòng)程序常驅(qū)動(dòng)程序應(yīng)允許可重入。一個(gè)正在運(yùn)行的驅(qū)動(dòng)程序常會(huì)在一次調(diào)用完成前被再次調(diào)用。會(huì)在一次調(diào)用完成前被再次調(diào)用。n驅(qū)動(dòng)程序
52、不允許系統(tǒng)調(diào)用。驅(qū)動(dòng)程序不允許系統(tǒng)調(diào)用。5.4.3設(shè)備驅(qū)動(dòng)程序設(shè)備驅(qū)動(dòng)程序n設(shè)備驅(qū)動(dòng)程序的處理過程設(shè)備驅(qū)動(dòng)程序的處理過程n將抽象要求轉(zhuǎn)換為具體要求。設(shè)置控制器中的寄將抽象要求轉(zhuǎn)換為具體要求。設(shè)置控制器中的寄存器。存器。n檢查檢查I/O請(qǐng)求的合法性。若請(qǐng)求的設(shè)備不支持本次請(qǐng)求的合法性。若請(qǐng)求的設(shè)備不支持本次的的I/O請(qǐng)求,認(rèn)為是非法操作。請(qǐng)求,認(rèn)為是非法操作。n讀出和檢查設(shè)備的狀態(tài)讀出和檢查設(shè)備的狀態(tài)。檢查設(shè)備是否空閑或就。檢查設(shè)備是否空閑或就緒。緒。n傳送必要的參數(shù)傳送必要的參數(shù)。如數(shù)據(jù)量、起始地址等。如數(shù)據(jù)量、起始地址等n設(shè)置工作方式。對(duì)于有多種工作方式的設(shè)備進(jìn)行設(shè)置工作方式。對(duì)于有多種工作
53、方式的設(shè)備進(jìn)行設(shè)置設(shè)置n啟動(dòng)啟動(dòng)I/O設(shè)備。驅(qū)動(dòng)進(jìn)程將自己阻塞起來,直到中設(shè)備。驅(qū)動(dòng)進(jìn)程將自己阻塞起來,直到中斷到來時(shí)將其喚醒斷到來時(shí)將其喚醒5.4.4 設(shè)備獨(dú)立性軟件設(shè)備獨(dú)立性軟件n設(shè)備獨(dú)立性設(shè)備獨(dú)立性(Device Independence)的概念的概念n又稱為設(shè)備無關(guān)性。又稱為設(shè)備無關(guān)性。n基本含義是基本含義是:應(yīng)用程序獨(dú)立于具體使用的物理設(shè)備。應(yīng)用程序獨(dú)立于具體使用的物理設(shè)備。n實(shí)現(xiàn)方式實(shí)現(xiàn)方式n通過邏輯設(shè)備和物理設(shè)備。在應(yīng)用程序中,使用邏輯通過邏輯設(shè)備和物理設(shè)備。在應(yīng)用程序中,使用邏輯設(shè)備名稱來請(qǐng)求使用某類設(shè)備;而系統(tǒng)在實(shí)際執(zhí)行時(shí),設(shè)備名稱來請(qǐng)求使用某類設(shè)備;而系統(tǒng)在實(shí)際執(zhí)行時(shí),使用
54、物理設(shè)備名稱。使用物理設(shè)備名稱。n實(shí)現(xiàn)設(shè)備獨(dú)立性的好處:實(shí)現(xiàn)設(shè)備獨(dú)立性的好處:n設(shè)備分配時(shí)的靈活性設(shè)備分配時(shí)的靈活性n易于實(shí)現(xiàn)易于實(shí)現(xiàn)I/O重定向重定向5.4.4 設(shè)備獨(dú)立性軟件設(shè)備獨(dú)立性軟件n設(shè)備獨(dú)立性軟件的主要功能設(shè)備獨(dú)立性軟件的主要功能n執(zhí)行所有設(shè)備的公有操作執(zhí)行所有設(shè)備的公有操作 n 對(duì)獨(dú)立設(shè)備的分配與回收;對(duì)獨(dú)立設(shè)備的分配與回收;n 將邏輯設(shè)備名映射為物理設(shè)備名,進(jìn)一步可以找將邏輯設(shè)備名映射為物理設(shè)備名,進(jìn)一步可以找到相應(yīng)物理設(shè)備的驅(qū)動(dòng)程序;到相應(yīng)物理設(shè)備的驅(qū)動(dòng)程序;n 對(duì)設(shè)備進(jìn)行保護(hù),禁止用戶直接訪問設(shè)備;對(duì)設(shè)備進(jìn)行保護(hù),禁止用戶直接訪問設(shè)備;n 緩沖管理,即對(duì)字符設(shè)備和塊設(shè)備的緩
55、沖區(qū)進(jìn)行緩沖管理,即對(duì)字符設(shè)備和塊設(shè)備的緩沖區(qū)進(jìn)行有效的管理,以提高有效的管理,以提高I/O的效率;的效率;n 差錯(cuò)控制,只處理那些設(shè)備驅(qū)動(dòng)程序無法處理的差錯(cuò)控制,只處理那些設(shè)備驅(qū)動(dòng)程序無法處理的錯(cuò)誤;錯(cuò)誤;n 提供獨(dú)立于設(shè)備的邏輯塊。提供獨(dú)立于設(shè)備的邏輯塊。5.4.4 設(shè)備獨(dú)立性軟件設(shè)備獨(dú)立性軟件n設(shè)備獨(dú)立性軟件的主要功能設(shè)備獨(dú)立性軟件的主要功能n向用戶層向用戶層(或文件層或文件層)軟件提供統(tǒng)一接口。軟件提供統(tǒng)一接口。n無論何種設(shè)備,它們向用戶所提供的接口應(yīng)無論何種設(shè)備,它們向用戶所提供的接口應(yīng)該是相同的。該是相同的。n例,對(duì)各種設(shè)備的讀操作,在應(yīng)用程序中都例,對(duì)各種設(shè)備的讀操作,在應(yīng)用程序
56、中都使用使用read;而對(duì)各種設(shè)備的寫操作,也都使;而對(duì)各種設(shè)備的寫操作,也都使用用write。5.4.4 設(shè)備獨(dú)立性軟件設(shè)備獨(dú)立性軟件n邏輯設(shè)備名到物理設(shè)備名映射的實(shí)現(xiàn)邏輯設(shè)備名到物理設(shè)備名映射的實(shí)現(xiàn)n邏輯設(shè)備表邏輯設(shè)備表(LUT,Logical Unit Table)n將應(yīng)用程序中所使用的邏輯設(shè)備名映射為物將應(yīng)用程序中所使用的邏輯設(shè)備名映射為物理設(shè)備名。在該表的每個(gè)表目中包含了三項(xiàng):理設(shè)備名。在該表的每個(gè)表目中包含了三項(xiàng):邏輯設(shè)備名、物理設(shè)備名和設(shè)備驅(qū)動(dòng)程序的邏輯設(shè)備名、物理設(shè)備名和設(shè)備驅(qū)動(dòng)程序的入口地址。入口地址。5.4.4 設(shè)備獨(dú)立性軟件設(shè)備獨(dú)立性軟件n邏輯設(shè)備名到物理設(shè)備名映射的實(shí)現(xiàn)
57、邏輯設(shè)備名到物理設(shè)備名映射的實(shí)現(xiàn)nLUT的設(shè)置可采取兩種方式:的設(shè)置可采取兩種方式:n在整個(gè)系統(tǒng)中只設(shè)置一張?jiān)谡麄€(gè)系統(tǒng)中只設(shè)置一張LUT。所有用戶都使用不相同的邏。所有用戶都使用不相同的邏輯設(shè)備名。在多用戶環(huán)境下這通常是難以做到的,這種方式輯設(shè)備名。在多用戶環(huán)境下這通常是難以做到的,這種方式主要用于單用戶系統(tǒng)中。主要用于單用戶系統(tǒng)中。n每個(gè)用戶設(shè)置一張每個(gè)用戶設(shè)置一張LUT。用戶登錄時(shí),便為該用戶建立一個(gè)。用戶登錄時(shí),便為該用戶建立一個(gè)進(jìn)程,同時(shí)也為之建立一張進(jìn)程,同時(shí)也為之建立一張LUT,并將該表放入進(jìn)程的,并將該表放入進(jìn)程的PCB中。在多用戶系統(tǒng)中,通常都配置系統(tǒng)設(shè)備表。中。在多用戶系統(tǒng)中
58、,通常都配置系統(tǒng)設(shè)備表。5.4.5 用戶層的用戶層的I/O軟件軟件n包括與用戶程序鏈接在一起的庫函數(shù),以包括與用戶程序鏈接在一起的庫函數(shù),以及完全運(yùn)行于內(nèi)核之外的一些程序。及完全運(yùn)行于內(nèi)核之外的一些程序。n用戶層軟件必須通過一組系統(tǒng)調(diào)用來取得用戶層軟件必須通過一組系統(tǒng)調(diào)用來取得操作系統(tǒng)服務(wù)。操作系統(tǒng)服務(wù)。n在許多現(xiàn)代操作系統(tǒng)中,系統(tǒng)調(diào)用本身已在許多現(xiàn)代操作系統(tǒng)中,系統(tǒng)調(diào)用本身已經(jīng)采用經(jīng)采用C語言編寫,并以函數(shù)形式提供,所語言編寫,并以函數(shù)形式提供,所以在使用以在使用C語言編寫的用戶程序中,可以直語言編寫的用戶程序中,可以直接使用這些系統(tǒng)調(diào)用。接使用這些系統(tǒng)調(diào)用。5.5 設(shè)備分配設(shè)備分配n在多道
59、程序環(huán)境下,系統(tǒng)中的設(shè)備所有進(jìn)程共享,在多道程序環(huán)境下,系統(tǒng)中的設(shè)備所有進(jìn)程共享,為為防止防止進(jìn)程對(duì)系統(tǒng)資源的進(jìn)程對(duì)系統(tǒng)資源的無序競(jìng)爭(zhēng)無序競(jìng)爭(zhēng),必須由系統(tǒng),必須由系統(tǒng)統(tǒng)一分配統(tǒng)一分配設(shè)備。設(shè)備。n某進(jìn)程向系統(tǒng)提出某進(jìn)程向系統(tǒng)提出I/O請(qǐng)求時(shí),設(shè)備分配程序按請(qǐng)求時(shí),設(shè)備分配程序按一一定策略定策略分配設(shè)備、控制器和通道,形成一條數(shù)據(jù)分配設(shè)備、控制器和通道,形成一條數(shù)據(jù)傳輸通路,以供主機(jī)和設(shè)備間信息交換。傳輸通路,以供主機(jī)和設(shè)備間信息交換。n為實(shí)現(xiàn)設(shè)備分配,系統(tǒng)中應(yīng)設(shè)置相應(yīng)的數(shù)據(jù)結(jié)構(gòu),為實(shí)現(xiàn)設(shè)備分配,系統(tǒng)中應(yīng)設(shè)置相應(yīng)的數(shù)據(jù)結(jié)構(gòu),對(duì)每臺(tái)設(shè)備、通道、控制器的情況進(jìn)行登記。對(duì)每臺(tái)設(shè)備、通道、控制器的情況進(jìn)
60、行登記。5.5 設(shè)備分配設(shè)備分配n5.5.1 設(shè)備分配中的數(shù)據(jù)結(jié)構(gòu)設(shè)備分配中的數(shù)據(jù)結(jié)構(gòu)n5.5.2 設(shè)備分配時(shí)應(yīng)考慮的因素設(shè)備分配時(shí)應(yīng)考慮的因素n5.5.3 獨(dú)占設(shè)備的分配程序獨(dú)占設(shè)備的分配程序n5.5.4 SPOOLing技術(shù)技術(shù)5.5.1 設(shè)備分配中的數(shù)據(jù)結(jié)構(gòu)設(shè)備分配中的數(shù)據(jù)結(jié)構(gòu)n設(shè)備控制表設(shè)備控制表DCT設(shè)備類型設(shè)備類型 type設(shè)備標(biāo)識(shí)符:設(shè)備標(biāo)識(shí)符:deviceid設(shè)備狀態(tài):等待設(shè)備狀態(tài):等待/不等待不等待 忙忙/閑閑指向控制器表指向控制器表COCT的指針的指針重復(fù)執(zhí)行次數(shù)或時(shí)間重復(fù)執(zhí)行次數(shù)或時(shí)間設(shè)備隊(duì)列的隊(duì)首指針設(shè)備隊(duì)列的隊(duì)首指針DCT 1DCT 2DCT n設(shè)設(shè)備備控控制制表表集
61、集合合每個(gè)設(shè)備一張,記錄本設(shè)備的情況每個(gè)設(shè)備一張,記錄本設(shè)備的情況正使用,則忙標(biāo)志正使用,則忙標(biāo)志置置1;若與其相連的;若與其相連的控制器或通道忙,控制器或通道忙,則等待標(biāo)志置則等待標(biāo)志置1請(qǐng)求本設(shè)備未滿請(qǐng)求本設(shè)備未滿足的進(jìn)程足的進(jìn)程PCB隊(duì)隊(duì)列列5.5.1 設(shè)備分配中的數(shù)據(jù)結(jié)構(gòu)設(shè)備分配中的數(shù)據(jù)結(jié)構(gòu)n控制器控制表、控制器控制表、通道控制表通道控制表控制器標(biāo)識(shí)符:控制器標(biāo)識(shí)符:controllerid控制器狀態(tài):忙控制器狀態(tài):忙/閑閑與控制器連接的通道表指針與控制器連接的通道表指針控制器隊(duì)列的隊(duì)首指針控制器隊(duì)列的隊(duì)首指針控制器隊(duì)列的隊(duì)尾指針控制器隊(duì)列的隊(duì)尾指針通道標(biāo)識(shí)符:通道標(biāo)識(shí)符:channe
62、lid通道狀態(tài):忙通道狀態(tài):忙/閑閑與通道連接的控制器表首址與通道連接的控制器表首址通道隊(duì)列的隊(duì)首指針通道隊(duì)列的隊(duì)首指針通道隊(duì)列的隊(duì)尾指針通道隊(duì)列的隊(duì)尾指針(a)控制器表控制器表COCT(b)通道表通道表CHCT一個(gè)控制器一張一個(gè)控制器一張一個(gè)通道一張一個(gè)通道一張5.5.1 設(shè)備分配中的數(shù)據(jù)結(jié)構(gòu)設(shè)備分配中的數(shù)據(jù)結(jié)構(gòu)n系統(tǒng)設(shè)備表系統(tǒng)設(shè)備表SDT系統(tǒng)系統(tǒng)設(shè)備表設(shè)備表SDT表目表目 1表目表目 i設(shè)備類設(shè)備類設(shè)備標(biāo)識(shí)符設(shè)備標(biāo)識(shí)符DCT驅(qū)動(dòng)程序入口驅(qū)動(dòng)程序入口整個(gè)系統(tǒng)一張,記錄已被連接到系統(tǒng)中的所有物理設(shè)備的情況整個(gè)系統(tǒng)一張,記錄已被連接到系統(tǒng)中的所有物理設(shè)備的情況5.5.2 設(shè)備分配時(shí)應(yīng)考慮的因素設(shè)
63、備分配時(shí)應(yīng)考慮的因素n設(shè)備的固有屬性設(shè)備的固有屬性n獨(dú)占性獨(dú)占性n一段時(shí)間內(nèi),只允許一個(gè)進(jìn)程獨(dú)占,大多數(shù)低度速一段時(shí)間內(nèi),只允許一個(gè)進(jìn)程獨(dú)占,大多數(shù)低度速/設(shè)備都屬于獨(dú)享設(shè)備。設(shè)備都屬于獨(dú)享設(shè)備。n共享性共享性n允許多個(gè)進(jìn)程同時(shí)共享,如磁盤、磁鼓之類的外存允許多個(gè)進(jìn)程同時(shí)共享,如磁盤、磁鼓之類的外存儲(chǔ)器,既具有很能大的存儲(chǔ)容量,其定位操作的時(shí)儲(chǔ)器,既具有很能大的存儲(chǔ)容量,其定位操作的時(shí)間又短。間又短。n可虛擬性可虛擬性n獨(dú)占設(shè)備經(jīng)某種技術(shù)處理,改造成虛擬設(shè)備,把一獨(dú)占設(shè)備經(jīng)某種技術(shù)處理,改造成虛擬設(shè)備,把一臺(tái)輸入機(jī)虛擬為幾臺(tái)臺(tái)輸入機(jī)虛擬為幾臺(tái)“虛擬虛擬”的輸入機(jī)。例如:為的輸入機(jī)。例如:為了提
64、高設(shè)備利用率引入了脫機(jī)輸入輸出或采用了提高設(shè)備利用率引入了脫機(jī)輸入輸出或采用SPOOLing技術(shù),變一臺(tái)為技術(shù),變一臺(tái)為“多臺(tái)設(shè)備多臺(tái)設(shè)備”。缺點(diǎn):設(shè)備得缺點(diǎn):設(shè)備得不到充分利用,不到充分利用,可能產(chǎn)生死鎖可能產(chǎn)生死鎖5.5.2 設(shè)備分配時(shí)應(yīng)考慮的因素設(shè)備分配時(shí)應(yīng)考慮的因素n設(shè)備分配設(shè)備分配n獨(dú)占設(shè)備獨(dú)占設(shè)備n防止死鎖。防止死鎖。n共享設(shè)備共享設(shè)備n由于同時(shí)有多個(gè)進(jìn)程同時(shí)訪問,且訪問頻繁,由于同時(shí)有多個(gè)進(jìn)程同時(shí)訪問,且訪問頻繁,就會(huì)影響整個(gè)設(shè)備使用效率,影響系統(tǒng)效率。就會(huì)影響整個(gè)設(shè)備使用效率,影響系統(tǒng)效率。因此要考慮多個(gè)訪問請(qǐng)求到達(dá)時(shí)服務(wù)的順序,因此要考慮多個(gè)訪問請(qǐng)求到達(dá)時(shí)服務(wù)的順序,使平均服
65、務(wù)時(shí)間越短越好。使平均服務(wù)時(shí)間越短越好。注意各進(jìn)程的訪注意各進(jìn)程的訪問次序進(jìn)行合理調(diào)度。問次序進(jìn)行合理調(diào)度。n虛擬設(shè)備虛擬設(shè)備5.5.2 設(shè)備分配時(shí)應(yīng)考慮的因素設(shè)備分配時(shí)應(yīng)考慮的因素n設(shè)備分配算法設(shè)備分配算法n先來先服務(wù)先來先服務(wù)n優(yōu)先級(jí)高者優(yōu)先優(yōu)先級(jí)高者優(yōu)先n設(shè)備分配中的安全性設(shè)備分配中的安全性n安全分配方式安全分配方式n每當(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操操作完成后喚醒作完成后喚醒n優(yōu)點(diǎn):摒棄了優(yōu)點(diǎn):摒棄了“請(qǐng)求和保持請(qǐng)求和保持”條件,不會(huì)產(chǎn)生死鎖條件,不會(huì)產(chǎn)生死鎖n不安全分配方式不安全分配方式 n進(jìn)程發(fā)出進(jìn)程發(fā)出I/O請(qǐng)求后仍繼續(xù)運(yùn)行,繼
66、續(xù)申請(qǐng)請(qǐng)求后仍繼續(xù)運(yùn)行,繼續(xù)申請(qǐng)I/O設(shè)備設(shè)備n優(yōu)點(diǎn):可操作多個(gè)設(shè)備,推進(jìn)迅速優(yōu)點(diǎn):可操作多個(gè)設(shè)備,推進(jìn)迅速缺點(diǎn):推進(jìn)缺點(diǎn):推進(jìn)速度緩慢速度緩慢缺點(diǎn):可能缺點(diǎn):可能產(chǎn)生死鎖產(chǎn)生死鎖5.5.3獨(dú)占設(shè)備的分配程序獨(dú)占設(shè)備的分配程序n基本的設(shè)備分配程序基本的設(shè)備分配程序n分配設(shè)備分配設(shè)備n分配控制器分配控制器n分配通道分配通道5.5.3獨(dú)占設(shè)備的分配程序獨(dú)占設(shè)備的分配程序5.5.3獨(dú)占設(shè)備的分配程序獨(dú)占設(shè)備的分配程序獨(dú)獨(dú)占占設(shè)設(shè)備備的的分分配配程程序序分配設(shè)備分配設(shè)備1分配控制器分配控制器1分配通道分配通道1申請(qǐng)?jiān)O(shè)備申請(qǐng)?jiān)O(shè)備1按設(shè)備物理名查按設(shè)備物理名查SDT設(shè)備忙?設(shè)備忙?根據(jù)安全策略進(jìn)行分配根據(jù)安全策略進(jìn)行分配由由DCT查查COCT分配控制器分配控制器由由COCT查查CHCT分配通道分配通道否是由由SDT查設(shè)備查設(shè)備 DCT5.5.3獨(dú)占設(shè)備的分配程序獨(dú)占設(shè)備的分配程序n設(shè)備分配程序的改進(jìn)設(shè)備分配程序的改進(jìn)n基本分配程序的問題基本分配程序的問題n進(jìn)程以物理設(shè)備名提出進(jìn)程以物理設(shè)備名提出I/O請(qǐng)求請(qǐng)求n采用單通路采用單通路I/O系統(tǒng)結(jié)構(gòu),容易產(chǎn)生瓶頸系統(tǒng)結(jié)構(gòu),容易產(chǎn)生瓶頸n改進(jìn)方案改進(jìn)方案
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 餐飲成本核算與控制培訓(xùn)課件
- 新員工入職培訓(xùn)思想修養(yǎng)篇(ppt47)
- 同步電機(jī)的工作原理及結(jié)構(gòu)特點(diǎn)
- 電影敘事結(jié)構(gòu)模式完整版
- 南州六月荔枝丹課件分析說明方法
- 人教版小學(xué)音樂六下《愛我中華》課件
- ××空調(diào)設(shè)備有限公司整體發(fā)展戰(zhàn)略診斷(PPT 50頁)
- 《酒店培訓(xùn)體系建設(shè)》課件
- 細(xì)胞膜系統(tǒng)的結(jié)構(gòu)
- 觸發(fā)器及其應(yīng)用
- 柱體、錐體、臺(tái)體的表面積與體積
- 萬能險(xiǎn)銷售流程和話術(shù)0
- 紅外光譜基本原理
- 3技術(shù)創(chuàng)新管理-(9)
- 函數(shù)的零點(diǎn)(精品)