Linux設(shè)備管理課件_第1頁
Linux設(shè)備管理課件_第2頁
Linux設(shè)備管理課件_第3頁
Linux設(shè)備管理課件_第4頁
Linux設(shè)備管理課件_第5頁
已閱讀5頁,還剩35頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、第4講 Linux設(shè)備管理設(shè)備管理的目標(biāo)計(jì)算機(jī)的設(shè)備進(jìn)行管理有兩大目標(biāo):一是提高設(shè)備的利用率;二是方便用戶使用。 課程內(nèi)容:Linux設(shè)備管理分類Linux設(shè)備驅(qū)動(dòng)程序的接口Linux磁盤高速緩存管理Linux的字符設(shè)備緩沖區(qū)管理Linux的設(shè)備驅(qū)動(dòng)Linux系統(tǒng)I/O軟件層次結(jié)構(gòu)一、Linux中設(shè)備的分類與表示(1)字符設(shè)備 如鍵盤、鼠標(biāo)、顯示器、打印機(jī)等。通常用于輸入輸出,作為人和計(jì)算機(jī)之間的接口,信息的存取以字符為單位進(jìn)行。(2)塊設(shè)備 如磁盤、磁帶等,用于存儲(chǔ)信息,它對(duì)信息的存取控制是以信息塊為單位的。特別文件每個(gè)設(shè)備都有自己的設(shè)備名,用戶通過設(shè)備名來訪問具體物理設(shè)備,設(shè)備名存放在/d

2、ev目錄下。硬盤:/dev/hda, /dev/sda 軟盤:/dev/fd0 光盤:/dev/cdrom 鼠標(biāo):/dev/psaux(ps/2) /dev/input/mice(USB) 打印機(jī):/dev/lp 控制臺(tái):/dev/console網(wǎng)卡:/dev/eth0但是像塊設(shè)備磁盤、磁帶上的普通文件和目錄不是特殊文件。 二、Linux設(shè)備驅(qū)動(dòng)程序的接口 1、文件系統(tǒng)與設(shè)備驅(qū)動(dòng)程序的接口Linux系統(tǒng)中,用戶程序通過文件操作方式如打開、關(guān)閉、讀寫等來使用設(shè)備,由文件系統(tǒng)轉(zhuǎn)入設(shè)備驅(qū)動(dòng)程序。在Linux中系統(tǒng)提供塊設(shè)備開關(guān)表和字符設(shè)備開關(guān)表作為核心與設(shè)備驅(qū)動(dòng)程序之間的接口。每一種設(shè)備類型在表中占

3、用一個(gè)表目,包含若干數(shù)據(jù)項(xiàng),其中有一項(xiàng)為該類設(shè)備驅(qū)動(dòng)程序入口地址,在系統(tǒng)調(diào)用時(shí)引導(dǎo)核心轉(zhuǎn)向適當(dāng)?shù)尿?qū)動(dòng)程序接口。塊設(shè)備開關(guān)表 字符設(shè)備開關(guān)表 操作主設(shè)備號(hào)OpenClose Read Write0驅(qū)動(dòng)程序入口地址驅(qū)動(dòng)程序入口地址驅(qū)動(dòng)程序入口地址驅(qū)動(dòng)程序入口地址1驅(qū)動(dòng)程序入口地址驅(qū)動(dòng)程序入口地址驅(qū)動(dòng)程序入口地址驅(qū)動(dòng)程序入口地址 操作主設(shè)備號(hào)OpenClose Strategy(read/write)0驅(qū)動(dòng)程序入口地址驅(qū)動(dòng)程序入口地址驅(qū)動(dòng)程序入口地址1驅(qū)動(dòng)程序入口地址驅(qū)動(dòng)程序入口地址驅(qū)動(dòng)程序入口地址2、文件的系統(tǒng)調(diào)用過程 對(duì)設(shè)備特殊文件的系統(tǒng)調(diào)用,根據(jù)文件類型轉(zhuǎn)入塊設(shè)備開關(guān)表或字符開關(guān)表進(jìn)行打開、關(guān)

