版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第五章 設(shè)備管理5.1 I/O系統(tǒng)5.1.1 I/O設(shè)備1、 I/O設(shè)備的類型1)按設(shè)備的使用特性分類存儲(chǔ)設(shè)備:外存輸入設(shè)備:鍵盤、鼠標(biāo)、掃描儀等輸出設(shè)備:打印機(jī)、顯示器、繪圖儀等交互設(shè)備:終端。5.1.1 I/O設(shè)備1、 I/O設(shè)備的類型2)按傳輸速率分類(1)低速設(shè)備:每秒十幾個(gè)字節(jié)至數(shù)百個(gè)字節(jié)。(2)中速設(shè)備:每秒數(shù)千個(gè)字節(jié)至數(shù)十千個(gè)字節(jié)。(3)高速設(shè)備:每秒數(shù)百千個(gè)字節(jié)至數(shù)兆個(gè)字節(jié)。3)按信息交換的單位分類(1)塊設(shè)備:以塊為單位進(jìn)行信息交換的設(shè)備,例如:磁盤。(2)字符設(shè)備:以單個(gè)字符為單位進(jìn)行信息交換的設(shè)備,例如:打印機(jī)、鍵盤。4)按設(shè)備的共享屬性分類(1)獨(dú)占設(shè)備:在一段時(shí)間內(nèi)只
2、能被一個(gè)進(jìn)程訪問的設(shè)備。例:打印機(jī)。(2)共享設(shè)備:在一段時(shí)間內(nèi),多個(gè)進(jìn)程可交替訪問的設(shè)備。例:磁盤。(3)虛擬設(shè)備:通過虛擬技術(shù)模擬的設(shè)備。2、設(shè)備與控制器之間的接口 接口中有數(shù)據(jù)、狀態(tài)、控制三種類型的寄存器,用于傳輸數(shù)據(jù)信號(hào)、狀態(tài)信號(hào)、控制信號(hào)。1)數(shù)據(jù)信號(hào)線 傳送輸入輸出數(shù)據(jù)。2)控制信號(hào)線 由設(shè)備控制器向I/O設(shè)備發(fā)送控制命令。3)狀態(tài)信號(hào)線 由設(shè)備向控制器傳送設(shè)備狀態(tài)信息。緩沖 轉(zhuǎn)換器 控制邏輯I/O設(shè)備數(shù)據(jù)信號(hào)線狀態(tài)信號(hào)線控制信號(hào)線信號(hào)數(shù)據(jù)至設(shè)備控制器5.1.2 設(shè)備控制器 設(shè)備控制器分為兩大類:字符設(shè)備的控制器和塊設(shè)備的控制器。1、設(shè)備控制器的基本功能1)接收和識(shí)別命令 控制器用
3、控制寄存器接收CPU的命令,并對(duì)命令進(jìn)行譯碼識(shí)別。2)數(shù)據(jù)交換:用數(shù)據(jù)寄存器進(jìn)行輸入輸出 的數(shù)據(jù)交換。3)標(biāo)識(shí)和報(bào)告設(shè)備的狀態(tài) 利用狀態(tài)寄存器來(lái)反映設(shè)備的當(dāng)前狀態(tài)。4)地址識(shí)別 每個(gè)設(shè)備接口寄存器都有唯一的地址,在控制器中配置地址譯碼器來(lái)識(shí)別接口寄存器的地址。5)數(shù)據(jù)緩沖 由于I/O設(shè)備的速率遠(yuǎn)遠(yuǎn)低于CPU和內(nèi)存的速率,故在控制器中設(shè)置緩沖器,用于暫存輸入輸出數(shù)據(jù)。6)差錯(cuò)控制 設(shè)備控制器對(duì)由I/O設(shè)備傳送來(lái)的數(shù)據(jù)進(jìn)行差錯(cuò)檢測(cè),發(fā)現(xiàn)錯(cuò)誤,報(bào)告CPU。2、設(shè)備控制器的組成 控制器在CPU與設(shè)備之間,控制器即要與CPU通信,也要與設(shè)備通信,因此,設(shè)備控制器主要由三部分組成。1)設(shè)備控制器與處理機(jī)的
4、接口 通過數(shù)據(jù)線、地址線、控制線進(jìn)行通信,數(shù)據(jù)線與數(shù)據(jù)寄存器和控制/狀態(tài)寄存器兩類寄存器相連。2)設(shè)備控制器與設(shè)備的接口 一個(gè)控制器可連接多臺(tái)設(shè)備,有多個(gè)設(shè)備接口,每個(gè)設(shè)備接口都有一組寄存器來(lái)傳送數(shù)據(jù)、控制和狀態(tài)信號(hào)。3)I/O邏輯 通過控制線接收CPU的I/O命令,并對(duì)收到的命令進(jìn)行譯碼,通過地址線接收I/O地址并對(duì)地址進(jìn)行譯碼,用I/O命令實(shí)現(xiàn)對(duì)指定設(shè)備的控制。CPU與控制器接口控制器與設(shè)備接口數(shù)據(jù)寄存器控制/狀態(tài) 寄存器數(shù)據(jù)線I/O邏輯地址線控制線控制器與設(shè)備 接口1控制器與設(shè)備 接口i數(shù)據(jù)狀態(tài)控制數(shù)據(jù)狀態(tài)控制5.1.3 I/O通道1、I/O通道設(shè)備的引入 引入通道的主要目的是為了建立獨(dú)
5、立的I/O操作,CPU向通道發(fā)I/O指令,通道收到指令后,從內(nèi)存指定位置取出通道程序,執(zhí)行通道程序完成I/O操作,完成后向CPU發(fā)中斷信號(hào)。2、通道類型1)字節(jié)多路通道 通道中含有多個(gè)非分配型子通道,每個(gè)子通道連接一臺(tái)I/O設(shè)備,所有子通道按時(shí)間片輪轉(zhuǎn)方式共享主通道,一個(gè)子通道占用主通道完成一個(gè)字節(jié)的交換后,立即讓給另一子通道使用。A1B1C1A2B2C2控制器控制器控制器控制器控制器設(shè)備A1A2A3子通道AB1B2B3子通道BC1C2C3子通道CN1N2N3子通道N字節(jié)多路通道2)數(shù)組選擇通道 通道內(nèi)只含有一個(gè)分配型的子通道,連接一臺(tái)設(shè)備傳送一組數(shù)據(jù)。3)數(shù)組多路通道 通道內(nèi)含有多個(gè)非分配型
6、子通道,連接多臺(tái)設(shè)備,以時(shí)間片輪轉(zhuǎn)方式進(jìn)行數(shù)組方式的多路傳送,一個(gè)子通道傳送一組數(shù)據(jù)后,讓給下一子通道。A1B1C1A2B2C2控制器控制器控制器控制器控制器設(shè)備A1B1C1A2B2C2 數(shù)組選擇通道A1B1C1A2B2C2控制器控制器控制器控制器控制器設(shè)備A1B1C1子通道AA2B2C2子通道BA3B3C3子通道CA14B14C14子通道N數(shù)組多路通道3、“瓶頸”問題 通道價(jià)格昂貴,機(jī)器配置的通道少,致使主機(jī)與設(shè)備的通路較少,這往往成為I/O的“瓶頸”。在不增加通道的前題下,采用交叉連接的方式,增加主機(jī)到設(shè)備的通路,是解決瓶頸問題最有效的方法。存儲(chǔ)器設(shè)備1通道2控制器1控制器2控制器3控制器
7、4通道1設(shè)備3設(shè)備2設(shè)備4設(shè)備5設(shè)備6設(shè)備77條通路存儲(chǔ)器通道1通道2控制器1控制器2I/O設(shè)備I/O設(shè)備I/O設(shè)備I/O設(shè)備16條通路5.1.4 總線系統(tǒng)CPU存儲(chǔ)器 磁盤控制器打印機(jī)控制器 其它控制器打印機(jī)磁盤驅(qū)動(dòng)器1、ISA和EISA總線1)ISA總線 為80286微機(jī)設(shè)計(jì)的總線結(jié)構(gòu),帶寬8位,傳輸率為2Mb/s.2)EISA總線 帶寬為32位,傳輸率為32Mb/s,可以連接12臺(tái)設(shè)備。2、局部總線1)VESA 帶寬為32位,最高傳輸率132Mb/s,應(yīng)用于486微機(jī)中。2)PCI總線 PCI在CPU與外設(shè)之間插入一復(fù)雜的管理層,用于協(xié)調(diào)數(shù)據(jù)傳輸和提供一致的接口,配有數(shù)據(jù)緩沖,最多能支持
8、10種外設(shè),可連接ISA、EISA等總線。5.2 I/O控制方式5.2.1 程序I/O方式 處理機(jī)向設(shè)備控制器發(fā)出一條I/O指令,然后循環(huán)測(cè)試設(shè)備的狀態(tài),直至設(shè)備狀態(tài)為就緒時(shí),處理機(jī)讀走數(shù)據(jù)寫入內(nèi)存,反復(fù)進(jìn)行直至數(shù)據(jù)傳送完成。 程序I/O方式使CPU等待設(shè)備,CPU利用率低。向I/O控制器 發(fā)讀命令讀I/O控制器 的狀態(tài)檢查狀態(tài)從I/O控制器 中讀入字就緒向存儲(chǔ)器 中寫字傳送完成未完未就緒CPUI/OI/OCPU出錯(cuò)I/OCPUCPU內(nèi)存完成5.2.2 中斷驅(qū)動(dòng)I/O控制方式 CPU向設(shè)備控制器發(fā)I/O命令,控制按命令控制設(shè)備,I/O操作完成后,控制器發(fā)出中斷請(qǐng)求,CPU響應(yīng)中斷進(jìn)行中斷處理,
9、反復(fù)進(jìn)行直至數(shù)據(jù)傳送完成。向I/O控制器 發(fā)讀命令讀I/O控制器 的狀態(tài)檢查狀態(tài)從I/O控制器 中讀入字就緒向存儲(chǔ)器 中寫字傳送完成未完CPUI/OI/OCPU出錯(cuò)I/OCPUCPU內(nèi)存完成CPU做其它事中斷5.2.3 直接存儲(chǔ)器訪問DMA I/O控制方式1、DMA控制方式的引入 用中斷驅(qū)動(dòng)I/O方式,每次中斷只能傳送一個(gè)字節(jié),傳送1000個(gè)字節(jié),產(chǎn)生1000次中斷,引入DMA方式后,一次中斷可傳送一組數(shù)據(jù)。DMA方式的特點(diǎn):(1)傳輸?shù)幕締挝皇菈K(2)設(shè)備直接訪問存儲(chǔ)器(3)傳送的開始和結(jié)束才需CPU干預(yù)。 向I/O控制器發(fā)布讀塊命令 讀DMA控制器 的狀態(tài)下條指令CPUDMACPU做其它
10、事中斷DMACPU2、DMA控制器組成(1)命令/狀態(tài)寄存器CR:存放I/O命令或設(shè)備狀態(tài)。(2)內(nèi)存地址寄存器MAR:存放輸入/輸出數(shù)據(jù)的內(nèi)存地址。(3)數(shù)據(jù)寄存器DR:存放輸入輸出數(shù)據(jù)。(4)數(shù)據(jù)計(jì)數(shù)器DC:存放傳送字節(jié)數(shù)。CPU內(nèi)存countDRMARDCCR主機(jī)與控制器接口I/O控制邏輯控制器與設(shè)備接口命令系統(tǒng)總線DMA控制器3、DMA工作過程 CPU命令傳入CR,內(nèi)存地址填入MAR,數(shù)據(jù)字節(jié)數(shù)填入DC,DMA控制器每傳送一個(gè)字節(jié),DC-1,MAR+1,直至DC=0,DMA控制器發(fā)出中斷請(qǐng)求,CPU處理中斷收回總線。設(shè)置MAR和DC初值啟動(dòng)DMA傳送命令挪用存儲(chǔ)器周期 傳送數(shù)據(jù)字 存儲(chǔ)
11、器地址增1字計(jì)數(shù)寄存器減1DC=0?是請(qǐng)求中斷否在繼續(xù)執(zhí)行用戶程序的同時(shí),準(zhǔn)備下一次傳送。5.2.4 I/O通道控制方式1、I/O通道控制方式的引入 DMA方式,CPU每發(fā)出一條I/O指令,只能讀/寫一組數(shù)據(jù),引入通道控制方式,CPU用一條I/O指令,啟動(dòng)通道執(zhí)行通道程序,傳送多組數(shù)據(jù)后,通道發(fā)出中斷請(qǐng)求,CPU進(jìn)行中斷處理。即DMA方式一次中斷傳一組數(shù)據(jù),通道方式一次中斷傳多組數(shù)據(jù)。2、通道程序 由若干條通道指令組成,通道通過執(zhí)行通道程序,并與控制器共同實(shí)現(xiàn)對(duì)設(shè)備的控制。通道指令的格式:(1)操作碼(2)內(nèi)存地址(3)計(jì)數(shù)(4)通道程序結(jié)束位P: P=1表示通道程序結(jié)束(5)記錄結(jié)束標(biāo)志R:
12、 記錄由多條指令組成,表示記錄結(jié)束。操作PR計(jì)數(shù) 內(nèi)存地址WRITE0080813WRITE001401034WRITE01605830WRITE013002000WRITE002501850WRITE11250720記錄1記錄2記錄3通道程序5.3 緩沖管理5.3.1 緩沖的引入(1)緩和CPU與I/O設(shè)備間速度不匹配的矛盾 設(shè)置緩沖區(qū),避免CPU等待I/O設(shè)備。(2)減少對(duì)CPU的中斷頻率,放寬對(duì)中斷響 應(yīng)時(shí)間的限止. 在緩沖區(qū)滿時(shí)才中斷,在第2緩沖區(qū)滿時(shí)響應(yīng)中斷。(3)提高CPU和I/O設(shè)備之間的并行性 CPU處理第一批數(shù)據(jù)的同時(shí),I/O設(shè)備輸入第二批數(shù)據(jù)。5.3.2 單緩沖和雙緩沖1、
13、單緩沖用戶進(jìn)程操作系統(tǒng)I/O設(shè)備輸入T傳送M計(jì)算C因?yàn)镸遠(yuǎn)小于T或C,不加緩沖的處理時(shí)間是T+C,加緩沖的處理時(shí)間是MAX(C,T)+M, T+CMAX(C,T)+M緩沖區(qū)內(nèi)存2、 雙緩沖用戶進(jìn)程操作系統(tǒng)I/O設(shè)備輸入T傳送M計(jì)算C在傳送第一批數(shù)據(jù)處理結(jié)果的同時(shí),CPU在處理第二批數(shù)據(jù),I/O設(shè)備在輸入第三批數(shù)據(jù)。處理時(shí)間為:MAX(T,C)。例如:使用雙緩沖使CPU與讀卡機(jī)、打印機(jī)并行工作;用雙緩沖實(shí)現(xiàn)雙向通信。A機(jī)緩沖區(qū)B機(jī)緩沖區(qū)A機(jī) 發(fā)送緩沖區(qū) 接收緩沖區(qū)B機(jī) 接收緩沖區(qū) 發(fā)送緩沖區(qū)5.3.3 循環(huán)緩沖用戶進(jìn)程操作系統(tǒng)I/O設(shè)備輸入T傳送M計(jì)算C1、循環(huán)緩沖的組成(1)多個(gè)緩沖區(qū)n空緩沖
14、區(qū)Rn已裝滿數(shù)據(jù)的緩沖區(qū)Gn現(xiàn)行工作緩沖區(qū)CRRGGGGNEXTiNEXTgRRGGGGNEXTicurrentNEXTg(2)多個(gè)指針nNextg:指向下一個(gè)可用緩沖區(qū)GnNexti:指向下一個(gè)可用空緩沖區(qū)RnCurrent:正在使用的緩沖區(qū)。2、循環(huán)緩沖區(qū)的使用(1)getbuf過程:計(jì)算進(jìn)程調(diào)用getbuf,獲得緩沖區(qū)G;輸入進(jìn)程調(diào)用getbuf,獲得空緩沖區(qū)R。(2)Releasebuf過程: 計(jì)算進(jìn)程調(diào)用releasebuf將現(xiàn)行工作區(qū)C改為空緩沖區(qū)R;輸入進(jìn)程調(diào)releasebuf將空緩沖區(qū)R改為緩沖區(qū)G。3、進(jìn)程同步(1)Nexti指針追趕上Nextg指針 表示輸入快于處理,輸入
15、進(jìn)程阻塞。(2)Nextg指針追趕上Nexti指針 表示處理快于輸入,處理進(jìn)程阻塞。5.3.4 緩沖池1、緩沖池的組成 緩沖池由空閑緩沖區(qū)、輸入緩沖區(qū)、輸出緩沖區(qū)三種類型的緩沖區(qū)組成,將相同類型的緩沖區(qū)組成隊(duì)列。緩沖池的三個(gè)隊(duì)列。(1)空緩沖隊(duì)列emq:隊(duì)首指針F(emq),隊(duì)尾指針L(emq)。(2)輸入隊(duì)列inq:隊(duì)首指針F(inq),隊(duì)尾指針L(inq)。(3)輸出隊(duì)列outq:隊(duì)首指針F(outq),隊(duì)尾指針L(outq)。四種工作緩沖區(qū):用于收容輸入的工作緩沖區(qū);用于提取輸入的工作緩沖區(qū);用于收容輸出的工作緩沖區(qū);用于提取輸出的工作緩沖區(qū)。2、getbuf過程和putbuf過程 ge
16、tbuf和putbuf過程分別要調(diào)用addbuf和takebuf過程來(lái)實(shí)現(xiàn)隊(duì)列操作,由于隊(duì)列必須互斥訪問,設(shè)置互斥信號(hào)MS(type)和同步信號(hào)RS(type),實(shí)現(xiàn)隊(duì)列的互斥訪問以及getbuf和putbuf間的半同步。 procedure getbuf(type) begin wait(RS(type) wait(MS(type) B(num):=takebuf(type) signal(MS(type) end procedure putbuf(type,num) begin wait(MS(type) addbuf(type,num) signal(MS(type) signal(RS
17、(type) end3、緩沖區(qū)的工作方式(1)收容輸入 從emq獲空緩沖區(qū),作為hin,裝滿輸入數(shù)據(jù),插入inq隊(duì)列。(2)提取輸入 從inq獲輸入緩沖區(qū),作為sin,取空輸入數(shù)據(jù),插入emq。(3)收容輸出 從emq獲空緩沖區(qū),作為hout,裝滿輸出數(shù)據(jù),插入outq。(4)提取輸出 從outq獲輸出緩沖區(qū),作為sout,取空輸出數(shù)據(jù),插入emq。5.4 I/O軟件5.4.1 I/O軟件的設(shè)計(jì)目標(biāo)和原則設(shè)計(jì)目標(biāo):1)與具體設(shè)備無(wú)關(guān)2)統(tǒng)一命名3)對(duì)錯(cuò)誤的處理4)緩沖技術(shù)5)設(shè)備的分配和釋放6)I/O控制方式I/O軟件的層次:(1)用戶層軟件(2)設(shè)備獨(dú)立性軟件(3)設(shè)備驅(qū)動(dòng)程序(4)中斷處理
18、程序5.4.2 中斷處理程序1、喚醒被阻塞的驅(qū)動(dòng)程序進(jìn)程。2、保護(hù)被中斷進(jìn)程的CPU環(huán)境。3、轉(zhuǎn)入相應(yīng)的設(shè)備處理程序。4、中斷處理5、恢復(fù)被中斷進(jìn)程的現(xiàn)場(chǎng) PSW 程序狀態(tài)字 PC(N+1) 程序計(jì)數(shù)器寄存器PSWPC(N+1)棧指針NN+1開始返回用戶程序中斷處理程序中斷棧5.4.3 設(shè)備驅(qū)動(dòng)程序1、設(shè)備驅(qū)動(dòng)程序的功能(1)將抽象的I/O請(qǐng)求轉(zhuǎn)換為具體的I/O請(qǐng)求。(2)檢查I/O的合法性,了解設(shè)備狀態(tài),設(shè)置設(shè)備的工作方式。(3)啟動(dòng)I/O設(shè)備。(4)響應(yīng)中斷請(qǐng)求。(5)構(gòu)成通道程序。2、設(shè)備處理方式(1)為每一類設(shè)備設(shè)置一個(gè)I/O進(jìn)程。(2)整個(gè)系統(tǒng)設(shè)置一個(gè)I/O進(jìn)程(3)為各類設(shè)備設(shè)置相
19、應(yīng)的設(shè)備處理程序,供用戶進(jìn)程或系統(tǒng)進(jìn)程調(diào)用。3、設(shè)備驅(qū)動(dòng)程序的特點(diǎn)(1)驅(qū)動(dòng)程序是請(qǐng)求I/O的進(jìn)程與設(shè)備控制器之間的一個(gè)通信程序。(2)不同類型的設(shè)備應(yīng)配置不同的驅(qū)動(dòng)程序。(3)驅(qū)動(dòng)程序與I/O控制方式緊密相關(guān)。(4)驅(qū)動(dòng)程序必須用匯編語(yǔ)言書寫,基本設(shè)備的驅(qū)動(dòng)程序已固化在ROM中。(5)驅(qū)動(dòng)程序應(yīng)允許可重入。(6)驅(qū)動(dòng)程序不允許系統(tǒng)調(diào)用。4、 設(shè)備驅(qū)動(dòng)程序的處理過程1)將抽象要求轉(zhuǎn)換為具體要求例:盤塊號(hào)轉(zhuǎn)換為盤面、磁道及扇區(qū)。2)檢查I/O請(qǐng)求的合法性例:請(qǐng)求從打印機(jī)輸入數(shù)據(jù)將被拒絕。3)讀出和檢查設(shè)備的狀態(tài):從設(shè)備控制器的狀態(tài)寄存器中讀出設(shè)備的狀態(tài)。4)傳送必要的參數(shù)例:讀寫磁盤前,要將字節(jié)
20、數(shù)和內(nèi)存地址傳送到控制器。5)工作方式的設(shè)置:設(shè)置設(shè)備的工作方式。6)啟動(dòng)I/O設(shè)備:驅(qū)動(dòng)程序發(fā)出I/O命令,由控制器控制設(shè)備完成基本的I/O。5.4.4 設(shè)備獨(dú)立性軟件1、設(shè)備獨(dú)立性的概念 設(shè)備改變了,使用設(shè)備的應(yīng)用程序不需要修改,即應(yīng)用程序獨(dú)立于具體使用的物理設(shè)備。為保證設(shè)備的獨(dú)立性,在應(yīng)用程序中使用邏輯設(shè)備名來(lái)使用物理設(shè)備。設(shè)備獨(dú)立性實(shí)現(xiàn)了:1)設(shè)備分配時(shí)的靈活性:當(dāng)進(jìn)程用邏輯設(shè)備名來(lái)請(qǐng)求某類設(shè)備時(shí),系統(tǒng)可分配該類設(shè)備的任意一臺(tái)給進(jìn)程。2)易于實(shí)現(xiàn)I/O重定向:用于I/O操作的設(shè)備可以更換,而不必改動(dòng)應(yīng)用程序。2、設(shè)備獨(dú)立性軟件 為實(shí)現(xiàn)設(shè)備獨(dú)立性,在設(shè)備驅(qū)動(dòng)程序之上設(shè)置的一層軟件,稱為設(shè)
21、備獨(dú)立性軟件。設(shè)備獨(dú)立性軟件的功能:(1)執(zhí)行所有設(shè)備的公有操作: 獨(dú)占設(shè)備的分配與回收邏輯設(shè)備映射為物理設(shè)備設(shè)備保護(hù)緩沖管理差錯(cuò)控制提供獨(dú)立于設(shè)備的邏輯塊。(2)向用戶層(或文件層)軟件提供統(tǒng)一接口:即無(wú)論何種設(shè)備,它們向用戶提供的接口是相同的。3、邏輯設(shè)備名到物理設(shè)備名映射的實(shí)現(xiàn)1)邏輯設(shè)備表:每個(gè)表項(xiàng)包括邏輯設(shè)備名、物理設(shè)備名、驅(qū)動(dòng)程序入口地址,當(dāng)進(jìn)程用邏輯設(shè)備名來(lái)請(qǐng)求分配I/O設(shè)備時(shí),系統(tǒng)為它分配相應(yīng)的物理設(shè)備,并在邏輯設(shè)備表中建立一個(gè)表目。2)LUT的設(shè)置問題(1)整個(gè)系統(tǒng)設(shè)置一張LUT:不允許有相同的邏輯設(shè)備名,用于單用戶系統(tǒng)。(2)為每個(gè)用戶設(shè)置一張LUT:適用于多用戶系統(tǒng)。邏輯
22、設(shè)備名 物理設(shè)備名驅(qū)動(dòng)程序入口地址/dev/tty31024/dev/print52046LUT5.4.5 用戶層的I/O軟件 大部分的I/O軟件都在操作系統(tǒng)內(nèi)部,但仍有一小部分在用戶層,包括與用戶程序鏈接在一起的庫(kù)函數(shù),以及完全運(yùn)行于內(nèi)核之外的一些程序。5.5 設(shè)備分配5.5.1 設(shè)備分配中的數(shù)據(jù)結(jié)構(gòu)1、設(shè)備控制表DCT 每個(gè)設(shè)備有一張?jiān)O(shè)備控制表,記錄設(shè)備的類型、設(shè)備標(biāo)識(shí)符、設(shè)備狀態(tài)、設(shè)備隊(duì)列隊(duì)首指針、指向控制器表的指針、重復(fù)執(zhí)行次數(shù)等。2、控制器控制表、通道控制表和系統(tǒng)設(shè)備表(1)、控制器控制表COCT 每個(gè)控制器設(shè)置一張COCT,記錄控制器的情況。(2)、通道控制表CHCT 每個(gè)通道設(shè)置
23、一張CHCT,記錄通道的情況。(3)、系統(tǒng)設(shè)備表SDT:整個(gè)系統(tǒng)一張表,每個(gè)設(shè)備在SDT中占一個(gè)表項(xiàng)。表目1表目ISDT設(shè)備類設(shè)備標(biāo)識(shí)DCT指針驅(qū)動(dòng)程序入口設(shè)備類型設(shè)備標(biāo)識(shí)符設(shè)備狀態(tài)控制器表指針重復(fù)執(zhí)行次數(shù)設(shè)備隊(duì)列指針DCT控制器標(biāo)識(shí)符控制器狀態(tài)通道表指針控制器隊(duì)列隊(duì)首指針控制器隊(duì)列隊(duì)尾指針通道標(biāo)識(shí)符通道狀態(tài)控制器表指針通道隊(duì)列隊(duì)首指針通道隊(duì)列隊(duì)尾指針COCTCHCT5.5.2 設(shè)備分配時(shí)應(yīng)考慮的因素1、設(shè)備的固有屬性(1)獨(dú)占設(shè)備:只能分配給一個(gè)進(jìn)程使用。(2)共享設(shè)備:可同時(shí)分配給多個(gè)進(jìn)程使用。(3)虛擬設(shè)備:已屬可共享設(shè)備,也可分配給多個(gè)進(jìn)程使用。2、設(shè)備分配算法(1)先來(lái)先服務(wù):按設(shè)備
24、提出請(qǐng)求的先后順序排成設(shè)備請(qǐng)求隊(duì)列,設(shè)備分配給隊(duì)首的進(jìn)程。(2)優(yōu)先級(jí)高者優(yōu)先:按進(jìn)程優(yōu)先級(jí)從高到低組成設(shè)備請(qǐng)求隊(duì)列,設(shè)備分配給隊(duì)首進(jìn)程。3、設(shè)備分配中的安全性1)安全分配方式 每當(dāng)進(jìn)程發(fā)出I/O請(qǐng)求后,便進(jìn)入阻塞狀態(tài),直到I/O完成后被喚醒。2)不安全分配方式 進(jìn)程發(fā)出I/O請(qǐng)求后仍繼續(xù)運(yùn)行,需要時(shí)又可發(fā)出第二個(gè)I/O請(qǐng)求。5.5.3 獨(dú)占設(shè)備的分配程序1、基本的設(shè)備分配程序1)分配設(shè)備:根據(jù)物理設(shè)備名查SDT,找到設(shè)備的DCT,分配設(shè)備。2)分配控制器:查DCT,得控制器控制表COCT,分配控制器。3)分配通道:查COCT,得通道控制表CHCT,分配通道。2、設(shè)備分配程序的改進(jìn)1)增進(jìn)設(shè)備
25、的獨(dú)立性:進(jìn)程用邏輯設(shè)備名請(qǐng)求I/O時(shí),系統(tǒng)從SDT中找到第一個(gè)該類設(shè)備的DCT,如該設(shè)備忙,可查找第二個(gè)該類設(shè)備。2)考慮多通路情況:查看與設(shè)備連接的所有控制器,查看與控制器連接的所有通道。5.5.4 SPOOLING技術(shù)1、什么是SPOOLING 外圍設(shè)備同時(shí)聯(lián)機(jī)操作或稱假脫機(jī)操作。2、SPOOLING系統(tǒng)的組成(1)輸入井和輸出井:是磁盤上開辟的兩大存儲(chǔ)空間,輸入井存放從I/O設(shè)備輸入的多組數(shù)據(jù)(相當(dāng)于多臺(tái)輸入機(jī)),輸出井存放多個(gè)程序的輸出結(jié)果(相當(dāng)于多臺(tái)輸出機(jī))。(2)輸入緩沖區(qū)和輸出緩沖區(qū):在內(nèi)存開辟的兩個(gè)緩沖區(qū),I/O設(shè)備輸入緩沖區(qū)輸入井;輸出井輸出緩沖區(qū)I/O設(shè)備。(3)輸入進(jìn)程
26、Spi和輸出進(jìn)程Spo輸入進(jìn)程Spi的工作:I/O設(shè)備輸入緩沖區(qū)輸入井內(nèi)存。輸出進(jìn)程Spo的工作:內(nèi)存輸出井輸入緩沖區(qū) I/O設(shè)備。3、共享打印機(jī) 當(dāng)用戶進(jìn)程請(qǐng)求打印輸出時(shí),輸出進(jìn)程為其申請(qǐng)輸出井空間并將打印內(nèi)容送入其中,再申請(qǐng)一張用戶請(qǐng)求打印表填入用戶的打印要求,最后請(qǐng)求打印表被掛到請(qǐng)求打印隊(duì)列上,打印機(jī)按隊(duì)列順序逐個(gè)打印。請(qǐng)求打印隊(duì)列: 由若干進(jìn)程的請(qǐng)求打印表組成的隊(duì)列。輸入進(jìn)程SPi 輸出進(jìn)程SPo輸入設(shè)備輸出設(shè)備輸入緩沖區(qū)Bi輸出緩沖區(qū)Bo磁盤輸入井輸出井4、SPOOLING系統(tǒng)的特點(diǎn)(1)提高了I/O速度:從對(duì)低速I/O設(shè)備的I/O操作,演變?yōu)閷?duì)輸入井或輸出井的存取操作。(2)將獨(dú)占
27、設(shè)備改造為共享設(shè)備:輸入井和輸出井的每一個(gè)存儲(chǔ)區(qū)(共享設(shè)備),相當(dāng)于一臺(tái)輸入機(jī)或打印機(jī)(獨(dú)占設(shè)備)。(3)實(shí)現(xiàn)了虛擬設(shè)備的功能:輸入井和輸出井的每一個(gè)存儲(chǔ)區(qū),相當(dāng)于一臺(tái)虛擬設(shè)備。5.6 磁盤存儲(chǔ)器管理 5.6.1 磁盤性能簡(jiǎn)述1、數(shù)據(jù)的組織和格式 磁盤由若干個(gè)面組成,每個(gè)面有若干個(gè)磁道,每個(gè)磁道有若干個(gè)扇區(qū),每個(gè)扇區(qū)存放512字節(jié)的數(shù)據(jù)。Gap 1 IDField 0Gap 2DataField 0Gap 31774151520Synch ByteTrack #Head #Sector #CRC12112Synch ByteTrack #CRC15122磁盤扇區(qū)格式2、磁盤的類型1)固定頭磁盤
28、:每條磁道上有一個(gè)磁頭。2)移動(dòng)頭磁盤:每個(gè)盤面有一個(gè)磁頭。3、磁盤訪問時(shí)間1)尋道時(shí)間:磁頭從當(dāng)前位置移動(dòng)到指定磁道的時(shí)間。2)旋轉(zhuǎn)延時(shí)時(shí)間:指定扇區(qū)轉(zhuǎn)到磁頭下的時(shí)間。3)傳輸時(shí)間:讀寫磁盤數(shù)據(jù)的時(shí)間。5.6.2 磁盤調(diào)度1、先來(lái)先服務(wù) 根據(jù)進(jìn)程請(qǐng)求訪問磁盤的先后順序進(jìn)行調(diào)度。2、最短尋道時(shí)間優(yōu)先 離當(dāng)前磁道位置最近的磁道優(yōu)先調(diào)度。FCFS調(diào)度算法示例:磁道號(hào): 55 58 39 18 90 160 150 38 184移動(dòng)距離: 45 3 19 21 72 70 10 112 146100平均尋道長(zhǎng)度:55.3SSTF調(diào)度算法示例:磁道號(hào): 90 58 55 39 38 18 150 16
29、0 184移動(dòng)距離: 10 32 3 16 1 20 132 10 24100平均尋道長(zhǎng)度:27.53、掃描(SCAN)算法1)進(jìn)程“饑餓”現(xiàn)象 離當(dāng)前磁頭位置遠(yuǎn)的磁道,長(zhǎng)時(shí)間得不到訪問。2)SCAN算法 磁頭從里到外再?gòu)耐獾嚼锏匾苿?dòng),在移動(dòng)方向上優(yōu)先調(diào)度最近的磁道。 4、循環(huán)掃描(CSCAN)算法 規(guī)定只在從外向內(nèi)(從內(nèi)向外)移動(dòng)時(shí)依次掃描所有經(jīng)過的磁道,然后迅速返回,再次從外向內(nèi)掃描,返回時(shí)不掃描。SCAN調(diào)度算法示例:平均尋道長(zhǎng)度27.8磁道號(hào):100 150 160 184 90 58 55 39 38 18移動(dòng)距離: 50 10 24 94 32 3 16 1 20CSCAN調(diào)度算法示例:磁道號(hào):100 150 160 184 18 38 39 55 58 90移動(dòng)距離: 50 10 24 166 20 1 16 3 32平均尋道長(zhǎng)度:27.55、N-Step-SCAN和FSCAN調(diào)度算法1)N-Step-SCAN算法 將磁盤請(qǐng)求隊(duì)列分為若干長(zhǎng)度為N的子隊(duì)列,按FCFS依次處理子隊(duì)列,
溫馨提示
- 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度高端美食連鎖店股權(quán)合作協(xié)議3篇
- 專業(yè)二手裝載機(jī)買賣協(xié)議:2024年版范例版B版
- 傳染病知識(shí)技能培訓(xùn)課件
- 2025年度廠房設(shè)備租賃及配套服務(wù)合同樣本4篇
- 2025年城市排水管道清淤及廢棄物處理承包合同4篇
- 個(gè)人房產(chǎn)交易協(xié)議模板2024版A版
- 2025年度綠色節(jié)能廠房鋼結(jié)構(gòu)供貨與施工一體化合同4篇
- 專用消防施工協(xié)議條款(2024版)
- 2024物聯(lián)網(wǎng)農(nóng)業(yè)智能監(jiān)控系統(tǒng)開發(fā)合同
- 兩人合伙入股合同協(xié)議書2篇
- 二零二五年度無(wú)人駕駛車輛測(cè)試合同免責(zé)協(xié)議書
- 北京市海淀區(qū)2024-2025學(xué)年高一上學(xué)期期末考試歷史試題(含答案)
- 常用口服藥品的正確使用方法
- 2025年湖北華中科技大學(xué)招聘實(shí)驗(yàn)技術(shù)人員52名歷年高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2024年鉆探工程勞務(wù)協(xié)作協(xié)議樣式版B版
- 2023中華護(hù)理學(xué)會(huì)團(tuán)體標(biāo)準(zhǔn)-注射相關(guān)感染預(yù)防與控制
- 畢業(yè)設(shè)計(jì)小型液壓機(jī)主機(jī)結(jié)構(gòu)設(shè)計(jì)與計(jì)算
- 19XR開機(jī)運(yùn)行維護(hù)說明書
- 全國(guó)非煤礦山分布
- 臨床研究技術(shù)路線圖模板
- GB∕T 2099.1-2021 家用和類似用途插頭插座 第1部分:通用要求
評(píng)論
0/150
提交評(píng)論