




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第六章輸入輸出系統(tǒng)
6.1I/O系統(tǒng)的功能、模型和接口6.2I/O設(shè)備和設(shè)備控制器6.3中斷機(jī)構(gòu)和中斷處理程序6.4設(shè)備驅(qū)動(dòng)程序6.5與設(shè)備無(wú)關(guān)的I/O軟件6.6用戶層的I/O軟件6.7緩沖區(qū)管理6.8磁盤存儲(chǔ)器的性能和調(diào)度6.1I/O系統(tǒng)的功能、模型和接口I/O系統(tǒng)的基本功能隱藏物理設(shè)備的細(xì)節(jié)與設(shè)備的無(wú)關(guān)性提高處理機(jī)和I/O設(shè)備的利用率對(duì)I/O設(shè)備進(jìn)行控制確保對(duì)設(shè)備的正確共享錯(cuò)誤處理6.1I/O系統(tǒng)的功能、模型和接口I/O系統(tǒng)的層次結(jié)構(gòu)和模型I/O軟件的層次結(jié)構(gòu)6.1I/O系統(tǒng)的功能、模型和接口I/O系統(tǒng)中各種模塊之間的層次視圖6.1I/O系統(tǒng)的功能、模型和接口I/O系統(tǒng)接口塊設(shè)備接口流設(shè)備(字符設(shè)備)接口網(wǎng)絡(luò)通信接口6.2I/O設(shè)備和設(shè)備控制器I/O設(shè)備組成機(jī)械部件即設(shè)備本身(物理裝置)執(zhí)行I/O操作電子部件即設(shè)備控制器或叫適配器執(zhí)行I/O控制在小型和微型機(jī)中,它常采用印刷電路卡插入計(jì)算機(jī)主板上的總線插槽通過(guò)若干接口寄存器或接口緩沖區(qū)與CPU通信6.2I/O設(shè)備和設(shè)備控制器I/O設(shè)備可從不同角度對(duì)設(shè)備進(jìn)行分類按使用特性分類存儲(chǔ)設(shè)備輸入輸出設(shè)備按傳輸速率分類低速設(shè)備:每秒幾個(gè)字節(jié)到數(shù)百個(gè)字節(jié),鍵盤中速設(shè)備:每秒數(shù)千個(gè)字節(jié)到數(shù)十千字節(jié),打印機(jī)高速設(shè)備:每秒數(shù)百千個(gè)字節(jié)到數(shù)兆個(gè)字節(jié),網(wǎng)卡、磁盤6.2I/O設(shè)備和設(shè)備控制器常用設(shè)備、網(wǎng)絡(luò)以及總線的數(shù)據(jù)率6.2I/O設(shè)備和設(shè)備控制器按信息交換的單位分類塊設(shè)備(BlockDevice):設(shè)備一次操作的數(shù)據(jù)傳輸單位是塊常見(jiàn)設(shè)備:磁盤、磁帶等特征:傳輸速率高;可尋址;DMA方式字符設(shè)備(CharacterDevice):設(shè)備一次操作的數(shù)據(jù)傳輸單位是字符常見(jiàn)設(shè)備:鍵盤、終端、打印機(jī)和鼠標(biāo)等特征:傳輸速率低;不可尋址;中斷驅(qū)動(dòng)方式6.2I/O設(shè)備和設(shè)備控制器按設(shè)備的固有屬性分類獨(dú)占設(shè)備:在一段時(shí)間內(nèi)只能由一個(gè)進(jìn)程(用戶)使用的設(shè)備,屬于臨界資源,如打印機(jī)、磁帶機(jī)等共享設(shè)備:在一段時(shí)間內(nèi)可由多個(gè)進(jìn)程同時(shí)使用的設(shè)備,如磁盤虛擬設(shè)備:通過(guò)虛擬技術(shù)將一臺(tái)獨(dú)占設(shè)備改造為共享設(shè)備,供若干進(jìn)程同時(shí)使用6.2I/O設(shè)備和設(shè)備控制器設(shè)備控制器設(shè)備控制器分為兩類控制字符設(shè)備的控制器控制塊設(shè)備的控制器6.2I/O設(shè)備和設(shè)備控制器設(shè)備控制器的功能接收和識(shí)別命令(控制寄存器)數(shù)據(jù)交換(數(shù)據(jù)寄存器)設(shè)備狀態(tài)的了解和報(bào)告(狀態(tài)寄存器)地址識(shí)別(地址譯碼器)數(shù)據(jù)緩沖差錯(cuò)控制操作系統(tǒng)一般只與設(shè)備控制器打交道6.2I/O設(shè)備和設(shè)備控制器設(shè)備控制器的組成設(shè)備控制器是CPU和I/O設(shè)備之間的接口,它接收從CPU發(fā)來(lái)的命令,并去控制設(shè)備工作設(shè)備控制器和處理機(jī)的接口數(shù)據(jù)線:與數(shù)據(jù)寄存器和控制/狀態(tài)寄存器相連地址線控制線6.2I/O設(shè)備和設(shè)備控制器設(shè)備控制器和設(shè)備的接口數(shù)據(jù)信號(hào)控制信號(hào)狀態(tài)信號(hào)I/O邏輯CPU啟動(dòng)一個(gè)設(shè)備時(shí),將啟動(dòng)命令和地址送給控制器控制器的I/O邏輯對(duì)收到的命令進(jìn)行譯碼再根據(jù)譯出的命令對(duì)所選的設(shè)備進(jìn)行控制(在一個(gè)設(shè)備控制器中可以有一個(gè)或多個(gè)設(shè)備接口,一個(gè)接口連一臺(tái)設(shè)備,控制器中的I/O邏輯根據(jù)處理機(jī)發(fā)來(lái)的地址信號(hào),去選擇其中的一個(gè)設(shè)備接口)6.2I/O設(shè)備和設(shè)備控制器6.2I/O設(shè)備和設(shè)備控制器內(nèi)存映像I/O接口電路中有多個(gè)寄存器,一個(gè)寄存器有唯一的一個(gè)地址,每個(gè)地址為I/O端口,該地址稱為I/O端口地址I/O指令形式與I/O地址相互關(guān)聯(lián),主要有兩種形式I/O獨(dú)立編址(I/O專用指令)內(nèi)存映像編址(內(nèi)存映像I/O模式)6.2I/O設(shè)備和設(shè)備控制器I/O獨(dú)立編址(I/O專用指令)分配給端口的地址空間是完全獨(dú)立的,與內(nèi)存的地址空間沒(méi)有關(guān)系主機(jī)使用專門的I/O指令對(duì)端口進(jìn)行操作優(yōu)缺點(diǎn)外部設(shè)備不占用內(nèi)存的地址空間程序設(shè)計(jì)時(shí),易于區(qū)分是對(duì)內(nèi)存操作還是對(duì)I/O端口操作對(duì)I/O端口操作的指令類型少,操作不靈活例子:8086/8088,分配給I/O端口的地址空間64K,只能用IN和OUT指令對(duì)其進(jìn)行讀寫(xiě)操作6.2I/O設(shè)備和設(shè)備控制器內(nèi)存映像I/O分配給系統(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端口操作不需要專門的I/O指令I(lǐng)/O端口可占有較大的地址空間占用內(nèi)存空間6.2I/O設(shè)備和設(shè)備控制器I/O通道(I/OChannel)I/O通道設(shè)備的引入為了把CPU從繁雜的I/O任務(wù)中解脫出來(lái),同時(shí)為了提高CPU與設(shè)備、設(shè)備與設(shè)備之間的并行工作能力通道的定義I/O通道是一種特殊的處理機(jī),它具有執(zhí)行I/O指令的能力,并通過(guò)執(zhí)行通道程序來(lái)控制I/O操作6.2I/O設(shè)備和設(shè)備控制器通道特點(diǎn)指令類型單一通道沒(méi)有自己的內(nèi)存,通道程序在主機(jī)的內(nèi)存中,即通道與CPU共享內(nèi)存通道類型字節(jié)多路通道數(shù)組選擇通道數(shù)組多路通道6.2I/O設(shè)備和設(shè)備控制器字節(jié)多路通道通道中通常含有許多非分配型子通道,數(shù)量從幾十個(gè)到數(shù)百個(gè),每一個(gè)子通道連接一臺(tái)I/O設(shè)備這些子通道按時(shí)間片輪轉(zhuǎn)方式共享主通道主要連接以字節(jié)為單位的低速設(shè)備,如打印機(jī),終端以字節(jié)為單位傳輸信息,可以分時(shí)地執(zhí)行多個(gè)通道程序。當(dāng)一個(gè)通道程序控制某臺(tái)設(shè)備傳送一個(gè)字節(jié)后,通道硬件就控制轉(zhuǎn)去執(zhí)行另一個(gè)通道程序,控制另一臺(tái)設(shè)備傳送信息6.2I/O設(shè)備和設(shè)備控制器字節(jié)多路通道的工作原理6.2I/O設(shè)備和設(shè)備控制器數(shù)組選擇通道以成組方式工作,每次傳送一批數(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)的通道程序。這種獨(dú)占性又使得通道利用率很低主要連接磁盤,磁帶等高速I/O設(shè)備選擇通道6.2I/O設(shè)備和設(shè)備控制器數(shù)組多路通道結(jié)合了選擇通道傳送速度高和字節(jié)多路通道能進(jìn)行分時(shí)并行操作的優(yōu)點(diǎn)先為一臺(tái)設(shè)備執(zhí)行一條通道指令,然后自動(dòng)轉(zhuǎn)接,為另一臺(tái)設(shè)備執(zhí)行一條通道指令。它含有多個(gè)非分配型的子通道,既有很高的數(shù)據(jù)傳輸率,又能獲得令人滿意的通道利用率實(shí)際上是對(duì)通道程序采用多道程序設(shè)計(jì)的硬件實(shí)現(xiàn)主要連接高速設(shè)備6.2I/O設(shè)備和設(shè)備控制器“瓶頸”問(wèn)題通道執(zhí)行通道程序,向控制器發(fā)出命令,并具有向CPU發(fā)中斷信號(hào)的功能。一旦CPU發(fā)出指令,啟動(dòng)通道,則通道獨(dú)立于CPU工作但是,由于通道價(jià)格貴,通道數(shù)量少,往往使之成為I/O的“瓶頸”6.2I/O設(shè)備和設(shè)備控制器單通路I/O系統(tǒng)6.2I/O設(shè)備和設(shè)備控制器多通路I/O系統(tǒng)解決“瓶頸”問(wèn)題提高了控制器效率提高可靠性提高并行度6.3中斷機(jī)構(gòu)和中斷處理程序中斷簡(jiǎn)介中斷CPU對(duì)系統(tǒng)內(nèi)外發(fā)生的異步事件的響應(yīng)過(guò)程異步事件是指無(wú)一定時(shí)序關(guān)系隨機(jī)發(fā)生的事件引入中斷解決主機(jī)與I/O設(shè)備并行工作的問(wèn)題提高系統(tǒng)可靠性實(shí)現(xiàn)多機(jī)聯(lián)系方便應(yīng)用程序,實(shí)現(xiàn)實(shí)時(shí)控制6.3中斷機(jī)構(gòu)和中斷處理程序分類中斷(外中斷)陷入(內(nèi)中斷)I/O中斷時(shí)鐘中斷系統(tǒng)調(diào)用缺頁(yè)異常斷點(diǎn)指令其他程序性異常(如算術(shù)溢出等)廣義中斷中斷(狹義)與陷入的區(qū)別——信號(hào)的來(lái)源不同——中斷:與正執(zhí)行指令無(wú)關(guān),可以屏蔽陷入:與正執(zhí)行指令有關(guān),不可屏蔽6.3中斷機(jī)構(gòu)和中斷處理程序中斷向量表和中斷優(yōu)先級(jí)中斷向量表每個(gè)中斷有一個(gè)唯一的中斷向量號(hào)(通常為中斷類型號(hào))中斷向量號(hào)通常按照從小到大的順序存放在中斷向量表中中斷向量表一般存放在主存儲(chǔ)器的固定區(qū)域中每個(gè)表項(xiàng)是一個(gè)中斷向量,存放了中斷向量號(hào)和中斷處理程序的入口地址中斷優(yōu)先級(jí)6.3中斷機(jī)構(gòu)和中斷處理程序?qū)Χ嘀袛嘣吹奶幚矸绞街袛嗥帘翁幚硪粋€(gè)中斷時(shí)屏蔽其它所有中斷,對(duì)任何新中斷置之不理,直至本次中斷處理完,再檢測(cè)有無(wú)新中斷中斷嵌套處理一個(gè)中斷時(shí)可以繼續(xù)響應(yīng)其它中斷6.3中斷機(jī)構(gòu)和中斷處理程序中斷處理過(guò)程中斷請(qǐng)求中斷判優(yōu)中斷響應(yīng)中斷服務(wù)中斷返回中斷硬件中斷處理程序中斷源(中斷事件):引起中斷發(fā)生的事件中斷處理程序:處理中斷的程序代碼,也稱中斷例程6.3中斷機(jī)構(gòu)和中斷處理程序6.3中斷機(jī)構(gòu)和中斷處理程序中斷處理程序中斷響應(yīng)CPU在每條指令執(zhí)行周期的最后時(shí)刻掃描中斷寄存器,詢問(wèn)是否有中斷信號(hào)開(kāi)始取下一條指令執(zhí)行指令檢查指令處理中斷停止取周期執(zhí)行周期中斷周期不允許中斷允許中斷6.3中斷機(jī)構(gòu)和中斷處理程序保護(hù)被中斷進(jìn)程的CPU現(xiàn)場(chǎng)轉(zhuǎn)讓相應(yīng)的中斷處理程序中斷處理恢復(fù)CPU的現(xiàn)場(chǎng)并退出中斷6.3中斷機(jī)構(gòu)和中斷處理程序6.4設(shè)備驅(qū)動(dòng)程序又稱設(shè)備處理程序是I/O進(jìn)程與設(shè)備控制器之間的通信程序6.4設(shè)備驅(qū)動(dòng)程序設(shè)備驅(qū)動(dòng)程序概述設(shè)備驅(qū)動(dòng)程序的功能接收由設(shè)備獨(dú)立性軟件發(fā)來(lái)的命令和參數(shù),并將命令中的抽象要求轉(zhuǎn)換為與設(shè)備相關(guān)的低層操作序列檢查用戶I/O請(qǐng)求的合法性,了解I/O設(shè)備的狀態(tài),傳遞有關(guān)參數(shù),設(shè)置設(shè)備的工作方式發(fā)出I/O命令及時(shí)響應(yīng)由控制器或通道發(fā)來(lái)的中斷請(qǐng)求,根據(jù)中斷類型,調(diào)用相應(yīng)的中斷處理程序進(jìn)行處理對(duì)于設(shè)置有通道的計(jì)算機(jī)系統(tǒng),驅(qū)動(dòng)程序還應(yīng)能夠根據(jù)用戶的I/O請(qǐng)求,自動(dòng)地構(gòu)成通道程序6.4設(shè)備驅(qū)動(dòng)程序設(shè)備驅(qū)動(dòng)程序的特點(diǎn)驅(qū)動(dòng)程序是實(shí)現(xiàn)在與設(shè)備無(wú)關(guān)的軟件和設(shè)備控制器之間通信和轉(zhuǎn)換的程序驅(qū)動(dòng)程序與設(shè)備控制器和I/O設(shè)備的硬件特性密切相關(guān)驅(qū)動(dòng)程序與I/O設(shè)備所采用的I/O控制方式密切相關(guān)驅(qū)動(dòng)程序的一部分必須用匯編語(yǔ)言書(shū)寫(xiě),目前有很多驅(qū)動(dòng)程序的基本部分已固化在ROM中驅(qū)動(dòng)程序應(yīng)允許可重入6.4設(shè)備驅(qū)動(dòng)程序設(shè)備處理方式為每一類設(shè)備設(shè)置一個(gè)進(jìn)程,專門用于執(zhí)行這類設(shè)備的I/O操作在整個(gè)系統(tǒng)中設(shè)置一個(gè)I/O進(jìn)程,專門用于執(zhí)行系統(tǒng)中所有各類設(shè)備的I/O操作。也可以設(shè)置一個(gè)輸入進(jìn)程和一個(gè)輸出進(jìn)程,分別處理系統(tǒng)中所有各類設(shè)備的輸入或輸出操作不設(shè)置專門的設(shè)備處理進(jìn)程,而只為各類設(shè)備設(shè)置相應(yīng)的設(shè)備處理程序(模塊),供用戶或系統(tǒng)進(jìn)程調(diào)用6.4設(shè)備驅(qū)動(dòng)程序設(shè)備驅(qū)動(dòng)程序的處理過(guò)程將抽象要求轉(zhuǎn)換為具體要求對(duì)服務(wù)請(qǐng)求進(jìn)行校驗(yàn)檢查設(shè)備的狀態(tài)傳送必要的參數(shù)啟動(dòng)I/O設(shè)備6.4設(shè)備驅(qū)動(dòng)程序?qū)/O設(shè)備的控制方式分為四類使用輪詢的可編程I/O方式(程序I/O方式)使用中斷的可編程I/O方式(中斷驅(qū)動(dòng)方式)直接存儲(chǔ)器訪問(wèn)方式(DMA方式)I/O通道控制方式6.4設(shè)備驅(qū)動(dòng)程序使用輪詢的可編程I/O方式向I/O控制器發(fā)讀命令讀I/O控制器的狀態(tài)從I/O控制器中讀入字向存儲(chǔ)器中寫(xiě)字檢查狀態(tài)傳送完?CPU出錯(cuò)完成未就緒下條指令未完I/O→CPUCPU→內(nèi)存I/O控制器置狀態(tài)寄存器busy=1按規(guī)定指令控制設(shè)備進(jìn)行I/O設(shè)備清e(cuò)rror位表示I/O成功;清busy位表示I/O結(jié)束6.4設(shè)備驅(qū)動(dòng)程序缺點(diǎn)CPU將大量的時(shí)間花費(fèi)在循環(huán)等待上,CPU效率極差外設(shè)不能合理利用整個(gè)系統(tǒng)的效率很低現(xiàn)在已較少使用這種方式作為I/O的數(shù)據(jù)傳輸控制6.4設(shè)備驅(qū)動(dòng)程序使用中斷的可編程I/O方式向I/O控制器發(fā)讀命令讀I/O控制器的狀態(tài)從I/O控制器中讀入字向存儲(chǔ)器中寫(xiě)字檢查狀態(tài)傳送完?CPU出錯(cuò)完成下條指令未完I/O→CPUCPU→內(nèi)存I/O控制器置狀態(tài)寄存器busy=1按規(guī)定指令控制設(shè)備進(jìn)行I/O設(shè)備清e(cuò)rror位表示I/O成功;清busy位表示I/O結(jié)束中斷CPU做其它事6.4設(shè)備驅(qū)動(dòng)程序6.4設(shè)備驅(qū)動(dòng)程序優(yōu)點(diǎn)在設(shè)備進(jìn)行數(shù)據(jù)傳輸時(shí),CPU不必等待,可以繼續(xù)執(zhí)行其它進(jìn)程缺點(diǎn)CPU以字(節(jié))為單位進(jìn)行干預(yù),只適于數(shù)據(jù)傳輸率較低的設(shè)備6.4設(shè)備驅(qū)動(dòng)程序直接存儲(chǔ)器訪問(wèn)方式(DMA方式)DMA方式的引入數(shù)據(jù)傳輸?shù)幕締挝皇菙?shù)據(jù)塊所傳送的數(shù)據(jù)是由設(shè)備直接送入內(nèi)存,或者相反僅在傳送一個(gè)或多個(gè)數(shù)據(jù)塊的開(kāi)始和結(jié)束時(shí),才需要CPU干預(yù)6.4設(shè)備驅(qū)動(dòng)程序DMA控制器的組成主機(jī)與DMA控制器的接口DMA控制器與塊設(shè)備的接口I/O控制邏輯DMA控制器中設(shè)置四類寄存器命令/狀態(tài)寄存器(CR)內(nèi)存地址寄存器(MAR)數(shù)據(jù)寄存器(DR)數(shù)據(jù)計(jì)數(shù)器(DC)6.4設(shè)備驅(qū)動(dòng)程序6.4設(shè)備驅(qū)動(dòng)程序DMA工作過(guò)程竊取總線控制權(quán)6.4設(shè)備驅(qū)動(dòng)程序I/O通道控制方式I/O通道控制方式的引入將DMA方式中對(duì)一個(gè)數(shù)據(jù)塊的讀(寫(xiě))為單位的干預(yù),減少為對(duì)一組數(shù)據(jù)塊的讀(寫(xiě))及有關(guān)的控制和管理為單位的干預(yù)實(shí)現(xiàn)CPU、通道和I/O設(shè)備三者的并行工作,從而更有效地提高了整個(gè)系統(tǒng)的資源利用率6.4設(shè)備驅(qū)動(dòng)程序通道程序通道程序由若干通道指令組成,每條通道指令規(guī)定了設(shè)備的一種操作,通道程序的執(zhí)行過(guò)程就是I/O操作的處理過(guò)程每條通道指令包含以下信息操作碼:規(guī)定指令執(zhí)行的操作。內(nèi)存地址:數(shù)據(jù)在內(nèi)存中的首地址。計(jì)數(shù):本條指令要讀或?qū)懙淖止?jié)數(shù)。通道程序結(jié)束位:表示通道程序是否結(jié)束。1,結(jié)束。記錄結(jié)束標(biāo)志:0,本條指令和下一條指令所處理的數(shù)據(jù)同屬一個(gè)記錄;1,這是處理某記錄的最后一條指令6.4設(shè)備驅(qū)動(dòng)程序通道使用的主要寄存器數(shù)據(jù)字寄存器:用于存放傳輸?shù)臄?shù)據(jù)通道控制字寄存器(CCW):用于存放當(dāng)前正在執(zhí)行的通道命令通道地址字寄存器(CAW):用于存放通道命令的地址,在通道程序執(zhí)行前,要把通道程序的首地址存于此通道狀態(tài)字寄存器(CSW):其中包括通道的狀態(tài)、設(shè)備狀態(tài)的信息,當(dāng)I/O操作結(jié)束時(shí)送入主存固定單元,以中斷的方式告訴CPU有關(guān)通道、控制器和設(shè)備的有關(guān)信息6.4設(shè)備驅(qū)動(dòng)程序通道工作過(guò)程CPU執(zhí)行用戶進(jìn)程,當(dāng)遇到I/O請(qǐng)求時(shí),由操作系統(tǒng)生成相應(yīng)的通道程序放入內(nèi)存,之后執(zhí)行“啟動(dòng)I/O”指令,啟動(dòng)通道工作通道接收到“啟動(dòng)I/O”指令后,按CAW取出指令,同時(shí)向CPU發(fā)回答信號(hào),使CPU可繼續(xù)執(zhí)行其它程序;而通道則開(kāi)始執(zhí)行通道程序,控制設(shè)備完成傳輸工作。此時(shí),通道與CPU并行工作當(dāng)通道傳輸完成時(shí),向CPU發(fā)I/O中斷,并且通道停止工作CPU接收中斷信號(hào),根據(jù)通道的狀態(tài)信息,決定下一步做什么進(jìn)程i/進(jìn)程k/其他就緒進(jìn)程執(zhí)行規(guī)定的操作用戶程序中央處理器操作系統(tǒng)程序通道設(shè)備控制器和設(shè)備進(jìn)程i…
系統(tǒng)調(diào)用(I/O請(qǐng)求)…保護(hù)進(jìn)程i的現(xiàn)場(chǎng)組織通道程序存CAW執(zhí)行“啟動(dòng)I/O”指令檢查條件碼啟動(dòng)成功進(jìn)程i阻塞重新調(diào)度,進(jìn)程k運(yùn)行進(jìn)程k被中斷,保護(hù)現(xiàn)場(chǎng)分析中斷事件處理I/O中斷喚醒進(jìn)程i重新調(diào)度判斷狀態(tài)形成條件碼執(zhí)行通道程序;控制設(shè)備操作;執(zhí)行情況記錄在CSW中。出現(xiàn)中斷事件;CSW送主存固定單元;通道號(hào)、設(shè)備號(hào)送特定寄存器。進(jìn)程k…6.5與設(shè)備無(wú)關(guān)的I/O軟件與設(shè)備無(wú)關(guān)軟件的基本概念也稱設(shè)備獨(dú)立性(DeviceIndependence)基本含義:應(yīng)用程序獨(dú)立于具體使用的物理設(shè)備做法應(yīng)用程序中使用邏輯設(shè)備名稱來(lái)請(qǐng)求使用設(shè)備系統(tǒng)在實(shí)際執(zhí)行時(shí),必須使用物理設(shè)備名稱好處設(shè)備分配時(shí)的靈活性易于實(shí)現(xiàn)I/O重定向6.5與設(shè)備無(wú)關(guān)的I/O軟件與設(shè)備無(wú)關(guān)的軟件的功能設(shè)備驅(qū)動(dòng)程序的統(tǒng)一接口緩沖管理差錯(cuò)控制對(duì)獨(dú)立設(shè)備的分配和回收獨(dú)立于設(shè)備的邏輯數(shù)據(jù)塊實(shí)現(xiàn)設(shè)備的符號(hào)名到設(shè)備驅(qū)動(dòng)程序的映射6.5與設(shè)備無(wú)關(guān)的I/O軟件
(a)沒(méi)有標(biāo)準(zhǔn)的(b)具有標(biāo)準(zhǔn)的驅(qū)動(dòng)程序接口驅(qū)動(dòng)程序的接口6.5與設(shè)備無(wú)關(guān)的I/O軟件設(shè)備分配設(shè)備分配中的數(shù)據(jù)結(jié)構(gòu)系統(tǒng)設(shè)備表SDT(SystemDeviceTable)整個(gè)系統(tǒng)中只有一張每個(gè)設(shè)備占一個(gè)表項(xiàng)6.5與設(shè)備無(wú)關(guān)的I/O軟件設(shè)備控制表DCT(DeviceControlTable)系統(tǒng)中的每臺(tái)設(shè)備都有一張?jiān)O(shè)備控制表DCT充分體現(xiàn)出設(shè)備的各方面特征6.5與設(shè)備無(wú)關(guān)的I/O軟件控制器控制表(COCT)每個(gè)控制器一張通道控制表(CHCT)每個(gè)通道一張6.5與設(shè)備無(wú)關(guān)的I/O軟件設(shè)備分配時(shí)應(yīng)考慮的因素設(shè)備的固有屬性獨(dú)占設(shè)備采用獨(dú)享分配策略,即將設(shè)備分配給某進(jìn)程后,便由該進(jìn)程獨(dú)占,直至該進(jìn)程完成或釋放該設(shè)備。缺點(diǎn):設(shè)備得不到充分利用,還可能引起死鎖。共享設(shè)備同時(shí)分配給多個(gè)進(jìn)程使用,須注意對(duì)這些進(jìn)程訪問(wèn)該設(shè)備的先后次序進(jìn)行合理的調(diào)度。虛擬設(shè)備同共享設(shè)備6.5與設(shè)備無(wú)關(guān)的I/O軟件設(shè)備分配算法先來(lái)先服務(wù)優(yōu)先級(jí)高者優(yōu)先6.5與設(shè)備無(wú)關(guān)的I/O軟件設(shè)備分配時(shí)的安全性安全分配方式每當(dāng)進(jìn)程發(fā)出I/O請(qǐng)求后,便進(jìn)入阻塞狀態(tài),直到其I/O操作完成時(shí)才被喚醒。缺點(diǎn):進(jìn)程進(jìn)展緩慢,CPU與I/O設(shè)備串行工作不安全分配方式進(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)。優(yōu)點(diǎn):進(jìn)程可同時(shí)操作多個(gè)設(shè)備,進(jìn)程推進(jìn)迅速。缺點(diǎn):分配不安全,可能造成死鎖。設(shè)備獨(dú)立性6.5與設(shè)備無(wú)關(guān)的I/O軟件獨(dú)占設(shè)備的分配程序基本的分配程序分配設(shè)備分配控制器分配通道設(shè)備分配程序的改進(jìn)增加設(shè)備的獨(dú)立性考慮多通路情況6.5與設(shè)備無(wú)關(guān)的I/O軟件邏輯設(shè)備名到物理設(shè)備名映射的實(shí)現(xiàn)邏輯設(shè)備表(LUT,LogicalUnitTable)6.5與設(shè)備無(wú)關(guān)的I/O軟件LUT的設(shè)置問(wèn)題整個(gè)系統(tǒng)中只設(shè)置一張LUT要求所有用戶都不使用相同的邏輯設(shè)備名主要用于單用戶系統(tǒng)中為每個(gè)用戶設(shè)置一張LUT每當(dāng)用戶登錄時(shí),便為該用戶建立一個(gè)進(jìn)程,同時(shí)也為之建立一張LUT,并將該表放入進(jìn)程的PCB中6.6用戶層的I/O軟件大部分I/O軟件都包含在操作系統(tǒng)中但仍有一小部分在用戶空間,包括與用戶程序連接在一起的庫(kù)函數(shù)完全運(yùn)行于內(nèi)核之外的SPOOLing系統(tǒng)6.6用戶層的I/O軟件系統(tǒng)調(diào)用與庫(kù)函數(shù)系統(tǒng)調(diào)用庫(kù)函數(shù)C語(yǔ)言、UNIX系統(tǒng)的庫(kù)函數(shù)Win32API用戶態(tài)內(nèi)核態(tài)6.6用戶層的I/O軟件SPOOLing(假脫機(jī))系統(tǒng)SPOOLing技術(shù)SPOOLing,SimultaneousPeripheralOperationOnLine,也稱為虛擬設(shè)備技術(shù)多道程序設(shè)計(jì)系統(tǒng)中處理獨(dú)占設(shè)備的一種方法利用假脫機(jī)技術(shù)可把獨(dú)占設(shè)備轉(zhuǎn)變成具有共享特征的虛擬設(shè)備,從而提高設(shè)備利用率6.6用戶層的I/O軟件SPOOLing的組成輸入井和輸出井輸入緩沖區(qū)和輸出緩沖區(qū)輸入進(jìn)程和輸出進(jìn)程井管理程序6.6用戶層的I/O軟件6.6用戶層的I/O軟件6.6用戶層的I/O軟件SPOOLing系統(tǒng)的特點(diǎn)提高了I/O的速度將獨(dú)占設(shè)備改造為共享設(shè)備實(shí)現(xiàn)了虛擬設(shè)備功能6.6用戶層的I/O軟件假脫機(jī)打印機(jī)系統(tǒng)用戶進(jìn)程的打印請(qǐng)求傳遞給SPOOLing系統(tǒng),而不是真正將打印機(jī)分配給用戶進(jìn)程SPOOLing系統(tǒng)同意為它打印輸出,但并不真正立即把打印機(jī)分配給該用戶進(jìn)程,而只為它做兩件事:由輸出進(jìn)程在輸出井中為之申請(qǐng)一個(gè)空閑磁盤塊區(qū),并將要打印的數(shù)據(jù)送入其中;輸出進(jìn)程再為用戶進(jìn)程申請(qǐng)一張空白的用戶請(qǐng)求打印表,并將用戶的打印要求填入其中,再將該表掛到請(qǐng)求打印隊(duì)列上。打印機(jī)空閑時(shí),輸出進(jìn)程從請(qǐng)求打印隊(duì)列上取出一個(gè)請(qǐng)求打印表,按其中的要求把數(shù)據(jù)由打印機(jī)輸出6.6用戶層的I/O軟件6.6用戶層的I/O軟件舉例WindowsNT中,應(yīng)用程序直接向針式打印機(jī)輸出需要15分鐘,而向打印作業(yè)隊(duì)列輸出只需要1分鐘,此后用戶可以關(guān)閉應(yīng)用程序而轉(zhuǎn)入其他工作,在以后適當(dāng)?shù)臅r(shí)候由打印機(jī)管理器完成15分鐘的打印輸出而無(wú)需用戶干預(yù)。6.6用戶層的I/O軟件守護(hù)進(jìn)程為打印機(jī)建立守護(hù)進(jìn)程取消原假脫機(jī)管理進(jìn)程6.3~6.6小結(jié)I/O系統(tǒng)的層次和每一層的主要功能6.3~6.6小結(jié)例,讀操作用戶進(jìn)程對(duì)已打開(kāi)文件的文件描述符執(zhí)行讀庫(kù)函數(shù)(系統(tǒng)調(diào)用);設(shè)備獨(dú)立性軟件檢查參數(shù)是否正確,若正確,檢查高速緩存中有無(wú)要讀的數(shù)據(jù)塊。若有,從緩沖區(qū)直接讀至用戶區(qū),完成I/O請(qǐng)求;若沒(méi)有,設(shè)備獨(dú)立性軟件將設(shè)備的邏輯名轉(zhuǎn)換成物理名,檢查對(duì)設(shè)備操作的合法性,將I/O請(qǐng)求排隊(duì),阻塞用戶進(jìn)程等待I/O操作完成;內(nèi)核啟動(dòng)設(shè)備驅(qū)動(dòng)程序,分配存放讀出塊的緩沖區(qū),準(zhǔn)備接收數(shù)據(jù),并向設(shè)備控制寄存器發(fā)送啟動(dòng)命令,啟動(dòng)I/O;設(shè)備控制器操作設(shè)備,執(zhí)行數(shù)據(jù)傳輸;數(shù)據(jù)傳輸完成時(shí),設(shè)備產(chǎn)生I/O中斷;6.3~6.6小結(jié)CPU響應(yīng)中斷,轉(zhuǎn)入磁盤中斷處理程序。中斷處理程序檢查中斷產(chǎn)生的原因和設(shè)備的執(zhí)行狀態(tài),若設(shè)備有錯(cuò),向設(shè)備驅(qū)動(dòng)程序發(fā)信號(hào),檢查能否重復(fù)執(zhí)行,如果允許,重發(fā)啟動(dòng)設(shè)備的命令,再次傳輸;否則,向上層軟件報(bào)告錯(cuò)誤。若I/O正確完成,將數(shù)據(jù)傳輸?shù)街付ǖ挠脩暨M(jìn)程空間,喚醒阻塞進(jìn)程,從而結(jié)束此次I/O請(qǐng)求;當(dāng)用戶進(jìn)程被再次調(diào)動(dòng)執(zhí)行時(shí),從I/O系統(tǒng)調(diào)用的斷點(diǎn)處繼續(xù)運(yùn)行。6.7
緩沖區(qū)管理緩沖的概念緩沖的引入緩和CPU與I/O設(shè)備間速度不匹配的矛盾減少對(duì)CPU的中斷頻率,放寬對(duì)中斷響應(yīng)時(shí)間的限制解決數(shù)據(jù)粒度不匹配的問(wèn)題提高CPU和I/O設(shè)備之間的并行性6.7緩沖區(qū)管理緩沖技術(shù)的實(shí)現(xiàn)原理當(dāng)某個(gè)進(jìn)程進(jìn)行數(shù)據(jù)輸出操作時(shí),先將數(shù)據(jù)送入緩沖區(qū),當(dāng)緩沖區(qū)滿時(shí)再將緩沖區(qū)的內(nèi)容送到輸出設(shè)備上當(dāng)一個(gè)進(jìn)程完成輸入操作時(shí),先將輸入設(shè)備上的數(shù)據(jù)送入緩沖區(qū),當(dāng)緩沖區(qū)滿時(shí),再由CPU將數(shù)據(jù)取走在緩沖管理中必須建立緩沖區(qū),有兩種設(shè)定方式采用硬件方法實(shí)現(xiàn)緩沖采用軟件緩沖的方式,即從主存空間中劃定出一個(gè)特殊的內(nèi)存區(qū)域作為緩沖區(qū)6.7緩沖區(qū)管理常用的緩沖技術(shù)有四種單緩沖雙緩沖環(huán)形緩沖緩沖池6.7緩沖區(qū)管理單緩沖當(dāng)用戶進(jìn)程發(fā)出I/O請(qǐng)求時(shí),操作系統(tǒng)在主存的系統(tǒng)空間為之分配一個(gè)緩沖區(qū)可以實(shí)現(xiàn)預(yù)讀和滯后寫(xiě)6.7緩沖區(qū)管理6.7緩沖區(qū)管理雙緩沖首先輸入將數(shù)據(jù)送入BUF1,裝滿后,轉(zhuǎn)向BUF2可以實(shí)現(xiàn)用戶數(shù)據(jù)區(qū)—緩沖區(qū)之間交換數(shù)據(jù)和緩沖區(qū)—外設(shè)之間交換數(shù)據(jù)的并行6.7緩沖區(qū)管理6.7緩沖區(qū)管理環(huán)形緩沖要真正實(shí)現(xiàn)CPU與外設(shè)的并行操作,雙緩沖技術(shù)還不能達(dá)到要求,在計(jì)算機(jī)中都采用多緩沖或緩沖池結(jié)構(gòu)為了便于管理,一般將多緩沖組織成循環(huán)緩沖形式,每個(gè)緩沖區(qū)的大小相同6.7緩沖區(qū)管理組成(三類緩沖區(qū))空緩沖區(qū)R用于存放數(shù)據(jù)指針:Nexti已裝滿數(shù)據(jù)的緩沖區(qū)G數(shù)據(jù)供進(jìn)程使用指針:Nextg現(xiàn)行工作緩沖區(qū)C當(dāng)前進(jìn)程使用的緩沖區(qū)指針:CurrentRRCGGGG1234567NextiNextgCurrent6.7緩沖區(qū)管理緩沖區(qū)的使用Getbuf過(guò)程計(jì)算進(jìn)程要取數(shù)據(jù):將指針Nextg所指的緩沖區(qū)提供給進(jìn)程使用,用Current指針指向該緩沖區(qū)的第一個(gè)單元,同時(shí)將Nextg移向下一個(gè)G緩沖區(qū)。輸入進(jìn)程要使用空緩沖區(qū)裝數(shù)據(jù):將指針Nexti所指的緩沖區(qū)提供給輸入進(jìn)程使用,同時(shí)將Nexti移向下一個(gè)R緩沖區(qū)。6.7緩沖區(qū)管理Releasebuf過(guò)程當(dāng)計(jì)算進(jìn)程把C緩沖區(qū)中的數(shù)據(jù)提取完時(shí),調(diào)用該過(guò)程釋放該緩沖區(qū):將該緩沖區(qū)由當(dāng)前工作緩沖區(qū)C改為空緩沖區(qū)R。當(dāng)輸入進(jìn)程將緩沖區(qū)裝滿時(shí):將該緩沖區(qū)釋放,并改為G緩沖區(qū)。6.7緩沖區(qū)管理進(jìn)程同步輸入進(jìn)程和計(jì)算進(jìn)程可并發(fā)執(zhí)行,指針Nexti和指針Nextg將不斷地沿順時(shí)針?lè)较蛞苿?dòng)可能出現(xiàn)兩種情況Nexti指針追上Nextg指針(輸入速度>處理速度):無(wú)空緩沖區(qū),輸入進(jìn)程阻塞,稱為系統(tǒng)受計(jì)算限制。Nextg指針追上Nexti指針(輸入速度<處理速度):無(wú)數(shù)據(jù)可取,計(jì)算進(jìn)程阻塞,稱為系統(tǒng)受I/O限制。6.7緩沖區(qū)管理緩沖池問(wèn)題:循環(huán)緩沖僅適用于某特定的I/O進(jìn)程和計(jì)算進(jìn)程,屬于專用緩沖。當(dāng)系統(tǒng)較大時(shí),會(huì)有很多這樣的循環(huán)緩沖,不僅消耗大量?jī)?nèi)存,而且利用率也不高解決:公用緩沖池——池中緩沖區(qū)可供多個(gè)進(jìn)程共享6.7緩沖區(qū)管理緩沖池的組成空緩隊(duì)列emq由空閑緩沖區(qū)連接而成用F(emq)指針指向隊(duì)首,L(emq)指向隊(duì)尾輸入隊(duì)列inq由裝滿輸入數(shù)據(jù)的緩沖區(qū)連接而成用F(inq)指針指向隊(duì)首,L(inq)指向隊(duì)尾輸出隊(duì)列outq由裝滿輸出數(shù)據(jù)的緩沖區(qū)連接而成用F(outq)指針指向隊(duì)首,L(outq)指向隊(duì)尾6.7緩沖區(qū)管理緩沖區(qū)的工作方式收容輸入提取輸入收容輸出提取輸出提取輸出hinsoutsinhout用戶程序收容輸入提取輸入收容輸出6.8磁盤存儲(chǔ)器的性能和調(diào)度
磁盤性能簡(jiǎn)述數(shù)據(jù)的組織和格式磁盤柱面磁道扇區(qū)6.8磁盤存儲(chǔ)器的性能和調(diào)度老式磁盤上,每磁道扇區(qū)對(duì)于所有柱面都是相同的現(xiàn)代磁盤被劃分為環(huán)帶,外層的環(huán)帶比內(nèi)層的環(huán)帶擁有更多的扇區(qū)具有兩個(gè)環(huán)帶的磁盤該磁盤的一種的物理幾何規(guī)格可能的虛擬幾何規(guī)格6.8磁盤存儲(chǔ)器的性能和調(diào)度磁盤參數(shù)比較6.8磁盤存儲(chǔ)器的性能和調(diào)度磁盤格式化步驟低級(jí)格式化對(duì)磁盤進(jìn)行分區(qū)對(duì)每個(gè)分區(qū)分別執(zhí)行一次高級(jí)格式化6.8磁盤存儲(chǔ)器的性能和調(diào)度低級(jí)格式化磁盤使用之前,必須由軟件進(jìn)行低級(jí)格式化包含一系列同心的磁道,每個(gè)磁道包含若干數(shù)目的扇區(qū),扇區(qū)間存在短的間隙低格之后磁盤容量減少,減少量取決于:前導(dǎo)碼、扇區(qū)間隙和ECC的大小以及保留的備用扇區(qū)數(shù)目6.8磁盤存儲(chǔ)器的性能和調(diào)度分區(qū)在低格之后,要對(duì)磁盤進(jìn)行分區(qū)。邏輯上每個(gè)分區(qū)就象一個(gè)獨(dú)立的磁盤如Pentium和大多數(shù)機(jī)器上,0扇區(qū)包含主引導(dǎo)記錄,其中存放一些引導(dǎo)代碼和末尾的分區(qū)表分區(qū)表給出每個(gè)分區(qū)的起始扇區(qū)和大小為了能從硬盤引導(dǎo),在分區(qū)表中必須有一個(gè)分區(qū)被標(biāo)記為活動(dòng)的6.8磁盤存儲(chǔ)器的性能和調(diào)度高級(jí)格式化一個(gè)引導(dǎo)塊空閑存儲(chǔ)管理(空閑列表或位圖)根目錄空文件系統(tǒng)將一個(gè)代碼設(shè)置在分區(qū)表中,表明該分區(qū)用什么文件系統(tǒng)6.8磁盤存儲(chǔ)器的性能和調(diào)度磁盤的類型固定頭磁盤移動(dòng)頭磁盤一次訪盤請(qǐng)求讀/寫(xiě),磁盤地址,內(nèi)存地址設(shè)備號(hào),柱面號(hào),磁頭號(hào),扇區(qū)號(hào)源地址/目的地址6.8磁盤存儲(chǔ)器的性能和調(diào)度磁盤訪問(wèn)時(shí)間尋道時(shí)間TS把磁臂(磁頭)移動(dòng)到指定磁道上所經(jīng)歷的時(shí)間TS=m*n+s
(m:常數(shù),n:移動(dòng)的磁道數(shù),s:磁盤啟動(dòng)時(shí)間)旋轉(zhuǎn)延遲時(shí)間Tr指定扇區(qū)移動(dòng)到磁頭下面所經(jīng)歷的時(shí)間硬盤平均8.3ms,軟盤平均50-100ms數(shù)據(jù)傳輸時(shí)間Tt把數(shù)據(jù)從磁盤讀出或向磁盤寫(xiě)入數(shù)據(jù)所經(jīng)歷的時(shí)間Tt=b/(r*N)(b:讀寫(xiě)字節(jié)數(shù)r:磁盤轉(zhuǎn)速N:一個(gè)磁道上的字節(jié)數(shù))6.8磁盤存儲(chǔ)器的性能和調(diào)度磁盤調(diào)度當(dāng)多個(gè)訪盤請(qǐng)求在等待時(shí),采用一定的策略,對(duì)這些請(qǐng)求的服務(wù)順序調(diào)整安排,旨在降低平均磁盤服務(wù)時(shí)間,達(dá)到公平、高效公平:一個(gè)I/O請(qǐng)求在有限時(shí)間內(nèi)滿足高效:減少設(shè)備機(jī)械運(yùn)動(dòng)所帶來(lái)的時(shí)間浪費(fèi),主要是使磁盤的平均尋道時(shí)間最短6.8磁盤存儲(chǔ)器的性能和調(diào)度例,考慮一個(gè)有40個(gè)柱面的磁盤,假設(shè)讀柱面11上數(shù)據(jù)塊的請(qǐng)求到達(dá),當(dāng)對(duì)柱面11的尋道正在進(jìn)行時(shí),又來(lái)了對(duì)柱面1,36,16,34,9,12
的請(qǐng)求,則讓它們進(jìn)入未完成的請(qǐng)求表,一個(gè)柱面對(duì)應(yīng)一個(gè)單獨(dú)的鏈表6.8磁盤存儲(chǔ)器的性能和調(diào)度FCFS(先來(lái)先服務(wù))算法
溫馨提示
- 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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030年中國(guó)銅版紙行業(yè)十三五規(guī)劃及發(fā)展?jié)摿Ψ治鰣?bào)告
- 2025-2030年中國(guó)路由器市場(chǎng)十三五規(guī)劃及發(fā)展策略分析報(bào)告
- 2025-2030年中國(guó)藥用碘行業(yè)十三五規(guī)劃與發(fā)展前景分析報(bào)告
- 2025-2030年中國(guó)背投式投影電視機(jī)項(xiàng)目投資風(fēng)險(xiǎn)分析報(bào)告
- 2025-2030年中國(guó)翻譯行業(yè)運(yùn)行動(dòng)態(tài)及投資發(fā)展前景預(yù)測(cè)報(bào)告
- 2025-2030年中國(guó)纜索起重機(jī)市場(chǎng)運(yùn)行態(tài)勢(shì)及發(fā)展趨勢(shì)分析報(bào)告
- 2025-2030年中國(guó)硫鐵礦燒渣行業(yè)運(yùn)行動(dòng)態(tài)規(guī)劃研究報(bào)告
- 2025-2030年中國(guó)鹽酸美金剛行業(yè)競(jìng)爭(zhēng)格局及發(fā)展規(guī)劃分析報(bào)告
- 2025-2030年中國(guó)白紙板市場(chǎng)發(fā)展趨勢(shì)與投資戰(zhàn)略研究報(bào)告
- 2025安徽省建筑安全員A證考試題庫(kù)附答案
- 出租共享菜園合同范例
- 八年級(jí)班主任學(xué)生心理健康計(jì)劃
- 整體施工勞務(wù)服務(wù)方案
- 【歷史】唐朝建立與“貞觀之治”課件-2024~2025學(xué)年統(tǒng)編版七年級(jí)歷史下冊(cè)
- 2024化工園區(qū)危險(xiǎn)品運(yùn)輸車輛停車場(chǎng)建設(shè)規(guī)范
- 第1課 精美絕倫的傳統(tǒng)工藝 課件 2023-2024學(xué)年贛美版初中美術(shù)八年級(jí)下冊(cè)
- 云南省地質(zhì)災(zāi)害群測(cè)群防手冊(cè)
- 汽車吊車吊裝施工方案
- 《植物保護(hù)學(xué)通論》PPT課件.ppt
- 倉(cāng)內(nèi)運(yùn)營(yíng)方案
- 江蘇省電力條例(2020)
評(píng)論
0/150
提交評(píng)論