4、閉塊設(shè)備或字符設(shè)備的操作。 字符設(shè)備特殊文件的系統(tǒng)調(diào)用Read、Write轉(zhuǎn)向字符開關(guān)表中指示的設(shè)備驅(qū)動(dòng)程序,而對(duì)普通文件或目錄文件的Read、Write系統(tǒng)調(diào)用則通過高速緩沖模塊轉(zhuǎn)向設(shè)備驅(qū)動(dòng)模塊中的策略(Strategy)過程。文件系統(tǒng)對(duì)字符設(shè)備特殊文件的系統(tǒng)調(diào)用open close read write對(duì)塊設(shè)備文件的系統(tǒng)調(diào)用open close對(duì)普通文件的系統(tǒng)調(diào)用read write高速緩沖模塊字符設(shè)備開關(guān)表塊設(shè)備開關(guān)表字符設(shè)備塊設(shè)備中斷向量表open close read write字符設(shè)備驅(qū)動(dòng)程序設(shè)備中斷處理程序open close strategy 塊設(shè)備驅(qū)動(dòng)程序 設(shè)備中斷處理程序三

5、、Linux磁盤高速緩存管理1、磁盤高速緩存策略Linux磁盤緩沖管理策略試圖把盡可能多的有用數(shù)據(jù)保存在緩沖區(qū)中。 從磁盤中讀數(shù)據(jù)時(shí),文件系統(tǒng)先從磁盤高速緩存中讀,如果數(shù)據(jù)已在高速緩存中,則不必啟動(dòng)磁盤I/O,直接在高速緩存中讀??;如果數(shù)據(jù)不在高速緩存中,則啟動(dòng)磁盤時(shí)I/O,從磁盤讀取數(shù)據(jù)送往高速緩存,進(jìn)程再從高速緩存中讀取數(shù)據(jù)。Linux采取了“延遲寫”策略 。 2、磁盤緩沖區(qū)管理的數(shù)據(jù)結(jié)構(gòu) Linux使用多個(gè)內(nèi)存緩沖區(qū)進(jìn)行磁盤緩沖,為了合理有效地使用這些緩沖區(qū),設(shè)置了一定的數(shù)據(jù)結(jié)構(gòu)按照一定策略進(jìn)行管理。管理的依據(jù)是緩沖區(qū)的相關(guān)信息,為了能訪問這些信息,必須將其按一定的數(shù)據(jù)結(jié)構(gòu)進(jìn)行組織。 每

6、一個(gè)緩沖區(qū)建立“緩沖首部”來存放該緩沖區(qū)的相關(guān)信息 緩沖首部設(shè)備號(hào)dev設(shè)備緩沖區(qū)隊(duì)列后向指針b-back塊號(hào)blkno空閑緩沖區(qū)隊(duì)列前向指針Av-forw狀態(tài)flag空閑緩沖區(qū)隊(duì)列后向指針Av-back設(shè)備緩沖區(qū)隊(duì)列前向指針b-forw 忙標(biāo)志位BUSY:緩沖區(qū)當(dāng)前是否忙 有效位AVE:緩沖區(qū)包含的數(shù)據(jù)是否有效 延遲寫位DELWR:是否延遲寫 寫標(biāo)志位WRITE:是否正在把緩沖區(qū)的內(nèi)容寫到磁盤上 讀表示位READ:是否從磁盤往緩沖讀取信息 等待位WAIT:是否有一個(gè)進(jìn)程正在等待該緩沖區(qū)空閑緩沖區(qū)隊(duì)列(BUSY=0)Av-forwAv-backAv-forwAv-backAv-forwAv-b

