




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、操作系統(tǒng)原理張德海 E-mail:2009年4月7日云南大學(xué)軟件學(xué)院2003年9月28日1第九章 設(shè)備管理9.1 引言9.2 數(shù)據(jù)傳送控制方式9.3 中斷技術(shù)9.4 緩沖技術(shù)9.5 設(shè)備分配9.6 I/O進(jìn)程控制9.7 設(shè)備驅(qū)動程序2003年9月28日2 9.1 引言計(jì)算機(jī)外部設(shè)備 在計(jì)算機(jī)系統(tǒng)中除CPU和內(nèi)存儲器外所有的設(shè)備和裝置稱為計(jì)算機(jī)外部設(shè)備(外圍設(shè)備、I/O設(shè)備)。早期設(shè)備:速度慢,應(yīng)用面窄,如紙帶、卡片等。現(xiàn)代設(shè)備:種類繁多、特性各異、操作復(fù)雜。如:硬盤、打印機(jī)、掃描儀、數(shù)碼相機(jī)等。2003年9月28日39.1.1 設(shè)備的類別按交互對象分類:人機(jī)交互設(shè)備:視頻顯示設(shè)備、鍵盤、鼠標(biāo)、
2、打印機(jī)與計(jì)算機(jī)或其他電子設(shè)備交互的設(shè)備:磁盤、磁帶、傳感器、控制器計(jì)算機(jī)間的通信設(shè)備:網(wǎng)卡、調(diào)制解調(diào)器2003年9月28日49.1.1 設(shè)備的類別(續(xù))按使用特性分類:存儲設(shè)備輸入輸出設(shè)備終端設(shè)備脫機(jī)設(shè)備2003年9月28日5按使用特性分類外部設(shè)備存儲設(shè)備輸入/輸出設(shè)備終端設(shè)備脫機(jī)設(shè)備磁帶磁盤其它(磁鼓、光盤等)軟盤硬盤鍵盤打印機(jī)顯示器圖形輸入/輸出設(shè)備圖像輸入/輸出設(shè)備聲音輸入/輸出設(shè)備繪圖機(jī)網(wǎng)絡(luò)通信板其它通用終端專用終端虛終端會話型批處理型智能終端2003年9月28日69.1.1 設(shè)備的類別(續(xù))按從屬關(guān)系分類:系統(tǒng)設(shè)備和用戶設(shè)備系統(tǒng)設(shè)備:在操作系統(tǒng)生成時(shí)就已配置好的設(shè)備,如鍵盤、打印機(jī)及
3、磁盤等用戶設(shè)備:由用戶自己安裝配置后由操作系統(tǒng)統(tǒng)一管理的設(shè)備,如網(wǎng)絡(luò)板、調(diào)制解調(diào)器、圖像設(shè)備等。2003年9月28日79.1.1 設(shè)備的類別(續(xù))按信息交換的單位分類:塊設(shè)備(Block Device):指以數(shù)據(jù)塊為單位來組織和傳送數(shù)據(jù)信息的設(shè)備。這類設(shè)備用于存儲信息,有磁盤和磁帶等。它屬于有結(jié)構(gòu)設(shè)備。典型的塊設(shè)備是磁盤,每個(gè)盤塊的大小為512B4KB,磁盤設(shè)備的基本特征是:傳輸速率較高,通常每秒鐘為幾兆位;它是可尋址的,即可隨機(jī)地讀/寫任意一塊;磁盤設(shè)備的I/O采用DMA方式。字符設(shè)備(Character Device):指以單個(gè)字符為單位來傳送數(shù)據(jù)信息的設(shè)備。這類設(shè)備一般用于數(shù)據(jù)的輸入和輸
4、出,有交互式終端、打印機(jī)等。它屬于無結(jié)構(gòu)設(shè)備。字符設(shè)備的基本特征是:傳輸速率較低;不可尋址,即不能指定輸入時(shí)的源地址或輸出時(shí)的目標(biāo)地址;字符設(shè)備的IO常采用中斷驅(qū)動方式。2003年9月28日89.1.2 設(shè)備管理的功能和任務(wù)設(shè)備管理的任務(wù):(1)選擇和分配輸入輸出設(shè)備以便進(jìn)行數(shù)據(jù)傳輸操作;(2)控制輸入輸出設(shè)備和CPU(或內(nèi)存)之間交換數(shù)據(jù);(3)為用戶提供一個(gè)友好的透明接口,把用戶和設(shè)備硬件特性分開,使用戶在編應(yīng)用程序時(shí)不必涉及到具體設(shè)備,系統(tǒng)按用戶要求控制設(shè)備工作。另外這個(gè)接口還為新增加的用戶設(shè)備提供一個(gè)和系統(tǒng)核心相連接的入口,以便用戶開發(fā)新的設(shè)備管理程序;(4)提高設(shè)備和設(shè)備之間、CPU
5、和設(shè)備之間,以及進(jìn)程和進(jìn)程之間的并行操作度,使操作系統(tǒng)獲得最佳效率。2003年9月28日99.1.2 設(shè)備管理的功能和任務(wù)設(shè)備管理的功能:(1)提供設(shè)備和管理系統(tǒng)的接口。(2)進(jìn)行設(shè)備分配。按設(shè)備類型和相應(yīng)分配算法把設(shè)備其他有關(guān)的硬件分配給請求該設(shè)備的進(jìn)程,并把未分配到所請求調(diào)和或其他有關(guān)硬件的進(jìn)程放入等待隊(duì)列;(3)實(shí)現(xiàn)設(shè)備和設(shè)備、設(shè)備和CPU等之間的并行操作。(4)進(jìn)行緩沖區(qū)管理。2003年9月28日109.2 數(shù)據(jù)傳送控制方式控制設(shè)備和內(nèi)存(或CPU)之間的數(shù)據(jù)傳送是設(shè)備管理的主要任務(wù)之一。選擇和衡量數(shù)據(jù)傳送控制方式的原則:(1)數(shù)據(jù)傳送速度足夠高,能滿足用戶需要但又不丟失數(shù)據(jù);(2)系
6、統(tǒng)開銷小,所需的處理控制程序少;(3)能充分發(fā)揮硬件資源的能力,使得I/O設(shè)備盡量忙,而CPU等待時(shí)間少。2003年9月28日119.2 數(shù)據(jù)傳送控制方式外圍設(shè)備和內(nèi)存之間常用的數(shù)據(jù)傳送控制方式有以下4種:(1)程序直接控制方式(2)中斷控制方式(3)DMA方式(4)通道方式2003年9月28日129.2.1 程序直接控制方式程序直接控制方式(programmed direct control)就是由用戶進(jìn)程來直接控制內(nèi)存或CPU和外圍設(shè)備之間的數(shù)據(jù)傳送??刂普撸河脩暨M(jìn)程2003年9月28日139.2.1 程序直接控制方式過程描述:當(dāng)用戶進(jìn)程需要數(shù)據(jù)時(shí),它通過CPU發(fā)出啟動外設(shè)準(zhǔn)備數(shù)據(jù)的命令“
7、start”,然后,用戶進(jìn)程進(jìn)入測試等待狀態(tài)。在等待時(shí)間內(nèi),CPU不斷地用一條測試指令檢查描述外圍設(shè)備工作狀態(tài)的控制狀態(tài)寄存器,而外圍設(shè)備只有將數(shù)據(jù)傳送的準(zhǔn)備工作做好后,才將該寄存器置為完成狀態(tài)。當(dāng)CPU檢測到控制狀態(tài)寄存器的“Done”信號之后,設(shè)備開始往內(nèi)存或CPU傳送數(shù)據(jù)。2003年9月28日149.2.1 程序直接控制方式過程描述(續(xù)):當(dāng)用戶進(jìn)程需要輸出數(shù)據(jù)時(shí),也需要發(fā)送外設(shè)啟動命令并等待設(shè)備準(zhǔn)備完成才能傳送數(shù)據(jù)。在CPU與外設(shè)之間有一個(gè)數(shù)據(jù)緩沖寄存器,每次數(shù)據(jù)輸入/輸出時(shí),先把所要輸入(輸出)的數(shù)據(jù)放入緩沖寄存器中,然后再取走。2003年9月28日15程序直接控制方式接收到star
8、t命令做接收或發(fā)送數(shù)據(jù)準(zhǔn)備準(zhǔn)備完畢?標(biāo)志觸發(fā)器置“Done”等待CPU來的下條指令否是外圍設(shè)備(a)發(fā)start命令標(biāo)志觸發(fā)器為Done?等待執(zhí)行下條指令開始數(shù)據(jù)傳送否是CPU(b)2003年9月28日16程序直接控制方式的特點(diǎn)優(yōu)點(diǎn):實(shí)現(xiàn)簡單,硬件支持少。缺點(diǎn):(1)CPU與外設(shè)只能串行工作。CPU利用率低。(2)CPU在一段時(shí)間內(nèi)只能和一臺外圍設(shè)備交換數(shù)據(jù)信息,從而不能實(shí)現(xiàn)設(shè)備之間的并行工作。(3)由于程序直接控制方式依靠測試設(shè)備標(biāo)志觸發(fā)器的狀態(tài)位來控制數(shù)據(jù)傳送,因此無法發(fā)現(xiàn)和處理由于設(shè)備或其他硬件所產(chǎn)生的錯誤。程序直接控制方式只適用于那些CPU執(zhí)行速度慢,而且外設(shè)較少的系統(tǒng)。2003年9月
9、28日179.2.2 中斷方式為了減少直接控制方式中CPU等待時(shí)間以及提高系統(tǒng)的并行工作程度,中斷(interrupt)方式被用來控制外圍設(shè)備和內(nèi)存與CPU之間的數(shù)據(jù)傳送。這種方式要求CPU與設(shè)備(或控制器)之間有相應(yīng)的中斷請求線,而且在設(shè)備控制器的控制狀態(tài)寄存器中有相應(yīng)的中斷允許位。2003年9月28日18中斷控制方式的傳送結(jié)構(gòu)I/O控制器1I/O控制器nCPU內(nèi)存I/O設(shè)備1:I/O設(shè)備n:數(shù)據(jù)線地址線控制線控制狀態(tài)寄存器數(shù)據(jù)緩沖寄存器啟動位中斷位Startint2003年9月28日199.2.2 中斷方式數(shù)據(jù)輸入步驟(1)首先,進(jìn)程需要數(shù)據(jù)時(shí),通過CPU發(fā)出“Start”指令啟動外圍設(shè)備
10、準(zhǔn)備數(shù)據(jù)。該指令同時(shí)還將控制狀態(tài)寄存器中的中斷允許位打開,以便在需要時(shí),中斷程序可以被調(diào)用執(zhí)行。(2)在進(jìn)程發(fā)出指令啟動設(shè)備之后,該進(jìn)程放棄處理機(jī),待輸入完成。從而進(jìn)程調(diào)度程序調(diào)度其他就緒進(jìn)程占據(jù)處理機(jī)。(3)當(dāng)輸入完成時(shí),I/O控制器通過中斷請求線向CPU發(fā)出中斷信號。CPU在接收到中斷信號后,轉(zhuǎn)向預(yù)先設(shè)計(jì)好的中斷處理程序?qū)?shù)據(jù)傳送進(jìn)行相應(yīng)的處理。(4)在以后的某個(gè)時(shí)刻,進(jìn)程調(diào)度程序選中提出請求并得到了數(shù)據(jù)的進(jìn)程,該進(jìn)程從約定的內(nèi)存特定單元中取出數(shù)據(jù)繼續(xù)工作。2003年9月28日20中斷控制方式的處理過程接收到start命令準(zhǔn)備數(shù)據(jù)并將其置入緩沖寄存器緩沖寄存器滿嗎?控制器發(fā)中斷信號否是外圍
11、設(shè)備(a)向外設(shè)發(fā)start命令將中斷允許位置1收到中斷信號了嗎?中斷處理被中斷進(jìn)程執(zhí)行是否CPU(b)調(diào)度其他進(jìn)程其他進(jìn)程執(zhí)行2003年9月28日21中斷控制方式的特點(diǎn)優(yōu)點(diǎn):CPU在進(jìn)程上下文中執(zhí)行時(shí),也可以啟動不同的設(shè)備啟動指令和允許中斷指令,從而做到設(shè)備與設(shè)備之間和設(shè)備與CPU之間的并行操作,提高了CPU的利用率。缺點(diǎn):1. 由于在I/O控制器的數(shù)據(jù)緩沖寄存器裝滿后將會發(fā)生中斷,而且數(shù)據(jù)緩沖寄存器通常較小,在一次數(shù)據(jù)傳送過程中可能發(fā)生多次中斷。2. 當(dāng)較多外圍設(shè)備并行操作時(shí),由于中斷次數(shù)急劇增加而造成CPU無法響應(yīng)中斷和出現(xiàn)數(shù)據(jù)丟失現(xiàn)象。3. 當(dāng)外圍設(shè)備的速度非常高時(shí),可能造成數(shù)據(jù)緩沖寄
12、存器的數(shù)據(jù)由于CPU來不及取走而丟失。2003年9月28日229.2.3 DMA方式DMA方式又稱直接存儲器存?。╠irect memory access)方式?;舅枷耄涸趦?nèi)存和外設(shè)之間開辟直接的數(shù)據(jù)交換通路。DMA控制器中除了控制狀態(tài)寄存器和數(shù)據(jù)緩沖寄存器外,還包括傳送字節(jié)計(jì)數(shù)器、內(nèi)存地址寄存器等。DMA方式挪用CPU的一個(gè)工作周期把數(shù)據(jù)從緩沖寄存器中直接送到內(nèi)存地址寄存器中所指向的內(nèi)存區(qū)域中。2003年9月28日239.2.3 DMA方式DMA控制器可用來代替CPU控制內(nèi)存和設(shè)備之間進(jìn)行成批的數(shù)據(jù)交換。批量數(shù)據(jù)的傳送由計(jì)數(shù)器計(jì)數(shù),并由內(nèi)存地址寄存器確定內(nèi)存地址。除了在數(shù)據(jù)傳送開始時(shí)需要C
13、PU啟動指令和在整個(gè)數(shù)據(jù)塊傳送結(jié)束時(shí)需要發(fā)中斷通知CPU進(jìn)行中斷處理之外,不再需要CPU頻繁干涉。2003年9月28日24DMA存取方式的結(jié)構(gòu)DMA控制器CPU內(nèi)存I/O設(shè)備:數(shù)據(jù)Start控制狀態(tài)寄存器數(shù)據(jù)緩沖寄存器啟動位中斷位int傳送字節(jié)數(shù)計(jì)數(shù)器內(nèi)存地址寄存器2003年9月28日25DMA方式下的數(shù)據(jù)輸入過程(1)當(dāng)進(jìn)程要求設(shè)備輸入數(shù)據(jù)時(shí),CPU把準(zhǔn)備存放輸入數(shù)據(jù)的內(nèi)存始址以及要傳送的字節(jié)數(shù)分別送入DMA控制器中的內(nèi)存地址寄存器和傳送字節(jié)計(jì)數(shù)器;另外,還把控制狀態(tài)寄存器中的中斷允許位和啟動位置1;從而啟動設(shè)備開始進(jìn)行數(shù)據(jù)輸入。(2)發(fā)出數(shù)據(jù)要求的進(jìn)程進(jìn)入等待狀態(tài),進(jìn)程調(diào)度程序調(diào)度其他進(jìn)程
14、占據(jù)CPU;(3)輸入設(shè)備不斷地挪用CPU工作周期,將數(shù)據(jù)緩沖寄存器中的數(shù)據(jù)源源不斷地寫入內(nèi)存,直到所要求的字節(jié)全部傳送完畢。(4)DMA控制器在傳送字節(jié)數(shù)完成時(shí)通過中斷請求線發(fā)出中斷信號,CPU在接收到中斷信號后轉(zhuǎn)中斷處理程序進(jìn)行善后處理。(5)中斷處理結(jié)束時(shí),CPU返回被中斷進(jìn)程處執(zhí)行或被調(diào)度到新的進(jìn)程上下文環(huán)境中執(zhí)行。2003年9月28日26DMA方式的數(shù)據(jù)傳送過程接收到start命令數(shù)據(jù)入緩沖寄存器傳送字節(jié)數(shù)=0嗎?發(fā)中斷信號,停止I/O操作否是外圍設(shè)備(a)向外設(shè)發(fā)start命令內(nèi)存地址內(nèi)存始址寄存器傳送字節(jié)數(shù)字節(jié)計(jì)數(shù)器將中斷允許位與啟動位置1收到中斷信號了嗎?轉(zhuǎn)中斷處理是否CPU(
15、b)當(dāng)前進(jìn)程等待,調(diào)度其他進(jìn)程其他進(jìn)程執(zhí)行啟動設(shè)備準(zhǔn)備數(shù)據(jù)改變字節(jié)計(jì)數(shù)器與地址寄存器的內(nèi)容緩沖寄存器內(nèi)容入內(nèi)存2003年9月28日27DMA方式與中斷控制方式的主要區(qū)別中斷方式是在數(shù)據(jù)緩沖寄存器滿之后發(fā)中斷要求CPU進(jìn)行中斷處理,而DMA方式則是在所要求傳送的數(shù)據(jù)塊全部傳送結(jié)束時(shí)要求CPU進(jìn)行中斷處理。中斷方式的數(shù)據(jù)傳送是在中斷處理時(shí)由CPU控制完成,而DMA方式是在DMA控制器的控制下不經(jīng)過CPU控制完成的。2003年9月28日28DMA方式的特點(diǎn)優(yōu)點(diǎn):大大提高了CPU利用率不會造成大量外設(shè)并發(fā)操作時(shí)CPU來不及處理或外設(shè)與CPU速度不匹配帶來的數(shù)據(jù)丟失問題。局限性:DMA方式對外設(shè)的管理和
16、某些操作仍由CPU控制。多個(gè)DMA控制器的同時(shí)使用會引起內(nèi)存地址的沖突并使控制過程進(jìn)一步復(fù)雜化。多個(gè)DMA控制器同時(shí)使用不夠經(jīng)濟(jì)。2003年9月28日299.2.4 通道控制方式通道控制方式與DMA方式相類似,也是一種以內(nèi)存為中心,實(shí)現(xiàn)設(shè)備和內(nèi)存直接交換數(shù)據(jù)的控制方式。與DMA方式的不同點(diǎn):在DMA方式中,數(shù)據(jù)的傳送方向、存放數(shù)據(jù)的內(nèi)存始址及傳送數(shù)據(jù)塊的長度均由CPU控制,而在通道方式中,這些都由通道來控制。DMA方式下,每臺設(shè)備至少一個(gè)DMA控制器,而通道方式下,一個(gè)通道控制多臺設(shè)備與內(nèi)存進(jìn)行數(shù)據(jù)交換,從而通道方式進(jìn)一步減輕了CPU的壓力,提高了計(jì)算機(jī)系統(tǒng)操作的并行度。2003年9月28日3
17、0通道的定義通道是一個(gè)獨(dú)立于CPU的專管I/O控制的處理機(jī),它控制設(shè)備與內(nèi)存直接進(jìn)行數(shù)據(jù)交換。通道有自己的通道指令,這些指令受CPU啟動,并在操作結(jié)束時(shí)向CPU發(fā)出中斷信號。2003年9月28日31通道方式的基本思想在通道方式中,I/O控制器中沒有傳送字節(jié)計(jì)數(shù)器和內(nèi)存地址寄存器;但多了通道設(shè)備控制器和指令執(zhí)行機(jī)構(gòu)。在通道方式下,CPU只需發(fā)出啟動指令,指出相應(yīng)的操作和I/O設(shè)備,該指令就可啟動通道并使該通道從內(nèi)存中調(diào)出相應(yīng)的通道指令執(zhí)行。2003年9月28日32通道指令通道指令一般包含被交換數(shù)據(jù)在內(nèi)存中的位置、傳送方向、數(shù)據(jù)塊長度以及被控制的I/O設(shè)備的地址信息、特征信息等。通道指令在通道中沒
18、有存儲部件時(shí)存放在內(nèi)存中。通道指令的格式一般由操作碼、讀/寫或控制、計(jì)數(shù)段以及內(nèi)存地址段和結(jié)束標(biāo)志組成。通道指令在內(nèi)存要求數(shù)據(jù)時(shí)由系統(tǒng)自動生成。2003年9月28日33通道指令舉例例:write 0 0 250 1850 write 1 1 250 720 上面的兩條指令把一個(gè)記錄的500個(gè)字符分別寫入從內(nèi)存地址1850開始的250個(gè)單元和從內(nèi)存地址720開始的250個(gè)單元中。其中假定write操作碼后的“1”是通道指令結(jié)束的標(biāo)志,另一個(gè)“1”是記錄結(jié)束的標(biāo)志。指令中省略了設(shè)備號和設(shè)備特征。2003年9月28日34通道的類型通道可以以分時(shí)方式同時(shí)執(zhí)行幾個(gè)通道程序。按信息交換方式分為:字節(jié)多路通
19、道:以字節(jié)為單位傳送數(shù)據(jù),主要用來連接大量的低速設(shè)備,如終端、打印機(jī)數(shù)組多路通道:以塊為單位傳送數(shù)據(jù),具有傳送速率高和能分時(shí)操作不同設(shè)備等優(yōu)點(diǎn),主要用來連接中速塊設(shè)備,如磁帶機(jī)。選擇通道:一次只能執(zhí)行一個(gè)通道指令程序。傳送速度高,常用來連接高速設(shè)備,以塊為單位成批傳送數(shù)據(jù),如磁盤機(jī)等。2003年9月28日35通道方式的數(shù)據(jù)傳送結(jié)構(gòu)CPU內(nèi)存字節(jié)多路通道數(shù)組多路通道選擇通道I/O控制器終端I/O控制器I/O控制器終端終端I/O控制器I/O控制器I/O控制器磁帶磁帶磁帶I/O控制器I/O控制器磁盤機(jī)磁盤機(jī)總線2003年9月28日36通道控制方式的數(shù)據(jù)輸入過程(1)當(dāng)進(jìn)程要求設(shè)備輸入數(shù)據(jù)時(shí),CPU發(fā)
20、Start命令指明I/O操作、設(shè)備號和對應(yīng)通道。(2)對應(yīng)通道接收到CPU發(fā)來的啟動指令后,讀出存放在內(nèi)存中的通道指令程序,設(shè)置對應(yīng)設(shè)備的I/O控制器中的控制狀態(tài)寄存器。(3)設(shè)備根據(jù)通道指令要求,把數(shù)據(jù)送往內(nèi)存中指定區(qū)域。(4)若傳送數(shù)據(jù)結(jié)束,I/O控制器通過中斷請求線發(fā)出中斷信號請求CPU做中斷處理。(5)中斷處理結(jié)束后,CPU返回被中斷處執(zhí)行。2003年9月28日37通道控制方式描述過程示例Channel control procedure:repeat IR Mpc pc pc+1 execute (IR) if require accessing with I/O device th
21、en command (I/O operation, address of I/O device , channel) fi if I/O Done Interrupt then Call Interrupt processing control fi until machine halt Interrupt processing control procedure: 2003年9月28日389.3 中斷技術(shù)數(shù)據(jù)傳送控制方式中,除程序直接控制方式外,無論采用其他何種方式,都需要在設(shè)備和CPU之間進(jìn)行通信,由設(shè)備向CPU發(fā)中斷信號之后,CPU接收相應(yīng)的中斷信號進(jìn)行處理。這幾種方式的區(qū)別只是中斷處
22、理的次數(shù)、數(shù)據(jù)傳送方式以及控制指令的執(zhí)行方式等。2003年9月28日399.3 中斷技術(shù)在計(jì)算機(jī)系統(tǒng)中,除了I/O中斷外,還存在著許多其他的突發(fā)事件,如電源掉電,程序出錯等,也會發(fā)出中斷信號通知CPU做相應(yīng)的處理。2003年9月28日409.3.1 中斷的基本概念中斷(interrupt):指計(jì)算機(jī)在執(zhí)行期間,系統(tǒng)內(nèi)發(fā)生任何非尋常的或非預(yù)期的急需處理事件,使得CPU暫時(shí)中斷當(dāng)前正在執(zhí)行的程序而轉(zhuǎn)去執(zhí)行相應(yīng)的事件處理程序,待處理完畢后又返回原來被中斷處繼續(xù)執(zhí)行或調(diào)度新的進(jìn)程執(zhí)行的過程。中斷源:引起中斷發(fā)生的事件中斷請求:中斷源向CPU發(fā)出的請求中斷處理的信號 。中斷響應(yīng):CPU收到中斷請求后轉(zhuǎn)向
23、相應(yīng)的事件處理程序稱為中斷響應(yīng)。2003年9月28日419.3.1 中斷的基本概念(續(xù))禁止中斷:當(dāng)CPU內(nèi)部的處理機(jī)狀態(tài)字PSW的中斷允許位被清除,不允許CPU響應(yīng)中斷的情況稱為禁止中斷。關(guān)中斷:PSW的中斷允許位被清除。開中斷:PSW的中斷允許位被設(shè)置。開中斷和關(guān)中斷是為了保證某些程序執(zhí)行的原子性,如原語。中斷請求、開中斷、關(guān)中斷等都是由硬件實(shí)現(xiàn)的。2003年9月28日429.3.1 中斷的基本概念(續(xù))中斷屏蔽:是指在中斷請求產(chǎn)生之后,系統(tǒng)用軟件方式有選擇地封鎖部分中斷而允許其余部分的中斷仍能得到響應(yīng)。中斷屏蔽是通過每一類中斷源設(shè)置一個(gè)中斷屏蔽觸發(fā)器來屏蔽它們的中斷請求而實(shí)現(xiàn)的。有些中斷
24、請求是不能屏蔽甚至也不能禁止,這些中斷具有最高優(yōu)先級,不管CPU是否是關(guān)中斷的,只要這些中斷請求一旦提出,CPU必須立即響應(yīng)。例如,電源掉電事件引發(fā)的中斷。 2003年9月28日439.3.2 中斷的分類和優(yōu)先級根據(jù)系統(tǒng)對中斷處理的需要,操作系統(tǒng)一般對中斷進(jìn)行分類并對不同的中斷賦予不同的處理優(yōu)先級,以便在不同的中斷同時(shí)發(fā)生時(shí),按輕重緩急進(jìn)行處理。根據(jù)中斷源產(chǎn)生的條件,可把中斷分為外中斷和內(nèi)中斷。2003年9月28日441.中斷的分類外中斷外中斷:指來自CPU和內(nèi)存外部的中斷。外中斷包括:I/O中斷、外部信號中斷、各種定時(shí)器引起的時(shí)鐘中斷和調(diào)試程序引起的調(diào)試中斷。外中斷在狹意上一般稱為中斷。20
25、03年9月28日451.中斷的分類內(nèi)中斷內(nèi)中斷:處理機(jī)和內(nèi)存內(nèi)部產(chǎn)生的中斷。內(nèi)中斷一般稱為陷阱(trap)。內(nèi)中斷包括:程序運(yùn)算引起的各種錯誤,如地址非法、校驗(yàn)錯、頁面失效、存取訪問控制錯、算術(shù)操作溢出、數(shù)據(jù)格式非法、除數(shù)為0、非法指令等。用戶程序執(zhí)行特權(quán)指令;分時(shí)系統(tǒng)中的時(shí)間片中斷;從用戶態(tài)到核心態(tài)的切換。2003年9月28日462. 中斷的優(yōu)先級 按中斷源的輕重緩急,OS對不同的中斷賦予不同的優(yōu)先級。 如在UNIX系統(tǒng)中,外中斷和陷阱的優(yōu)先級共分為8級。為了禁止中斷和屏蔽中斷,CPU的PSW中也設(shè)置相應(yīng)的優(yōu)先級。如果中斷源和優(yōu)先級高于PSW的優(yōu)先級,則CPU響應(yīng)該中斷源的中斷請求,否則CP
26、U屏蔽中斷源的中斷請求。2003年9月28日47中斷和陷阱的主要區(qū)別(1)中斷的優(yōu)先級在系統(tǒng)設(shè)計(jì)時(shí)給定,在系統(tǒng)運(yùn)行期間是固定的,而陷阱的優(yōu)先級則根據(jù)執(zhí)行情況由系統(tǒng)程序動態(tài)設(shè)定。(2)陷阱通常由CPU正在執(zhí)行的指令引起,而中斷則是由與現(xiàn)行指令無關(guān)的中斷源引起;(3)陷阱處理程序是為當(dāng)前進(jìn)程提供的服務(wù),而中斷處理程序不是為當(dāng)前進(jìn)程服務(wù)的。(4)CPU在執(zhí)行完一條指令之后,在下一條指令開始執(zhí)行之前響應(yīng)中斷,而在一條指令執(zhí)行中也可以響應(yīng)陷阱。(5)在有的系統(tǒng)中,陷阱處理程序被規(guī)定在各自的進(jìn)程上下文中執(zhí)行,而中斷處理程序則在系統(tǒng)上下文中執(zhí)行。2003年9月28日489.3.3 軟中斷上面討論的中斷和陷阱
27、都可以看作是硬中斷,因?yàn)檫@些中斷和陷阱都要通過硬件產(chǎn)生相應(yīng)的中斷請求。軟中斷:通信進(jìn)程之間用來模擬硬中斷的一種信號通信方式。軟中斷與硬中斷的相同點(diǎn):當(dāng)中斷源發(fā)中斷請求或軟中斷信號后,CPU或接收進(jìn)程在適當(dāng)?shù)臅r(shí)機(jī)自動進(jìn)行中斷處理或完成軟中斷信號所對應(yīng)的功能。2003年9月28日499.3.3 軟中斷如果軟中斷的接收進(jìn)程是占據(jù)處理機(jī)的,則與中斷處理相同,該接收進(jìn)程在接收到軟中斷信號后將立即轉(zhuǎn)去執(zhí)行該中斷信號所對應(yīng)的功能。軟中斷的概念主要來源于UNIX系統(tǒng)。在有些系統(tǒng)中,大部分的陷阱是轉(zhuǎn)化為軟中斷處理的。由于陷阱主要與當(dāng)前進(jìn)程有關(guān),因此,如果當(dāng)前執(zhí)行指令產(chǎn)生陷阱的話,則向當(dāng)前執(zhí)行進(jìn)程發(fā)出一個(gè)軟中斷信
28、號從而立即進(jìn)入陷阱處理程序。2003年9月28日50中斷處理過程判斷中斷響應(yīng)條件保存被中斷現(xiàn)場關(guān)中斷執(zhí)行中斷處理子程序分析中斷原因轉(zhuǎn)中斷處理子程序恢復(fù)現(xiàn)場開中斷返回中斷點(diǎn)2003年9月28日51I/O中斷處理過程描述I/O Interrupt processing control:Begin unusable I/O Interrupt flag save status of interrupt program if Input Device i Ready then Call Input Device i Control fi if Output Device i Ready then Ca
29、ll Output Device i Control fi if Data Deliver Done then Call Data Deliver Done Control fi restore CPU status reset I/O Interrupt flag endInput Device i Control: Output Device i Control: Data Deliver Done Control: 2003年9月28日529.4 緩沖技術(shù) 9.4.1 緩沖的引入外圍設(shè)備與處理機(jī)速度不匹配的問題可以采用設(shè)置緩沖區(qū)的方法解決。例:在設(shè)置了緩沖區(qū)之后,計(jì)算進(jìn)程可把數(shù)據(jù)首先輸出
30、到緩沖區(qū),然后繼續(xù)執(zhí)行;而打印機(jī)則可從緩沖區(qū)取出數(shù)據(jù)慢慢打印。另外,從減少中斷的次數(shù)看,也存在引入緩沖區(qū)的必要性。2003年9月28日539.4.1 緩沖的引入(續(xù))在DMA方式或通道方式控制數(shù)據(jù)傳送時(shí),如果不劃分專用的內(nèi)存區(qū)或?qū)S镁彌_器來存放數(shù)據(jù)的話,會因?yàn)橐髷?shù)據(jù)的進(jìn)程所擁有的內(nèi)存區(qū)不夠或存放數(shù)據(jù)的內(nèi)存始址計(jì)算困難等原因而造成某個(gè)進(jìn)程長期占有通道或DMA控制器及設(shè)備,從而產(chǎn)生瓶頸問題。2003年9月28日549.4.1 緩沖的引入(續(xù))為了匹配外設(shè)與CPU之間的處理速度,為了減少中斷次數(shù)和中斷處理時(shí)間,同時(shí)也是為了解決DMA或通道方式時(shí)的瓶頸問題,在設(shè)備管理中需要引入緩沖技術(shù)。緩沖的實(shí)現(xiàn)方
31、法:采用專用硬件緩沖器:如緩沖寄存器在內(nèi)存劃出一塊具有n個(gè)單元的專用緩沖區(qū),以便存放輸入輸出的數(shù)據(jù)。(軟件緩沖)2003年9月28日559.4.2 緩沖的種類根據(jù)系統(tǒng)設(shè)置的緩沖區(qū)的個(gè)數(shù),可把緩沖技術(shù)分為:單緩沖雙緩沖多緩沖緩沖池2003年9月28日569.4.2 緩沖的種類單緩沖單緩沖是在設(shè)備和CPU之間設(shè)置一個(gè)緩沖器,當(dāng)設(shè)備和CPU交換數(shù)據(jù)時(shí),先把被交換的數(shù)據(jù)寫入緩沖器,需要數(shù)據(jù)的設(shè)備或CPU從緩沖器取走數(shù)據(jù)。由于緩沖區(qū)屬臨界資源,不允許多個(gè)進(jìn)程同時(shí)對一個(gè)緩沖器進(jìn)行操作,因此設(shè)備之間不能通過單緩沖達(dá)到并行操作。2003年9月28日579.4.2 緩沖的種類雙緩沖雙緩沖可以解決兩臺外設(shè)之間的并
32、行操作問題。其中一個(gè)緩沖器可以作為數(shù)據(jù)輸入緩沖,另一個(gè)可以作為輸出緩沖。雙緩沖仍然只是設(shè)備之間、設(shè)備和CPU之間并行操作的簡單模型,不能在實(shí)際系統(tǒng)中應(yīng)用。實(shí)際系統(tǒng)中使用多緩沖或緩沖池。2003年9月28日589.4.2 緩沖的種類多緩沖和緩沖池多緩沖是把多個(gè)緩沖區(qū)連接起來組成兩部分,一部分專門用來輸入,另一部分專門用來輸出。緩沖池是把多個(gè)緩沖區(qū)連接起來統(tǒng)一管理,既可用于輸入也可用于輸出的緩沖結(jié)構(gòu)。2003年9月28日599.4.3 緩沖池的管理緩沖池的結(jié)構(gòu):緩沖池由多個(gè)緩沖區(qū)組成,而一個(gè)緩沖區(qū)由兩部分組成:一部分用來標(biāo)識該緩沖器和用于管理的緩沖首部,另一部分是用于存放數(shù)據(jù)的緩沖體。對緩沖池的管
33、理是通過對每一個(gè)緩沖器緩沖首部的管理實(shí)現(xiàn)的。設(shè)備號數(shù)據(jù)塊號緩沖器號互斥標(biāo)識位連接指針緩沖首部:2003年9月28日60緩沖區(qū)隊(duì)列系統(tǒng)把各緩沖區(qū)按其使用狀況連成三種隊(duì)列:(1)空白緩沖隊(duì)列em,其隊(duì)首指針為F(em),隊(duì)尾指針為L(em);(2)裝滿輸入數(shù)據(jù)的輸入緩沖隊(duì)列in,其隊(duì)首指針為F(in),隊(duì)尾指針為L(in);(3)裝滿輸出數(shù)據(jù)的輸出緩沖隊(duì)列out,其隊(duì)首指針為F(out),隊(duì)尾指針為L(out);2003年9月28日61緩沖區(qū)隊(duì)列緩沖區(qū)1 緩沖區(qū)2 F(em)L(em)緩沖區(qū)1 緩沖區(qū)m F(in)L(in)緩沖區(qū)n F(out)L(out)2003年9月28日62工作緩沖區(qū)除空白
34、緩沖隊(duì)列、輸入緩沖隊(duì)列和輸出緩沖隊(duì)列外,系統(tǒng)(或用戶進(jìn)程)從這三種隊(duì)列中申請和取出緩沖區(qū),并用得到的緩沖區(qū)進(jìn)行存數(shù)、取數(shù)操作,結(jié)束后再將緩沖區(qū)放入相應(yīng)的隊(duì)列。這些緩沖區(qū)被稱為工作緩沖區(qū)。在緩沖池中,有4種工作緩沖區(qū):(1)用于收容設(shè)備輸入數(shù)據(jù)的收容輸入緩沖區(qū)hin;(2)用于提取設(shè)備輸入數(shù)據(jù)的提取輸入緩沖區(qū)sin;(3)用于收容設(shè)備輸出數(shù)據(jù)的收容輸出緩沖區(qū)hout;(4)用于提取設(shè)備輸出數(shù)據(jù)的提取輸出緩沖區(qū)sout;2003年9月28日63緩沖池的工作緩沖區(qū)hin緩沖區(qū)1 收容輸入sout緩沖區(qū)n sin緩沖區(qū)mhout緩沖區(qū)z提取輸出I/O設(shè)備提取輸入收容輸出CPU緩沖池2003年9月28日
35、642. 緩沖池管理對緩沖池的管理由以下幾個(gè)操作組成:(1) 從緩沖區(qū)隊(duì)列中按一定的規(guī)則(如FIFO)選取一個(gè)緩沖區(qū)的過程take_buf(type);(2) 從緩沖區(qū)按一定的規(guī)則插入相應(yīng)的緩沖區(qū)隊(duì)列中的過程add_buf(type, number);(3) 供進(jìn)程申請緩沖區(qū)用的過程get_buf(type, number);(4) 供進(jìn)程將緩沖區(qū)放入相應(yīng)緩沖區(qū)隊(duì)列的過程put_buf(type, work_buf)。 參數(shù)type表示緩沖隊(duì)列類型,number為緩沖區(qū)號,work_buf表示工作緩沖區(qū)類型。2003年9月28日65緩沖池的工作過程收容輸入首先,輸入進(jìn)程調(diào)用get_buf(em
36、,number)過程從空白緩沖區(qū)隊(duì)列中取出一個(gè)緩沖號為number的空白緩沖區(qū),將其作為收容輸入緩沖區(qū)hin,當(dāng)hin中裝滿了由輸入設(shè)備輸入的數(shù)據(jù)之后,系統(tǒng)調(diào)用過程put_buf(in, hin)將該緩沖區(qū)插入輸入緩沖區(qū)隊(duì)列in中;2003年9月28日66緩沖池的工作過程收容輸出另外,當(dāng)進(jìn)程需要輸出數(shù)據(jù)時(shí),輸出進(jìn)程經(jīng)過緩沖管理程序調(diào)用過程get_buf(em, number)從空白緩沖區(qū)隊(duì)列中取出一個(gè)空白緩沖區(qū)number作為收容輸出緩沖區(qū)hout,待hout中裝滿輸出數(shù)據(jù)后,系統(tǒng)再調(diào)用過程put_buf(out, hout)將該緩沖區(qū)插入輸出緩沖隊(duì)列out。2003年9月28日67緩沖池的工
37、作過程提取對緩沖區(qū)的輸入數(shù)據(jù)和輸出數(shù)據(jù)的提取也是由過程get_buf和put_buf實(shí)現(xiàn)的。get_buf(out, number)從輸出緩沖隊(duì)列中取出裝滿輸出數(shù)據(jù)的緩沖區(qū)number,將其作為sout。當(dāng)sout中的數(shù)據(jù)輸出完畢后,系統(tǒng)調(diào)用過程put_buf(em, sout)將該緩沖區(qū)插入空白緩沖隊(duì)列em中。get_buf(in, number)從輸入緩沖隊(duì)列中取出裝滿輸入數(shù)據(jù)的緩沖區(qū)number,將其作為sin。當(dāng)CPU提取完所需數(shù)據(jù)后,系統(tǒng)調(diào)用過程put_buf(em, sin)將該緩沖區(qū)插入空白緩沖隊(duì)列em中。2003年9月28日68對緩沖隊(duì)列的管理對緩沖隊(duì)列中的緩沖區(qū)的排列、插入、
38、取出都有一定的規(guī)則。最簡單的方法是FIFO采用FIFO,過程put_buf每次把緩沖區(qū)插入相應(yīng)的隊(duì)尾,而過程get_buf則取出相應(yīng)緩沖隊(duì)列的第一個(gè)緩沖區(qū)。進(jìn)程對緩沖隊(duì)列的訪問應(yīng)該是同步的,對具體緩沖區(qū)的訪問是互斥的。2003年9月28日69對緩沖隊(duì)列的管理(續(xù))get_buf和put_buf的過程描述如下:S(type)為互斥信號量,初值為1RS(type)為資源數(shù)目的信號量,初值為n,n為隊(duì)列長度。Get_buf(type, number): begin P(RS(type) P(S(type) Pointer of buffer(number) = take(type, number)
39、V(S(type) end2003年9月28日70對緩沖隊(duì)列的管理(續(xù))Put_buf(type, number): begin P(S(type) add_buf(type, number) V(S(type) V(RS(type) end2003年9月28日719.5 設(shè)備分配由于設(shè)備、控制器和通道資源的有限性,不是每個(gè)進(jìn)程隨時(shí)隨地都能得到這些資源。因此,進(jìn)程必須首先向設(shè)備管理程序提出資源申請,然后,由設(shè)備分配程序根據(jù)相應(yīng)的分配算法為進(jìn)程分配資源。如果申請進(jìn)程得不到它所申請的資源時(shí),將被放入資源等待 隊(duì)列,直到所需要的資源被釋放。2003年9月28日729.5.1 設(shè)備分配用的數(shù)據(jù)結(jié)構(gòu)設(shè)備
40、控制表DCT(Device Control Table)系統(tǒng)設(shè)備表SDT(System Device Table)控制器表COCT(COntroler Control Table)通道控制表CHCT(CHannel Control Table)2003年9月28日731. 設(shè)備控制表DCT設(shè)備控制表反映設(shè)備的特性、設(shè)備和I/O控制器的連接情況。包括設(shè)備標(biāo)識、使用狀態(tài)和等待使用該設(shè)備的進(jìn)程隊(duì)列等。系統(tǒng)中每個(gè)設(shè)備都必須有一張DCT,且在系統(tǒng)生成時(shí)或在該設(shè)備連接時(shí)創(chuàng)建,但表中的內(nèi)容則根據(jù)系統(tǒng)執(zhí)行情況而被動態(tài)地修改。2003年9月28日741. 設(shè)備控制表DCT(續(xù))DCT包括以下內(nèi)容:(1)設(shè)備標(biāo)識
41、符;(2) 設(shè)備類型,反映設(shè)備特性,如塊設(shè)備、字符設(shè)備等。(3)設(shè)備地址或設(shè)備號,這個(gè)地址可以是和內(nèi)存統(tǒng)一編址的,也可以是單獨(dú)編址的。(4)設(shè)備狀態(tài),指設(shè)備是處理工作還是空閑。(5)等待隊(duì)列指針:等待使用設(shè)備的進(jìn)程隊(duì)列的隊(duì)首和隊(duì)尾指針。(6)I/O控制器指針,該指針指向該設(shè)備相連接的I/O控制器。2003年9月28日752. 系統(tǒng)設(shè)備表SDT系統(tǒng)設(shè)備表SDT整個(gè)系統(tǒng)一張,它記錄已被連接到系統(tǒng)中的所有物理設(shè)備的情況,并為每個(gè)物理設(shè)備設(shè)一表項(xiàng)。SDT包括:(1)DCT指針,該指針指向有關(guān)設(shè)備的設(shè)備控制表;(2)正在使用設(shè)備的進(jìn)程標(biāo)識;(3)設(shè)備類型和設(shè)備標(biāo)識符,該項(xiàng)的意義與DCT中的相同。2003
42、年9月28日763. 控制器表COCTCOCT也是每個(gè)控制器一張,它反映I/O控制器的使用狀態(tài)以及和通道的連接情況等。在DMA方式下,沒有控制器表。2003年9月28日774. 通道控制表CHCT該表只在通道控制方式的系統(tǒng)中存在,也是每個(gè)通道一張。CHCT包括:通道標(biāo)識符通道忙/空閑標(biāo)識等待通道的進(jìn)程隊(duì)列指針2003年9月28日78數(shù)據(jù)結(jié)構(gòu)表設(shè)備類型設(shè)備標(biāo)識設(shè)備忙/閑標(biāo)記COCT指針控制器等待隊(duì)列首控制器等待隊(duì)列尾通道標(biāo)識通道忙/閑標(biāo)記通道等待隊(duì)列首控制器等待隊(duì)列尾控制器標(biāo)識控制器忙/閑標(biāo)記CHCT指針控制器等待隊(duì)列首控制器等待隊(duì)列尾設(shè)備類型設(shè)備標(biāo)識獲得設(shè)備的進(jìn)程DCT指針表目1表目iSDTD
43、CTCOCTCHCT2003年9月28日799.5.2 設(shè)備分配的原則設(shè)備分配的總原則:既要充分發(fā)揮設(shè)備的效率,盡可能的讓設(shè)備忙,但又要避免由于不合理的分配方法造成進(jìn)程死鎖;把用戶程序和具體物理設(shè)備隔離開來,即用戶程序面對的是邏輯設(shè)備,而分配程序在系統(tǒng)把邏輯設(shè)備轉(zhuǎn)換成物理設(shè)備之后,再根據(jù)要求的物理設(shè)備號進(jìn)行分配。2003年9月28日80設(shè)備分配的方式靜態(tài)分配:在用戶程序開始執(zhí)行前,由系統(tǒng)一次分配該作業(yè)所需的全部設(shè)備、控制器和通道。動態(tài)分配:在進(jìn)程執(zhí)行過程中根據(jù)執(zhí)行需要進(jìn)行分配。當(dāng)進(jìn)程需要設(shè)備時(shí),通過系統(tǒng)調(diào)用命令向系統(tǒng)提出設(shè)備請求,由系統(tǒng)按照事先規(guī)定的策略給進(jìn)程分配所需要的設(shè)備、I/O控制器和通
44、道,一旦用完后,立即釋放。動態(tài)分配方式有利于提高設(shè)備利用率,但如果分配算法不當(dāng),會造成進(jìn)程死鎖。2003年9月28日81設(shè)備分配策略(1)先請求先分配(2)優(yōu)先級高者分配設(shè)備分配算法流程(見課本)2003年9月28日829.6 I/O進(jìn)程控制I/O控制:從用戶進(jìn)程的輸入輸出請求開始,給用戶進(jìn)程分配設(shè)備和啟動有關(guān)設(shè)備進(jìn)行I/O操作,以及在I/O操作完成之后響應(yīng)中斷,進(jìn)行善后處理為止的整個(gè)系統(tǒng)控制過程稱為I/O控制。2003年9月28日839.6.2 I/O控制的功能中斷原因分析喚醒中斷處理程序外設(shè)中斷請求中斷響應(yīng)I/O請求處理緩沖區(qū)管理用戶進(jìn)程I/O請求啟動I/O指令、設(shè)備驅(qū)動程序或通道程序設(shè)備分配程序2003年9月28日849.6.2 I/O控制的功能I/O請求處理是用戶進(jìn)程和設(shè)備管理程序接口的一部分,它把用戶進(jìn)程的I/O請求變換為設(shè)備管理程序所能接受的信息。用戶的I/O請求通常包括:所申請進(jìn)行I/O操作的邏輯設(shè)備名要求的操作傳送數(shù)據(jù)的長度起始地址。2003年9月28日85I/O請求處理模塊I/O處理模塊對用戶的I/O請求進(jìn)行處理:首先將I/O請求中的邏輯名轉(zhuǎn)換為對應(yīng)的物理設(shè)備名;檢查I/O請求命令中是否有參數(shù)錯誤;如果
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 農(nóng)村土地買賣合同范本
- 農(nóng)村建筑施工合同范本
- 買賣冬蟲夏草合同范本
- 勘界測繪合同范例
- 再婚買房合同范本
- 個(gè)體簡易合同范本
- 包工安裝護(hù)欄合同范本
- 單位銷售崗位勞動合同范本
- 俱樂部裝修合同范本
- 養(yǎng)殖合作建設(shè)合同范本
- 智慧生活:AI與智能家居-揭秘未來智能化生活趨勢
- 大單元教學(xué)設(shè)計(jì)基本步驟
- 消渴癥護(hù)理查房
- 二手中型、重型載貨車鑒定評估技術(shù)規(guī)范
- DB11T 2120-2023 古建筑安全防范技術(shù)規(guī)范
- 工業(yè)自動化控制系統(tǒng)設(shè)計(jì)與實(shí)施規(guī)范
- 2023年銀行安全保衛(wèi)考試真題模擬匯編(共392題)
- 2024版2024年.旋轉(zhuǎn)課件 公開課一等獎?wù)n件
- DB34T 4627-2023 人民防空工程防護(hù)質(zhì)量檢測技術(shù)規(guī)程
- 2024年農(nóng)商銀行筆試真題
- T-CSPSTC 110-2022 水工混凝土墩墻裂縫防治技術(shù)規(guī)程
評論
0/150
提交評論