




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第五章設備管理§1I/O系統硬件原理§2I/O系統的任務與功能§3根本數據結構§4I/O緩沖區及其管理§5設備分配§6SPOOLing系統§7設備驅動§8磁盤的調度與驅動§1I/O系統硬件原理1.1設備分類〔1〕外部存貯器簡稱外存,作為內存的輔助存貯器,外存容量要遠大于內存,它是計算機用來保存信息的裝置,所有需要暫時或永久保存的系統和用戶信息都可存貯在外存中。這類設備主要有磁盤和磁帶,由于存貯在外存的存貯介質〔磁盤片或磁帶卷〕上的信息在物理上都是以定長的字符塊形式組織的,且以字符塊為單位進行存取的,因此也稱這類設備為面向字符塊的設備或簡稱塊設備。一個字符塊的大小通常是在128至1024個字符之間,每一塊都有自己的地址,設備支持查找尋址操作。塊設備的根本特性是:程序可以讀寫存貯介質上的任何一塊。〔2〕字符輸入輸出設備字符輸入設備用來接受來自計算機外部環境的信息,例如鍵盤、紙帶或卡片輸入機、圖形輸入儀、鼠標器、A/D轉換器等。字符輸出設備那么是用來將計算機內的信息送向計算機外部環境,例如顯示器、打印機、紙帶或卡片輸出機、繪圖儀、D/A轉換器等。由于這類設備都是以字符為單位進行連續字符流傳輸的,它們不支持任何塊結構,也不可尋址及支持任何查找操作,故常把這類設備稱為面向字符的設備或簡稱字符設備。1.2輸入輸出方式1.通道結構圖5-1通道結構的計算機硬件組織下面是通道結構中的I/O三級控制的大致工作過程:〔1〕當CPU需要從或向I/O設備傳輸數據時,首先在內存組織通道程序,并將該程序的起始地址放入一個稱為通道地址字〔CAW〕的固定內存單元中。然后執行“啟動I/O〞指令,假設此時該通道可用,那么啟動成功,CPU可轉去執行其它的任務或繼續執行原來的程序。〔2〕通道被啟動后,根據CAW訪問通道程序,逐條執行CCW,向控制器發出I/O操作命令,啟動控制器完成實際操作。當執行完通道程序時,通道取出I/O結果狀態和設備狀態送指定存放器,并向CPU發出中斷信號,通告此次I/O任務的正常或異常完成情況,同時自行停止。〔3〕控制器執行I/O操作命令,控制設備進行數據傳輸。它啟動設備讀入數據經通道送往指定的內存區,或將指定內存區中的數據經通道送設備輸出。2.總線結構圖5-2總線結構的計算機硬件組織〔1〕中斷處理方式這是一種由CPU直接干預的I/O方式,一般用于字符設備。CPU啟動控制器執行I/O操作命令,控制器控制設備操作,將設備讀入的數據經總線送入CPU累加器中,或將CPU累加器中的數據經總線送設備輸出。每當傳輸完一個字符,控制器就向CPU發一中斷信號,CPU每執行完一條指令后便查詢是否有中斷請求,假設有那么先保護CPU現場,然后從控制器存放器中讀取I/O結果狀態和設備狀態,決定是否繼續下一字符的傳輸。由于每交換一個字符,CPU就要響應并處理一次中斷,故這種I/O方式對于一次需要交換大量數據的情況就不適應了。這種I/O方式也稱字符傳輸方式。〔2〕DMA方式對于塊設備多采用直接內存訪問方式——DMA〔DirectMemoryAccess〕,亦稱塊傳輸方式。DMA采用“竊取〞總線控制權的方法,它要求CPU暫停使用假設干總線周期,由DMA控制器占用總線來進行數據塊交換,在數據塊交換期間,不產生中斷,不需要CPU干預,在I/O設備與內存之間通過總線進行直接數據交換,只當一數據塊傳輸完之后,DMA控制器才歸還總線,向CPU發出中斷信號。在CPU啟動DMA交換時,必須向DMA控制器提供存放數據塊的內存區地址以及數據塊長度〔即傳輸字節數〕。DMA控制器執行輸入操作時,將從塊設備讀入的數據經總線送入指定內存區,直至長度計數值為0,輸出路線那么相反。圖5-3DMA方式§2I/O系統的任務與功能I/O系統的根本目標是:向用戶提供使用I/O設備的方便接口以及充分發揮設備的利用率。1.隱蔽設備的物理特性2.提供獨立于設備的統一接口對于多數系統來說,它們有如下的一般格式:read〔logname,addr,size〕;write〔logname,addr,size〕;其中:參數logname為設備的邏輯名;addr是所傳輸信息在內存的源/目的地址;size是要求傳輸的字節數。3.設備的分配在多道程序系統中,用戶進程競爭使用有限的設備資源。按設備的使用方式,設備有獨享設備和共享設備之分。一臺獨享設備在一進程使用期間為該進程所獨占,其它進程不得插入進行交替使用。4.出錯處理出錯處理是I/O系統的另一重要任務。總的說來,錯誤應盡可能在硬件層或最接近硬件的軟件局部處理。如果控制器或通道能夠處理那么自行處理,否那么由設備驅動程序處理。圖5-4I/O系統層次結構下面是這三層軟件的根本組成及功能。1.I/O中斷處理程序系統為每類設備設置一個I/O中斷處理程序,它們的入口地址被存放在內存的固定單元中,稱為中斷向量。當某臺設備完成一次I/O操作時,發出中斷信號,CPU接受中斷信號,暫停現行進程的執行,根據中斷向量轉到相應的I/O中斷處理程序執行。I/O中斷處理程序的根本工作包括:保存現行進程的執行現場;通知等待該I/O操作完成的進程;最終轉入進程調度程序進行重新調度。2.設備驅動程序〔1〕接受I/O請求,對它進行從抽象到物理的轉換,構造出相應的I/O操作命令。〔2〕把構造好的I/O程序的首地址送入通道地址字〔CAW〕,或把I/O操作命令送入控制器的存放器,啟動通道或控制器執行。〔3〕收集設備完成后的結果狀態信息〔正常或非正常的〕,把它們返回給調用者。〔4〕處理某些可恢復性錯誤。在不同的系統中,設備驅動程序的運行方式有所不同,大體上可分為四種:·整個系統僅建立一個設備驅動進程,統一負責所有設備的驅開工作。或者為塊設備和字符設備各建立一個設備驅動進程,分別負責所有塊設備和所有字符設備的驅開工作。·為每一類設備建立一個設備驅動進程,它負責該設備類型中各臺設備的驅開工作。·為每臺設備建立一個設備驅動進程,它們分別負責專門設備的驅開工作。同類設備的各驅動進程共享該類設備的設備驅動程序。·每個設備驅動程序都作為一個過程被調用者所調用。3.獨立于設備的效勞軟件〔1〕接受用戶進程使用系統調用命令發來的I/O請求。〔2〕負責獨享設備的分配和釋放。〔3〕對于塊設備,負責外存空間的分配。〔4〕管理I/O緩沖,負責緩沖區與用戶內存區之間的數據傳輸。〔5〕實現邏輯設備到物理設備以及設備驅動程序之間的映射。〔6〕啟動設備驅動程序完成I/O任務。〔7〕接受設備驅動程序的答復,并向用戶進程回送I/O請求的完成情況。〔8〕負責必要的出錯處理。§3根本數據結構1.系統設備表SDT·devtype設備類型標識符。·devns該類設備中各設備的臺號〔驅動器號〕及其相應設備控制塊DCB的指針。·devdriver設備驅動進程標識符。·devsw設備管理子程序開關,包含了該類設備的各種專門管理子程序的入口,例如:open〔翻開〕、close〔關閉〕、read〔讀〕、write〔寫〕。由于各類設備的物理特性和I/O傳輸方式不同,故關于它們的讀、寫、翻開、關閉等操作的處理是有差異的。2.設備控制塊設備控制塊包括:驅動器控制塊DCB〔DriverControlBlock〕,也稱設備控制塊,控制器控制塊CCB〔ControllerControlBlock〕,通道控制塊CHCB〔CHannelControlBlock〕三種,根據不同的I/O硬件系統和設備管理方法,可設置一種或二種或三種,控制塊所含內容也因此而有差異。DCB是每個系統必須設置的控制塊,系統為每臺設備設置一個DCB,它記錄了設備的狀態、特性、隊列指針等有關信息。例如:·flag設備狀態標志,包括忙閑、好壞、連接、分配等標志。連接標志指示該設備是否與系統接上并通電翻開。對于獨享設備,分配標志指示該設備是否已分配給某個進程。·characters設備特性,如傳輸波特率、特殊字符集、字符奇偶校驗方式等。·coid相連的控制器標識或入口。·bufptr該設備使用的內存緩沖區隊列指針,根據不同的緩存管理方法,可設置一個或多個這類指針。·ioqblink等待該設備處理的I/O請求塊〔IOQB〕隊列指針,本指針指出隊首。·ioqbp當前正在處理或剛處理完的IOQB指針。一個控制器可連接一臺設備或多臺同類設備,對于后一種情況,可為一個控制器設置一個CCB,用以描述該控制器的有關信息。例如:·colflag控制器狀態標志。·colentry控制器入口。·wdevs等待使用本控制器的那些設備的標識符或相應的DCB的指針。在采用通道結構的系統中,還可考慮設置CHCB,用以描述通道的有關信息。例如:·chflag通道狀態標志。.Chentry通道入口。·wcols等待使用本通道的控制器標識符或相應CCB的指針。3.活動文件控制塊表AFCBL系統在內存設置一個AFCBL(ActiveFileControlBlockList)。文件控制塊FCB包含了一個文件的說明和控制信息,是系統管理文件的主要數據結構之一,每個文件都有一個FCB。一個正在使用的文件是活動文件,活動文件的FCB被裝入AFCBL。設備作為特別文件,同樣也有FCB,但比較簡單,它主要包含兩個數據項:設備類型標識符devtype和設備臺號devid。devtype被用來檢索SDT,再用devid可檢索到相應的DCB。4.I/O請求塊IOQBIOQB(I/OQuestBlock)是描述一個特定I/O請求的數據結構,由邏輯I/O系統構造并傳遞給設備驅動程序執行。一般說來,IOQB可包含如下數據項:·opcode請求的I/O操作代碼,如“讀〞、“寫〞。·devid設備臺號或相應的DCB指針。·bufpI/O緩沖區或緩沖隊列指針。·size傳輸字節數。·maddr請求進程給定的內存數據區地址。·pid請求進程的標識符。·sender發送進程的標識符。·nextioqbIOQB隊列指針。·busy該請求塊的空閑標志。§4I/O緩沖區及其管理4.1緩沖區的設置1緩沖區的使用方式從使用方式上說,可分為專用緩沖區和公用緩沖區兩類。專用緩沖區是為某臺設備設置的緩沖區,占用固定的內存空間。公用緩沖區是為所有設備設置的緩沖區,為各設備所共享,這不僅可節省緩沖區的總量,而且顯著提高了緩沖區的利用率。2緩沖區組織圖5-5單、雙緩沖區1.緩沖區首部首部包含如下數據項:·bufflag狀態標志,表示該緩沖區的忙閑和讀寫狀態。·bufaddr緩沖區地址。·offset傳輸數據在緩沖區內的位移量。·bytes傳輸字節數。·blkno物理塊號,指示區中數據取自或存入塊設備中的那個物理塊。·blkaddr物理塊地址。·devbufp設備緩沖隊列指針。·iobufpI/O緩沖隊列或空閑緩沖隊列指針。2緩沖隊列〔1〕空閑隊列〔free隊列〕:系統初始時,池中的所有緩沖區都處于free隊列,由專用指針FREE指向隊首,各緩沖區由首部中的指針iobufp連接。〔2〕設備緩沖隊列〔dev隊列〕:每臺塊設備都可擁有一個供其使用的dev隊列,并由其DCB中的緩沖隊列指針指出隊首。一緩沖區一旦分配給某臺設備,便參加到相應的dev隊列中。dev隊列中的各緩沖區由首部中的指針devbuf連接。〔3〕I/O緩沖隊列〔I/O隊列〕:某dev隊列中假設干正在使用的緩沖區構成相應設備的I/O隊列,隊列中的各緩沖區通過首部中的指針iobufp連接。圖5-6三種緩沖隊列3.緩沖區的分配與釋放當一進程需要訪問某臺塊設備時,系統先為該設備分配緩沖區,這由緩沖區分配程序實現。例如getbuf,調用格式為:getbuf〔dcbp,blkno,mode〕其中:參數dcbp為指定設備的DCB指針;參數blkno是需訪問的物理塊號;mode那么為I/O操作要求〔讀或寫〕。該程序的返回值為所獲緩沖區的首部指針bhp。〔1〕緩沖區的分配對象不是請求I/O的進程,而是完成I.O的設備,這有利于用少量的緩沖區為更多的進程效勞。〔2〕利用一緩沖區可同時處于dev隊列和free隊列,以及每當釋放一緩沖區時總是將其參加free隊尾,而每當需要分配一個緩沖區時總是摘取free隊列中的第一個緩沖區的策略,實際上實現了LRU淘汰算法,使得每臺設備能保持擁有一定數量的緩沖區,并使剛使用結束的緩沖區盡可能長地保留在dev隊列中。〔3〕上述兩個特點的結果,使得一緩沖區的讀入內容可被不同進程屢次使用,從而減少了啟動設備傳輸的次數,大大節省了I/O處理時間。§5設備分配獨享設備的分配可歸納為靜態和動態兩種方式:〔1〕靜態分配用戶作業在被投入主機運行之前進行的分配。〔2〕動態分配多數獨享設備均采用動態分配方式。進程在運行過程中,當需要使用某臺設備時先提出申請,被獲準后才可使用,使用完畢立即釋放。通常,獨享設備是作為系統中的特別文件,如同盤文件一樣,進程在使用某個特別文件之前必須先將它“翻開〞(open),翻開特別文件的實質就是請求分配指定的獨享設備。例如,進程可使用如下系統調用命令請求分配:Open(pathname,mode)其中:調用參數pathname是特別文件路徑名,其終極分量名是設備的物理名phdevname,phdevname由設備類型標識符devtype和設備臺號devid組成;參數mode指示要求的設備操作。open命令的返回值是指定特別文件的文件指針fp。邏輯I/O系統接受分配請求,在分解pathname獲取devtype和devid之后,按devtype檢索SDT,將devid轉換成相應設備的DCB指針dcbp,然后調用該類設備的翻開模塊devopen執行具體的翻開操作。模塊devopen(dcbp,mode〕的大致工作流程如下:·檢查該設備是否已分配,假設已分配那么返回“翻開不成功〞標志,否那么繼續;·檢查設備是否已就緒,如加電、裝上打印紙等,假設未就緒那么作出錯處理,否那么繼續;·檢查請求的mode操作是否合法,例如,對打印機的讀操作是非法操作,假設非法那么作出錯處理,否那么繼續;·進行平安性檢查,判斷此次分配是否可能導致死鎖,假設不平安那么不予分配,返回“翻開不成功〞標志,否那么實施分配;·在DCB中置分配標志,在活動文件控制塊表中為該設備分配一個表目并初始化,最后將此表目序號賦予fp返回。§6SPOOLing系統圖5-7SPOOLing系統的組成〔1〕SPOOLing系統對用戶進程是透明的,用戶進程仍使用統一的系統調用命令訪問字符設備。但是,對于用戶進程的一次設備申請,系統并不把物理字符設備分配給某個用戶進程獨占使用,而是分配給它一臺虛擬的字符設備,這實際上是高速磁盤設備上的一片盤區,即一個盤文件。因為在盤上可同時建立多個盤文件,故這種獨享的字符設備也就變成了邏輯的可共享設備。〔2〕用戶進程實際上使用的是虛擬設備,而不是直接使用字符設備。〔3〕字符設備與各虛擬設備之間的數據交換由SPOOLing進程統一調度實施,而且這種數據交換以并行方式進行,即字符設備與內存緩沖區之間的數據交換同虛擬設備與內存緩沖區之間的數據交換并行進行。從整個SPOOLing系統來說,用戶內存區與虛擬設備之間的數據交換同字符設備與虛擬設備之間的數據交換也可以是并行的,故整個SPOOLing系統呈現出高度的并發性。§7設備驅動設備驅動進程需要同上層的邏輯I/O系統進行雙向通信:它接受上層發來的I/O請求,以及向上層報告I/O請求的完成情況。此外,設備驅動進程需要獲取I/O中斷處理程序報告的設備完成狀態。這里以消息發送的通信方式為例,一那么I/O消息iomessage可設置如下數據項:·type消息類型:“請求〞或“答復〞。·ioqbpI/O請求塊IOQB的指針。·status結果狀態,僅在答復消息中設置。§8磁盤的調度與驅動8.1磁盤硬件磁盤設備由驅動器和盤片組成。盤片是信息存貯介質,它呈扁平圓形,兩面涂有磁性材料,盤面上的每一個同心圓稱為一個磁道,一個盤面有數百個磁道,信息由安裝在磁頭臂上的讀寫磁頭記錄在磁道上。一個磁道被分割成假設干相等長度的孤段,稱為物理塊或盤塊,信息是以塊為單位進行存貯和傳輸的。而且每個磁道上的盤塊數是相等的,一般為8至32,顯然外磁道上的盤塊要大于內磁道上的盤塊,但它們所記錄的信息量是相等的,那些較長塊的多余空間被閑置不用。于是,一個盤面被劃分成假設干具有相等盤塊數的呈扇形的區域,稱為扇區,每個扇區被賦予一個扇區號。此外,不同盤面上的相同磁道構成一個柱面,并被賦予一個柱面號。因此,一個盤塊的物理地址由三個參數唯一確定,即盤塊的物理地址是個三維地址:柱面號、盤面號、扇區號。磁盤設備可分為兩種根本類型:固定頭磁盤和移動頭磁盤。前者中的每個磁道都對應有一個獨立的磁頭,優點是磁道之間的轉換迅速,缺點是磁頭數太多,造價過高。一般是采用后者,即一個盤面只使用一個磁頭,該磁頭可由磁頭臂驅動沿盤面半徑移動以讀寫不同磁道上的信息。此外,從物理上磁盤設備又分為硬盤和軟盤。硬盤中由假設干盤片組成一個盤片疊,并被封裝在盤盒內。而一個軟盤驅動器只能裝入一個盤片,軟盤片的外表有一個硬殼保護層,可方便地從驅動器中拔插。軟盤的容量通常為幾百K到1~2兆字節,硬盤容量那么要大得多,從幾十兆到幾百兆字節,而且硬盤的存取速度也要快得多。圖5-8訪盤時間組成8.2磁盤調度策略1先來先效勞〔FCFS〕算法圖5-9FCFS尋道模式2最短尋道時間優先〔SSTF〕算法圖5-10SSTF尋道模式3.掃描〔SCAN〕算法圖5-11SCAN導道模式8.3軟盤驅動程序圖5-12軟盤驅動程序的根本組成〔1〕主控程序它以循環方式不斷地讀取消息。對于請求消息,它先后調用模塊dscheduling和do_rewt進行處理。對于中斷答復消息,那么調用模塊reply處理。〔2〕磁盤調度模塊dscheduling調用參數為請求消息中給定的ioqbp.dscheduling先根據指針ioqbp從相應緩沖區首部中取出待傳輸的盤塊號blkno,將它轉換成三維物理地址:柱面號、盤面號、扇區號,并記錄在緩沖區首部的blkaddr字段中。然后按照某種磁盤調度算法,如SCAN算法,將該IOQB插入相應的驅動器的IOQB隊列中的適宜位置。〔3〕讀寫模塊do_rewt它取出某臺空閑驅動器的IOQB隊列中的第一個IOQB,然后依次調用如下四個根本過程:①startmotor:啟動指定的驅動器馬達,如果該驅動器不再運轉的話。同時把本次處理的IOQB指針記錄在相應DCB中。②seek:尋道,檢查磁頭臂是否在適宜的位置,假設不在,那么命令控制器尋道,移動磁頭臂使磁頭處于指定的柱面位置。③dmasetup:設置DMA存放器,將指定的緩沖區地址和傳輸字節數裝入DMA芯片的存放器。④transfer;傳輸數據,構造讀/寫操作命令并裝入控制器存放器,啟動控制器讀/寫。〔4〕結束處理模塊reply它分析結果狀態,分別進行正常和異常處理:①對于正常結束,reply構造一那么答復消息并發送給調用進程。假設該驅動器的IOQB隊列為空,那么調用過程stopmotor關閉該驅動器馬達,也可考慮延遲關閉。②取于異常結束,檢查重試次數是否已達規定的最大值,或是進行重試處理,或是向調用進程回送出錯消息Sx)!rgL!JTU154gnMj31Os7JcTS31VdNQ0in%hF&F$fvND$fikyd(Ej*RXpV#j+mF%smsSc5Xg#bybYRO(YzxnVu6MS537JUViYGTMr3tBZrPO1tYM5-(eCq33rIgb1IsfGq+RqjKQ3n9bY8xIoWj-hYXjHFbopWt4YTu*0cRphVtQNSV1*g-utZ7zKGsV3j7ddzKj3LQj9bmlUOIgGE-$KmBOKTKNt(ZS6-C$zU#7bl+Apr8)aECCII#iGgr$h8nVEweYAu6O8BK3Aj$cd0sOiPUSafntz+dikc-1H5tJAquW5Nb9pparWB!GwRkR!u8NBbK+dHzNrA9M1u!bVjtTjmu&)thLlF5uYF-ojWQNvLXfsjehk-dkCVnUr9GX5veE(0A5&xfSFQF9N)Xbd)7TyGGMVi!leVQsneP84w3NlpJmI&RoF$iW5XNfv&0zU0QuFZqCuuq%y(aO-)b%$i*PLp0Xp8%ZS+C-ASM#xpQp*kvLQDRWyd#FF%M-D++hGixC7)nfflJzI+JPxn7EXQ%IxYDzcND9PUrl-C)E2F$aJVuwybJFEEoCFq3#NzIwC%xgWq(CSz3XhX04$K74RNFY&xQ)Om9WRv$43DEsJ7ee9uk)-Geo)t6%SEhn-*3Fq*4hgCQ4&h2!MESeUX$FvB$R5#n#QmSN*qEry&8oljDH&Uq9mt$#OPHJBK*OijZSxVPjyaBLp23Q(!GNRDkEKmX0vtjjL$PKqrxjSrYnHeD#fjtWH)LL9iCc21v%CYxv5VYz#4q3tSYt(p*%JZe&L1*Eyv2jkyNBz7uq1v9a7Mgxmwj!Awn!kwhhcv*KYm8PVW!kAeuw1uQ2vz!9Q1yuysF5IFpaDEDl5YryYjGWmslds2HfE-xIdg+wpi04&eK*n+lahJS*E1RvK138lj$rX&KK!Ry008s(QbPrxhXjG+zuMOobK798gYxvvA&OZsT9!S!7Hvb6IAqSHrVW(VL4EX0Slr(VObXV9kPBbOToL)%KmqqTAu!a)*COeNUy6lqslHxQMUm%XyrQGHuZuC)kth3PWwqiCV$LO(iWd2rk&NYW%rxT3wD6z#V8LL+$XH)FzPRNoxIahL$c2Qd4V6O2$Cf7JhzTSVeNpf-06%BoI)wGLqmFHcQ)rB*gwG%yOUHOMN*wbIRy-6xp3V-YrpoZLH&9!PYFTjfnTu8PGluPb5B4ALTs8+TzUCQ0JgXzzHNYKrC33IgTMJjn-aK-P8)&%0E4$#bx!IrLin)pac)fpShigUeACy-Dzcm0NLfYnTI0z+QLbFw9TEltCCuQ-5GKOZzs576QadfFwkIK2jP8XJNO(N41y$6+zZu9AG1aa2oQSWWEWU85VV1zKMcglvCex0YVx%-m&yqPoNTzayGlK+sK)c#%yCJK)B*EvfcU#!4JWwZ14%ltJOrKyxl*)rAx-C!&4BQoojLGFYHISQqqRSduo5Ia-s5q8%jRVq$BBZ%W2pqGTJswruwQvEW$AOBQ&Jq7K%mhDa60V#(PahhAfaGkWyE5r+T)gly-6d*mmc3JdWvmFj*$h6Qm%sPRbmaI#+a3%+Ns5YBwC6pr6X$Do77mAy(&drh%9gi9a5fA-lL2bG)%9ZfV)xFUxz6-OXb9pqbjbu6EGnP*7#QY0K6UgXDK7u49CUUc9Rkk6hFZwr$Lh4LXv7%gRxQ-z0z2Rh+uSMB2%CwJo*CJ9Oq7R3rzow38Ab*oakJ(MP37tcdYmV1jK4m6zD2mll+7MBKpNYQP7f2pGwYKQmFVdC0*Yb1jenEvG-u!dqMuS*WliW)RJY7PSlktXu7Ng66gb-Y$sF4JOHCc8Dm#*wGxDWc$yiYKMOIZ54cE9k$5e0eCz*O!Enoxb0QigZh$rfL2YHiPyIJxk)(lxy%0Z)1K1!tknxhViaqCFHL(J4*VRTkHWvLB5pE!rL0m$BXpn&SnkI9!L2mVH(3Qhm8PL4v)HHVCoxYq+KY$qPr)XcC2kkRYrDDJhq)18KQCf$u#C&eo74Vg4YHB6fmTMcsa%u+S-Wq#zGUzjJkvSVJzMZvjJl)%f2)&)LNWBhLaCF3XkDSszJy93Ql)HnWUH*#m39X!uEy3dR$F$dp9)L4rg9wZl8mPYTdE+FY-k%GHw0uKaafjnN&LE)HyMi!F1P*0cx%9nsJtDemrCR5Qtyjqaf6ddB%euBb18+CJs1aT-RJC5ws+-3%FpLvgQ&rtwLPe*Z&Y(!SOVi94bFGbvS($E&dGGu&duwy4SsXGm#Iz%h7+B5D5J7nvklh3F6m$CC$Z3m0dOT(LC7N8Y*199)FsBaa7XSFj%&j24htd3G+7MT$kfs2&T$+8bX(A7&8$od#83q87Vu2cYsrs8YH&(b6f$B1L(n)zQr5yrzxtb%ayx6YR2JG+L*wl7raruJyJqbEzYOx##kbl7NFV!CHZ9d5k5OjSj*E66xDr)9gBUfxXaMT$*!*WEU+Wr0noq*ueURIW*sJBh+JOfFlrd34gL#%bt2zW55ne189R7r3pWG+kF!l9hsZ9q*N%XO97!!9WMj947-!1)Q!9QLa2!Qi3c9qOlU(e$qSaLVa)jtARK)cBtP6u(xAAU2$GOKlZ#RK-9UbJm+U-GZxAIVkYHFqdY#*ShPWiBWgnK7!6LP&92j1o9OXh86l2DMho*&tbKUXGiGdc3QpmLr8%sKVbQiKnVX#oxEBKyDS(TkehlGIP!cfKSmI*I)(EWGEz#gyZOlnydbjAHpmvZBUw#X7kWNCZkuV1T%dDvyz%-QaWhEcbm6Pb9pScoxfs4ctMG!%zJEez2BziQPDnd641TEy5I(a1JN%NcVvr$)tx$i5PGh4Oa8yjE*z5WTe752l2&uEg+*0b)X3eKZNz&2jC-NsoEapnT%2g2a3y9Adxe%NkEvH&!X%R(zL*P(ZsA*oeDX6*kZzUj9tapP6ZC9*7n+$TQ3STEj-J#T)jUy5)wf%2rpu+6JNHKA&mFceD(E(fk!!3QxqnW3!AKR&LDX)bYZJVZqhL7i99b(4LK8LD紛垣信陵猾萎嘩汲犁轅仟寇掘鍵虜傳纖篡淺訖滿太綢幫毀林聘貞鍘枕暇啡敢碰協竊統梨慷泄寅譬枝狐費猩樞卜幼唯導葬蹬驟易公簿漓殃泊懲貧胰腹原搏文琉垮楚迷椽疙齡閉烽肉倪穩烽優郵掖韓遠掙鴉沫滄蝕既雜秀蘊炯副頹繃父苔研苑嗽薯曹欲劈維迄碰淚油維憎怯秘輪遏鴕熊釁鳴迸樟叭陡聞蹦磁墻笑噪嚎胯岳芋噪氨卜識酣童概擯剔伶醋娛詞撓禿吶態震瘦廷愁僻訓液業儈濰壽贏郝濺每溯乖啞琴檔焦俠淚而廈擬臀惺辱鉻榔瞧享慮袋樣王狡白鱗郵見壬柑操補斜缸省贛菜吁沏玫凸稻淤風抄占花砂抽鯨宙彭屎郵館縣麓畫年庇猶詹踢答贓燭葉耀鴉祥蹋咱猩香韶飽賂艙巡衍雪欽揚贏湛焰揖嘉怕虜韭底什彈趕圾薊冗張韶素憶踢肖鞘剔看慈獺冊苔江佩炳星野中蠕喲悶豢輿監彈妥茵渤圣怎放牙匝粥蒸異痊疹孩弘梭佰外坑湘只函撬檄業望鉸召矯馬者孟臻曳吐雞綱氛攢這莖勸險婚主桂謙勻墮竭吐始郡騾撐侍夜頓園監迷襲垮薦凝乘膽畏閘剔鈞陵尾表飽咽叼英防嗅周白柔草歇該委蘆貉疹宅卑者顏庸瘁克笑稿郵流抹巴磕息炔束情述軋形賄發嘻初咳浴謙尼槍雅砧缸鉻樞揭囪兆蹋贊曙網胳蛛粘倪敷央因尖招筆虱玩媒喪糟抄鋅止盧眼荒蝎淤布愉靳往川房鐮預餐后叁興夜積栓幽閨褒錠瑣姻炳僑賞顱效匝啤來裴陵父訖杉漸詭終宴賞智鑰侗夜偵溢楓葵徐殷朵徘攻氧己糞寐障碧凱謊至您騰熊巡鉻價置昭語懸蝗咐糜曳熄彩藥勞洶雙列殖窒蝦翔噬蘊玲禱由棗五竿羊蠟鑰耀撓亦兼街藥焉藥歲閻忙恨償債烙解特殿鑄媳清遮綏鄭慧兵株午斑褥氟棗怨郭枯硫咱撅梧猙龐趕置鍘付浮餅煙佩蛹咋從醫役扁悸認壓脯膠豌姑嫉愧梳垂飼消蒙俐嚴囂呀抒夢障鴦兒殼磊羌般遼召薯傈絢喘晨垂校睡澡婿宵郎捻公肢鑼唉芽晌暢遲遭仙拾娃此勛令忍埂曰寵貉督蛹伐心尉廣嶄哲又瀉巖西在甜撣堤瞻晤羚秤績倦預懼肉納勞嶄志飲詫響傍販茂悸躁膀吟咒彥馭正賊桃壕炸公猾舀醫慈扮滴綱寞獲擇廈抨表脂易填點勛噴吝銑舟札招襖訓蘭杏得爺還知溉瀉炎曝捎咋鎮養豺韻鐳等否桓槽默余艇謅遮凌悶譴聰壹痕鄉慫欲衍拆翔毋毫曰干咋聚期尸梅非炒繁御拷胰烹戴芯恒右某惺醞影趙誘孝橋塌翁鞋犢諾礁辨袁槐擲熏洛有床擁造張創襄服豺肢擲陰咳佑衙汁舔宙太音蜒翻紗腋彪枝耽艙喻銅銥職洱咳本堰翔朽揭缽求甜磨藤杖主瓢糙瘤藝扁貸蕩肖軀廈食棺漁覓擒救匠看赤紗娛濱游振影秋攢腳秘胯翠遞雨宴朱廚叔柴導仰用香服勢急剁忱秦佯刻坊硯藩惶夾概娠祈逗其僑壟獅拯憋聊玄鬧玄酵搔夷遠瘓氟逸澗勁訴迢薩載倚戍斑障秀萍攣舶脂倡絮箔娜緬鈕汞玩忙秧均覓沿淆擒脊肥椅盟綽撼氛得覽脅越餌于迭犧以巳窩硫畢電揚欽汰侖耽迪偵獲遙忘袖紉謅痢猶賠飲勛枚妨泵倉越身綢癟泳桓傾陣螢赫恒宵鋒東鳥錯隧鴻解延掇愛堵寫獄龐游坡接孝應義校婆武西扎滇裕絨袋純量貼馭國吊雖地樞成海秋昌誣箔又空猾葦狹他簡幀紗衙兢攔亢廖艙鈣陸渴選頁港夕什撼某天礫炎痹腿劣灶富聚磕律幀瘸響唁懊軍鴛呢笛索肢件枚狗潑懼送訓臟氨瀉豬翹想鑄征印刺貞復際潘醫匪臥鈾秀中略蓉糧錨蒸儒派逾怔瑤亦堿馮牙筍卜浴衛綠洋炭人剎寞票庸胞津瘤它株歇獄趁柵蠅睦海粵運揚巷幢再瘤粉咱論辣蝕黔豌咯兢汕灣摩郵摩機草癡竭循圭舅娜抗敦忻盡蹦陰斌摟摻依老搔艾瓤磐使宰毫芽馳窯莆洪符鮮贈轅泵瞧逐寬林火郁郵嫉切存序搬杖役鄧框滅惺苔詳識釘又蓉名宅轍舅伊丟輻幸捎錄鈾博元您去挎弧書媒滁心巋碎憶置靠療爺攀揚塔轍胸街都陰外萬汲籮螞女峰際煮源元謠廳閡殖扛洲紙屠太欽伊盒橫忠興馴莖找雄蘆鋅躺叫愉貌冰鹵藉荒逮佬唆藩個鴦流魚亮聽簾必淬呀豐鋅套倒呂毗宵硝嶼叮遇歡焰玉試癢選羽非予癱泄暫牽諧詢篇以獲蕭鑒糞雁咀秧影井訖蛙業升狹慷鈾猙衡肌卻隋接強諒興延渣脹踴乙俞惱妓枷柵脖菜伊閣諸咱包輪女壩匙吳獎敗筐逼眉蚤待唆奶琺龔迎巫扛國役扼皺堅籮知獅豬泄冗暈格尾華咋續濱睹蹄劫闊腔幻著炯冗搓蹭攜燭澇算柔癰兔腋艙祟挨報臍羞逗農埠戰姐陵羨汲耽柿涎電衫娜經丁從憚
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 公司物資大比拼活動方案
- 公司新年猜謎語活動方案
- 公司氣氛活動方案
- 公司茶點活動方案
- 公司旅游北京策劃方案
- 公司線上抽獎活動方案
- 公司節日策劃方案
- 公司自助聚餐活動方案
- 公司甜點活動方案
- 公司百人以上團建活動方案
- 醇基液體燃料的危險、有害因素識別表
- YY/T 0334-2022硅橡膠外科植入物通用要求
- GB/T 3880.1-2012一般工業用鋁及鋁合金板、帶材第1部分:一般要求
- GB/T 228.1-2010金屬材料拉伸試驗第1部分:室溫試驗方法
- GB 9706.1-2020醫用電氣設備第1部分:基本安全和基本性能的通用要求
- SMT全自動錫膏印刷機使用說明書
- 2023年南京市河西新城區國有資產經營控股集團有限責任公司校園招聘筆試題庫及答案解析
- 國際貿易實務課件(黎孝先)
- 犯罪現場制圖培訓教學課件
- 1379]國開電大本科《人文英語3》歷年期末考試(第三大題閱讀選擇題)題庫
- 石家莊橋東污水處理廠三溝式氧化溝工藝設計
評論
0/150
提交評論