7、ack設(shè)備緩沖區(qū)隊(duì)列(BUSY=1)b-forw b-backbv-forwbv-backb-forw b-back3、Linux磁盤緩沖區(qū)管理算法 高速緩沖區(qū)的分配 當(dāng)某進(jìn)程要從一個(gè)磁盤讀取數(shù)據(jù)時(shí),先檢查要讀取的磁盤塊是否包含在某個(gè)緩沖區(qū)中,如果不在,則從空閑緩沖區(qū)隊(duì)列中分配給它一個(gè)空閑緩沖區(qū);當(dāng)某進(jìn)程要將數(shù)據(jù)寫入磁盤時(shí),先看一下要寫的磁盤塊是否在某個(gè)緩沖區(qū),如果不在則為這個(gè)磁盤塊分配一個(gè)空閑緩沖區(qū)。被分配的空閑緩沖區(qū)從空閑緩沖區(qū)隊(duì)列中退出,進(jìn)入相應(yīng)設(shè)備的設(shè)備緩沖區(qū)隊(duì)列,該緩沖區(qū)的BUSY位置1。 當(dāng)緩沖區(qū)的信息讀到相應(yīng)進(jìn)程的內(nèi)存后,便釋放進(jìn)程使用的緩沖區(qū),將Flag中的BUSY位置0,送入

8、空閑緩沖區(qū)隊(duì)尾;同時(shí)也將置為延遲寫的緩沖區(qū)也送入空閑緩沖區(qū)隊(duì)列。這樣可以使有效的緩沖區(qū)得到充分利用,滿足多個(gè)并發(fā)進(jìn)程的需要。 當(dāng)一個(gè)緩沖區(qū)被送往空閑緩沖區(qū)隊(duì)尾時(shí),并不退出設(shè)備緩沖區(qū)隊(duì)列,而仍然留在原隊(duì)列中。這樣做的原因是,此次使用完畢送往空閑緩沖區(qū)隊(duì)列的緩沖區(qū),其保留的信息可能被再次訪問。如果將其保留在設(shè)備緩沖區(qū)隊(duì)列中,當(dāng)后來要讀取的磁盤數(shù)據(jù)塊仍然保留在此緩沖時(shí),可以直接從此緩沖區(qū)讀,而不必啟動(dòng)磁盤I/O,提高了讀盤速度,這正是使用磁盤高速緩存的目的。“延遲寫”緩沖區(qū)的處理 如果要將一個(gè)使用完畢送入空閑緩沖區(qū)隊(duì)列的緩沖區(qū)分配給其他設(shè)備,則可以將該緩沖同時(shí)從空閑緩沖區(qū)隊(duì)列和原設(shè)備緩沖區(qū)隊(duì)列中抽出

9、,送入新的設(shè)備緩沖區(qū)隊(duì)列。 因?yàn)楸皇褂眠^的緩沖區(qū)在空閑緩沖區(qū)隊(duì)列的末尾,隨著不斷地空閑緩沖區(qū)隊(duì)列上摘下緩沖區(qū),后面的緩沖區(qū)會(huì)不斷向隊(duì)首移動(dòng),如果一個(gè)延遲寫標(biāo)志位為1的緩沖區(qū)移到空閑緩沖區(qū)隊(duì)列的頭部,當(dāng)其被重新分配之前,要先把其內(nèi)容寫到相應(yīng)設(shè)備的指定的磁盤塊中。四、Linux字符設(shè)備緩沖區(qū)管理 (1)字符緩沖區(qū)及其隊(duì)列 Linux中為字符設(shè)備的數(shù)據(jù)傳輸設(shè)置了一個(gè)公用的字符緩沖池,該緩沖池內(nèi)含有若干個(gè)緩沖區(qū),但每個(gè)緩沖區(qū)很小,只含幾個(gè)或十幾個(gè)字節(jié)。為合理使用這些緩沖區(qū),將其組織成一定的數(shù)據(jù)結(jié)構(gòu)。同塊設(shè)備緩沖區(qū)的管理類似,建立空閑字符緩沖區(qū)隊(duì)列和設(shè)備字符緩沖區(qū)隊(duì)列。 字符緩存區(qū)數(shù)據(jù)結(jié)構(gòu) 首字符位置字

10、符緩沖區(qū)末字符位置指向下一字符緩沖區(qū)(2)空閑字符緩沖區(qū)的分配和回收 在一進(jìn)程用字符設(shè)備進(jìn)行I/O操作時(shí),文件系統(tǒng)為該字符設(shè)備分配一個(gè)空閑緩沖區(qū)。分配時(shí)要檢測(cè)空閑緩沖區(qū)隊(duì)列,當(dāng)隊(duì)列非空時(shí),從隊(duì)首取下一個(gè)空閑緩沖區(qū)分配該字符設(shè)備,送入該字符設(shè)備的字符緩沖區(qū)隊(duì)列,并把指向該緩沖區(qū)的指針返回給調(diào)用進(jìn)程;當(dāng)隊(duì)列為空時(shí),表明已經(jīng)沒有緩沖區(qū)可分配,則請(qǐng)求I/O操作的進(jìn)程被阻塞。當(dāng)字符緩沖區(qū)中的數(shù)據(jù)被提取完后,便釋放該緩沖區(qū),將該緩沖區(qū)送入空閑字符緩沖區(qū)隊(duì)列的首部。(空閑字符緩存區(qū)隊(duì)列其實(shí)是一個(gè)棧)若此時(shí)有因申請(qǐng)空緩沖區(qū)而阻塞的進(jìn)程,則將其喚醒。五、Linux的設(shè)備驅(qū)動(dòng) 設(shè)備驅(qū)動(dòng)是指控制具體的物理設(shè)備完成I

11、/O操作,與硬件的物理特性和數(shù)據(jù)傳輸控制方式密切相關(guān),不同類型的設(shè)備、不同數(shù)據(jù)傳輸控制方式要采用不同設(shè)備的驅(qū)動(dòng)方式。1、塊設(shè)備驅(qū)動(dòng)(1)數(shù)據(jù)結(jié)構(gòu) 塊設(shè)備表 I/O請(qǐng)求隊(duì)列(2)磁盤設(shè)備驅(qū)動(dòng)程序 打開硬盤 讀寫硬盤(1)塊設(shè)備驅(qū)動(dòng)的數(shù)據(jù)結(jié)構(gòu)塊設(shè)備表 對(duì)每一類塊設(shè)備,分別設(shè)置塊設(shè)備表,記錄該類設(shè)備的相關(guān)信息。其內(nèi)容包括:忙標(biāo)志:標(biāo)志設(shè)備的忙閑狀態(tài),0表示空閑,1表示正忙錯(cuò)誤次數(shù):指設(shè)備I/O出錯(cuò)次數(shù)設(shè)備緩沖區(qū)隊(duì)列頭指針:分配給設(shè)備的緩沖區(qū)隊(duì)列的頭指針設(shè)備緩沖區(qū)隊(duì)列尾指針:分配給設(shè)備的緩沖區(qū)隊(duì)列的尾指針I(yè)/O請(qǐng)求隊(duì)列頭指針:請(qǐng)求該類設(shè)備I/O操作的請(qǐng)求塊組成的隊(duì)列的頭指針I(yè)/O請(qǐng)求隊(duì)列尾指針:請(qǐng)求該

12、類設(shè)備I/O操作的請(qǐng)求塊組成的隊(duì)列的尾指針I(yè)/O請(qǐng)求隊(duì)列 用戶進(jìn)程的I/O請(qǐng)求包括要求完成I/O操作的邏輯設(shè)備名、要求的操作、輸送數(shù)據(jù)在內(nèi)存中的起始地址、傳送數(shù)據(jù)的長(zhǎng)度,將這些信息組織成I/O請(qǐng)求塊iorb。邏輯設(shè)備名相同(同一類設(shè)備)的I/O請(qǐng)求塊構(gòu)成一個(gè)隊(duì)列,稱為I/O請(qǐng)求隊(duì)列。每類設(shè)備分別有一個(gè)I/O請(qǐng)求隊(duì)列。 (2)磁盤驅(qū)動(dòng)程序 驅(qū)動(dòng)程序控制設(shè)備具體實(shí)現(xiàn)進(jìn)程的高級(jí)I/O請(qǐng)求包括打開、關(guān)閉、讀、寫等。打開。硬盤在使用之前必須進(jìn)行打開操作,其目的是在使用硬盤之前進(jìn)行必要的初始化設(shè)置硬盤的工作參數(shù)。硬盤的工作參數(shù)存放在主存中操作系統(tǒng)數(shù)據(jù)結(jié)構(gòu)硬盤控制塊中,它是驅(qū)動(dòng)程序?qū)τ脖P進(jìn)行控制的依據(jù)。硬盤

13、工作參數(shù)存放在硬盤的引導(dǎo)區(qū)中,因此要將引導(dǎo)區(qū)內(nèi)容讀到硬盤控制塊中。 為了讀寫硬盤引導(dǎo)區(qū),必須初啟硬盤,首先測(cè)試該設(shè)備是否就緒(通過測(cè)試設(shè)備控制器的設(shè)備狀態(tài)寄存器的ready位判斷),如果已就緒再測(cè)試該硬盤是否可用。設(shè)備不能使用的原因可能是沒有格式化或其它一些硬件故障,測(cè)試的方法是讀取該硬盤的首標(biāo),如果不能被正確讀出,說明硬盤不能使用,否則是可以使用的。如果是限定時(shí)間內(nèi)設(shè)備未就緒或經(jīng)測(cè)試不能使用,則設(shè)備初啟失敗。若初啟成功,便讀取硬盤引導(dǎo)區(qū),初始化硬盤控制塊。讀寫硬盤 由策略接口程序strategy完成,每次只讀寫一個(gè)扇區(qū)。Linux中對(duì)硬盤有兩種讀方式和三種寫方式。 一般讀:把當(dāng)前所需盤塊中的

14、內(nèi)容讀入緩沖區(qū)。 預(yù)先讀:進(jìn)程讀順序文件的盤塊時(shí),會(huì)預(yù)見到要讀的下一個(gè)盤塊,因此讀出當(dāng)前塊后可提前讀下一盤塊。 一般寫:把緩沖區(qū)數(shù)據(jù)寫到盤塊,且進(jìn)程必須等待寫操作完成。 異步寫:把緩沖區(qū)數(shù)據(jù)寫到盤塊,但進(jìn)程不必等待寫操作完成。 延遲寫:當(dāng)進(jìn)程要把數(shù)據(jù)寫到盤上時(shí),先寫到緩沖區(qū),然后將該緩沖區(qū)標(biāo)記為延遲寫,掛到空閑緩沖區(qū)隊(duì)列的末尾,但并不立即將該緩沖區(qū)的內(nèi)容寫到磁盤。硬盤讀寫驅(qū)動(dòng)過程將邏輯塊號(hào)轉(zhuǎn)換為物理塊號(hào);申請(qǐng)DMA;將物理塊號(hào)轉(zhuǎn)換為盤面號(hào)/柱面號(hào)/扇區(qū)號(hào);移動(dòng)磁頭到指定柱面;向硬盤控制器發(fā)送讀寫命令。 CPU發(fā)出讀寫命令后不必等待,而繼續(xù)執(zhí)行其他進(jìn)程。但傳輸結(jié)束后,硬盤控制器向CPU發(fā)送中斷信

15、號(hào),CPU響應(yīng)后轉(zhuǎn)入硬盤中斷處理程序。 硬盤中斷處理過程 檢測(cè)此次數(shù)據(jù)傳輸是否出錯(cuò),傳輸錯(cuò)誤記錄在硬盤控制器的狀態(tài)寄存器中,如果出錯(cuò),進(jìn)行錯(cuò)誤處理;由于磁盤讀寫一次只能傳輸一個(gè)扇區(qū),每傳輸一個(gè)扇區(qū)就中斷一次,而I/O讀寫請(qǐng)求緩沖區(qū)可能有大于一個(gè)扇區(qū)的數(shù)據(jù)要傳輸,因此每次傳輸結(jié)束,中斷處理程序要檢查I/O讀寫請(qǐng)求緩沖區(qū)內(nèi)是否還有數(shù)據(jù)傳輸,若有,則繼續(xù)傳輸余下的數(shù)據(jù),若沒有,說明一個(gè)緩沖區(qū)已經(jīng)傳輸完畢。若I/O讀寫請(qǐng)求緩沖區(qū)內(nèi)的數(shù)據(jù)全部傳輸完畢,則喚醒等待傳輸完成的進(jìn)程。 2、字符設(shè)備驅(qū)動(dòng) 字符設(shè)備的傳送用一組專用的寄存器來實(shí)現(xiàn)。每種字符設(shè)備的控制器一般都有3個(gè)寄存器:控制寄存器接收CPU發(fā)送來的

16、命令,控制設(shè)備的操作;狀態(tài)寄存器保存設(shè)備的狀態(tài);數(shù)據(jù)寄存器暫存要傳送的數(shù)據(jù)。(1)數(shù)據(jù)結(jié)構(gòu) 對(duì)每類字符設(shè)備分別建立字符設(shè)備表,記錄使用該類字符設(shè)備所需的各種信息。(2)終端驅(qū)動(dòng)程序 字符設(shè)備種類繁多,其驅(qū)動(dòng)程序各不相同,在這里以終端驅(qū)動(dòng)程序?yàn)槔齺碇v述Linux中字符設(shè)備驅(qū)動(dòng)程序的工作原理。 終端主要由鍵盤和顯示器構(gòu)成,終端驅(qū)動(dòng)程序控制終端設(shè)備和進(jìn)程之間的字符數(shù)據(jù)傳輸,包括以下5個(gè)操作: ttopen:打開終端機(jī),建立終端機(jī)和終端進(jìn)程之間的對(duì)應(yīng)關(guān)系。 ttclose:切斷終端機(jī)和終端進(jìn)程的聯(lián)系。 ioctl:用于對(duì)終端機(jī)的控制,例如狀態(tài)設(shè)置、測(cè)試、終端機(jī)屬性 值的更改等。 ttread:從終端鍵

17、盤讀入數(shù)據(jù)。 ttwrite:向終端顯示器寫數(shù)據(jù)。ttread過程 當(dāng)從鍵盤鍵入數(shù)據(jù)時(shí),終端中斷處理程序把鍵盤數(shù)據(jù)放入原始輸入緩沖隊(duì)列,同時(shí)送往輸出緩沖隊(duì)列,以便送到顯示器輸出,當(dāng)鍵入回車鍵時(shí),終端中斷處理程序,喚醒所有處于睡眠狀態(tài)的等待讀終端的進(jìn)程。當(dāng)一個(gè)讀終端的進(jìn)程執(zhí)行時(shí),由ttread調(diào)用行規(guī)則程序,從原始輸入緩沖隊(duì)列中依次取出字符,進(jìn)行必要的格式轉(zhuǎn)換后,放入標(biāo)準(zhǔn)輸入緩沖隊(duì)列,同時(shí),將輸出緩沖隊(duì)列中的字符送往顯示器顯示,然后把標(biāo)準(zhǔn)輸入緩沖隊(duì)列中的字符復(fù)制到應(yīng)用程序數(shù)據(jù)存儲(chǔ)區(qū)。如果當(dāng)前各原始輸入緩沖隊(duì)列中都沒有數(shù)據(jù),則ttread睡眠。ttwrite過程 對(duì)于ttwrite,它首先調(diào)用行規(guī)則程序,從應(yīng)用程序數(shù)據(jù)存儲(chǔ)區(qū)把輸出的數(shù)據(jù)送入輸出緩沖隊(duì)列,并對(duì)每個(gè)輸出字符進(jìn)行行規(guī)則處理。當(dāng)輸出緩沖隊(duì)列中的字符量大于某個(gè)上限時(shí),啟動(dòng)終端輸出數(shù)據(jù)并使寫進(jìn)程睡眠。輸出使得輸出緩沖隊(duì)列中的字符存量減少,當(dāng)輸出緩沖隊(duì)列中的字符量小于某個(gè)下限時(shí),喚醒有關(guān)睡眠進(jìn)程執(zhí)行寫操作。 行規(guī)則程序 行規(guī)則程序把數(shù)據(jù)按行(以回車為結(jié)束標(biāo)志)緩存起來,并按標(biāo)準(zhǔn)格式或原始格式傳送數(shù)據(jù)

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論