版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、操作系統(tǒng)原理課程設(shè)計實踐報告題目: P,V信號量-管程解決讀者寫者問題 (申優(yōu)) 姓 名: 樊鹿鳴,梁峰,寄偉杰 學(xué)院: 信息科技學(xué)院專業(yè): 計算機科學(xué)技術(shù)系 班級: 計科121,122學(xué)號: 19212226,19212229,19212127 指導(dǎo)教師: 姜海燕 職稱: 教授 2015年3月19日關(guān)鍵字:P,V信號量 管程 死鎖 讀者寫者問題1. 目的和意義在操作系統(tǒng)的進程管理中"進程之間的同步與互斥是一個非常重要的問題"由于進程是并發(fā)執(zhí)行的"這些進程之間存在著不同的相互制約關(guān)系"如果管理不恰當(dāng)"就會產(chǎn)生結(jié)果不確定或者進入死鎖,這也是是操作
2、系統(tǒng)原理學(xué)習(xí)中的重點與難點之一。比較有效的解決方法是使用信號量機制"它主要是通過兩個操作原語的使用"來保證進程之間的同步與互斥讀者(寫者問題是進程同步的一個經(jīng)典問題"原有的算法是一種讀者優(yōu)先的算法"容易造成寫者進程的餓死現(xiàn)象"對此作了改進,我們又引進了管程來解決讀者寫者問題2. 理論基礎(chǔ)操作系統(tǒng)內(nèi)部存在著許許多多的并發(fā)活動相對獨立的多個用戶進程可以并發(fā)運行操作系統(tǒng)本身的許多不同功能的進程也可并發(fā)執(zhí)行&在進程并發(fā)執(zhí)行時"由于資源共享和進程之間的合作"使處于同一系統(tǒng)中的進程之間可能產(chǎn)生兩種形式的制約關(guān)系"即直接
3、制約和間接制約,而這兩種關(guān)系"通常表現(xiàn)在兩類問題上同步和互斥。進程互斥它主要源于對臨界資源共享)多個進程競爭使用臨界資源時產(chǎn)生的關(guān)系"是進程間的間接制約關(guān)系在多道系統(tǒng)中)每次只允許一個進程訪問的資源如外設(shè)(共享代碼段(共享數(shù)據(jù)結(jié)構(gòu))為臨界資源) 每個進程中訪問臨界資源的那段程序叫臨界區(qū),進程互斥就是保證每次只有一個進程使用臨界資源, 這些使用臨界資源的進程在邏輯上完全獨立) 本無關(guān)系) 但是由于競爭同一臨界資源而產(chǎn)生了相互制約的關(guān)系"即一個進程使用臨界資源時"其他使用臨界資源的進程只能等待。進程同步(它主要源于相互協(xié)作的進程) 是多個進程相互合作共同完成
4、一項任務(wù)時發(fā)生的關(guān)系,是進程間的直接制約關(guān)系,相互合作的進程具有伙伴關(guān)系"為了保證執(zhí)行結(jié)果的正確性) 在執(zhí)行時間上必須遵循確定的規(guī)律,具體的說"一個進程運行到某一點時,要求另一伙伴進程為它提供消息"在未獲得消息之前"該進程處于等待狀態(tài)"獲得消息后被喚醒進入就緒態(tài)* 在多道環(huán)境下) 這種進程間在執(zhí)行次序上的協(xié)調(diào)是必不可少的, 為了能夠正確控制進程的并發(fā)執(zhí)行"操作系統(tǒng)必須提供相應(yīng)的同步機構(gòu)以協(xié)調(diào)這些制約關(guān)系,同步機構(gòu)的主要任務(wù)就是使并發(fā)執(zhí)行的進程之間能有效地共享資源和相互合作"從而使程序的執(zhí)行能夠有序的進行2.2讀者,寫者問題讀
5、者寫者問題(Readers-Writers problem)也是一個經(jīng)典的并發(fā)程序設(shè)計問題,是經(jīng)常出現(xiàn)的一種同步問題。計算機系統(tǒng)中的數(shù)據(jù)(文件、記錄)常被多個進程共享,但其中某些進程可能只要求讀數(shù)據(jù)(稱為讀者Reader);另一些進程則要求修改數(shù)據(jù)(稱為寫者Writer)。就共享數(shù)據(jù)而言,Reader和Writer是兩組并發(fā)進程共享一組數(shù)據(jù)區(qū),要求:(1)允許多個讀者同時執(zhí)行讀操作;(2)不允許讀者、寫者同時操作;(3)不允許多個寫者同時操作。Reader和Writer的同步問題分為讀者優(yōu)先、弱寫者優(yōu)先(公平競爭)和強寫者優(yōu)先三種情況,它們的處理方式不同。(1)讀者優(yōu)先。對于讀者優(yōu)先,應(yīng)滿足下
6、列條件:如果新讀者到:無讀者、寫者,新讀者可以讀;有寫者等待,但有其它讀者正在讀,則新讀者也可以讀;有寫者寫,新讀者等待。如果新寫者到:無讀者,新寫者可以寫;有讀者,新寫者等待;有其它寫者,新寫者等待2.3 P,V信號量信號量(semaphore)的數(shù)據(jù)結(jié)構(gòu)為一個值和一個指針,指針指向等待該信號量的下一個進程。信號量的值與相應(yīng)資源的使用情況有關(guān)。當(dāng)它的值大于0時,表示當(dāng)前可用資源的數(shù)量;當(dāng)它的值小于0時,其絕對值表示等待使用該資源的進程個數(shù)。注意,信號量的值僅能由PV操作來改變。 一般來說,信號量S>=0時,S表示可用資源的數(shù)量。執(zhí)行一次P操作意味著請求分配一個單位資源,因此S的值減1;
7、當(dāng)S<0時,表示已經(jīng)沒有可用資源,請求者必須等待別的進程釋放該類資源,它才能運行下去。而執(zhí)行一個V操作意味著釋放一個單位資源,因此S的值加1;若S=<0,表示有某些進程正在等待該資源,因此要喚醒一個等待狀態(tài)的進程,使之運行下去。2.4 管程信號量機制的引入解決了進程同步的描述問題,但信號量的大量同步操作分散在各個進程中不便于管理,還有可能導(dǎo)致系統(tǒng)死鎖。如:生產(chǎn)者消費者問題中將P、V顛倒可能死鎖。為此Dijkstra于1971年提出:把所有進程對某一種臨界資源的同步操作都集中起來,構(gòu)成一個所謂的秘書進程。凡要訪問該臨界資源的進程,都需先報告秘書,由秘書來實現(xiàn)諸進程對同一臨界資源的互斥
8、使用。Hansan為管程所下的定義是:管程定義了一個數(shù)據(jù)結(jié)構(gòu)和能為并發(fā)進程所執(zhí)行的一組操作,這組操作能同步進程和改變管程中的數(shù)據(jù)。管程的四個組成:1.管程內(nèi)部的共享變量;2管程內(nèi)部的條件變量3.管程內(nèi)部并行執(zhí)行的進程;4.對局部于管程內(nèi)部的共享數(shù)據(jù)設(shè)置初始值的語句。當(dāng)幾個進程調(diào)用某個管程的時候,在一個時刻僅允許一個進程進入管程。管程中僅允許一個進程處于活躍狀態(tài),但不表示管程中只有一個進程,可能存在因資源不足而阻塞的進程等。當(dāng)一個進程調(diào)用管程中的過程時,首先檢查管程中是否有進程處于活躍態(tài),如果有,則阻塞調(diào)用進程,直到管程內(nèi)部的進程離開管程或其他操作。管程的互斥操作是由管程內(nèi)部的互斥信號量實現(xiàn)的,
9、其初值為1。在管程中要設(shè)置一對同步操作原語,Wait()和Signal()操作,注意這里操作作用于條件變量,不具有累加功能,如果管程中的進程發(fā)出了一個信號量,而在對應(yīng)的條件變量上沒有阻塞等待的進程,則該信號量沒有作用,會被丟失。為了區(qū)別阻塞等待進程和不同阻塞對應(yīng),設(shè)置了不同條件變量。2.5 死鎖所謂死鎖: 是指兩個或兩個以上的進程在執(zhí)行過程中,由于競爭資源或者由于彼此通信而造成的一種阻塞的現(xiàn)象,若無外力作用,它們都將無法推進下去。此時稱系統(tǒng)處于死鎖狀態(tài)或系統(tǒng)產(chǎn)生了死鎖,這些永遠在互相等待的進程稱為死鎖進程。雖然進程在運行過程中,可能發(fā)生死鎖,但死鎖的發(fā)生也必須具備一定的條件,死鎖的發(fā)生必須具備
10、以下四個必要條件。1)互斥條件:指進程對所分配到的資源進行排它性使用,即在一段時間內(nèi)某資源只由一個進程占用。如果此時還有其它進程請求資源,則請求者只能等待,直至占有資源的進程用畢釋放。2)請求和保持條件:指進程已經(jīng)保持至少一個資源,但又提出了新的資源請求,而該資源已被其它進程占有,此時請求進程阻塞,但又對自己已獲得的其它資源保持不放。3)不剝奪條件:指進程已獲得的資源,在未使用完之前,不能被剝奪,只能在使用完時由自己釋放。4)環(huán)路等待條件:指在發(fā)生死鎖時,必然存在一個進程資源的環(huán)形鏈,即進程集合P0,P1,P2,···,Pn中的P0正在等待一個P1占用的資源;P1
11、正在等待P2占用的資源,Pn正在等待已被P0占用的資源。預(yù)防死鎖的方法:有序資源分配法,銀行家算法。3. 目的及意義1.通過編寫和調(diào)試程序以加深對并發(fā)進程管理方案的理解。2.呈現(xiàn)死鎖解鎖過程,方便同學(xué)理解學(xué)習(xí)3.實現(xiàn)讀者寫者問題,增加對p、v信號量和管程的理解。4. 設(shè)計思想及設(shè)計功能說明1.設(shè)計思想:讀者-寫者問題的讀寫操作限制(包括讀者優(yōu)先和寫者優(yōu)先)寫-寫互斥:不能有兩個寫者同時進行寫操作讀-寫互斥:不能同時有一個線程在讀,而另一個線程在寫。讀-讀允許:可以有一個或多個讀者在讀。讀者優(yōu)先的附加限制:如果讀者申請進行讀操作時已有另一個讀者正在進行讀操作,則該讀者可直接開始讀操作。 寫者優(yōu)先
12、的附加限制:如果一個讀者申請進行讀操作時已有另一個寫者在等待訪問共享資源,則該讀者必須等到?jīng)]有寫者處于等待狀態(tài)后才能開始讀操作。運行結(jié)果顯示要求:要求在每個線程創(chuàng)建、發(fā)出讀寫申請、開始讀寫操作和結(jié)束讀寫操作時分別顯示一行提示信息,以確定所有處理都遵守相應(yīng)的讀寫操作限制。死鎖解鎖與避免死鎖實現(xiàn)。 2.設(shè)計功能說明1. 文件讀入功能:從指定文件讀入程序所需要的信息2. 讀者優(yōu)先判斷功能:如果讀者申請進行讀操作時已有另一個讀者正在進行讀操作,則該讀者可直接開始讀操作。 3. 寫者優(yōu)先判斷功能:如果一個讀者申請進行讀操作時已有另一個寫者在等待訪問共享資源,則該讀者必須等到?jīng)]有寫者處于等待狀態(tài)后才能開始
13、讀操作。4. 界面設(shè)計:方便用戶操作軟件,及時向用戶反饋讀者寫者信息5. 鎖機制:通過程序展示進程的運行,方便同學(xué)們理解鎖產(chǎn)生的原因以及解決死鎖,預(yù)防死鎖的方法。5. 核心數(shù)據(jù)結(jié)構(gòu)說明 首先編寫臨界區(qū)資源,按照書上的說法,讀者寫者的數(shù)量是臨界區(qū)資源,我們定義了rcount=0,wcount=0,對讀者寫者 進行計數(shù)的變量,同樣設(shè)置rmutex=1,wmutex=1對rcount,wcount進行控制。還有我們用到了另外的兩個全局變量writeblock=1,readblock=0進行對讀者進程,寫者進程進行鎖操做。在讀者進程,與寫者進程的鎖操做中要進行進程的調(diào)度問題,其中有讀者進程的就緒隊列r
14、eadPList,有寫者進程的就緒隊列writePList,有進程進行調(diào)度算法中的阻塞隊列waitPList。C#中都以類為基準,所以在進程隊列中包括,入隊inList,出對outList,整理,等操作的函數(shù)。還有一些小的控制變量,allrcount=0,allwcout=0,對整個程序進行讀者進程創(chuàng)建個數(shù)進行計數(shù)。其中的類包括,進程類Process,進程隊列類ProcessList,windows窗體類PV/PV信號量的類,monitor/管程類,main/主界面類,block/同步鎖類以及一些表現(xiàn)類如text/讀者寫者窗體類,semaphore類/型號量的類,在這些類中包括自己的函數(shù)聲明。
15、屬性聲明。例如process中的如下:private int pcb; /pcb主要是對進程的一些描述信息private int psw; /0表示就緒態(tài),1表示運行態(tài),2表示private bool readOrWrite; /表示讀寫進程,用來控制進程的種類 如果是true就是讀否則就是寫private int time; /進程process存在的時間public process(int num,bool tf);/構(gòu)造函數(shù)public void rgo();/讀者操做的函數(shù)public void wgo();/寫者操做的函數(shù)public void P(semaphore s) publ
16、ic void V(semaphore s)public void enter(InterfaceModule IM);/進入管程的函數(shù)public void wait(semaphore x_sem,int x_count,InterfaceModule IM) ;public void signal(semaphore x_sem, int x_count, InterfaceModule IM) public void rwgo();/讀者寫者都進行的操做還有一些簡單的線程操做Thread t1 = new Thread(new ThreadStart(processonego);Thr
17、ead t2 = new Thread(new ThreadStart(processtwogo);t1.Start();t2.Start();6. 核心算法流程1. 寫者優(yōu)先原理圖:2. 讀者優(yōu)先原理圖:Y完成拍pp1P1執(zhí)行獲取s1拍pp1獲取s2拍pp1進程執(zhí)行拍pp1釋放占有資源,喚醒另一進程執(zhí)行拍pp1P2執(zhí)行拍pp1死鎖釋放占有資源拍pp1P1執(zhí)行拍pp1P2執(zhí)行拍pp1P1執(zhí)行拍pp1P2執(zhí)行拍pp1獲取s2拍pp1獲取s1拍pp1P1執(zhí)行拍pp1P2執(zhí)行拍pp1獲取s1拍pp1獲取s2拍pp1初始化臨界資源s1,s2設(shè)置進程p1,p2延時拍pp1初始化進程s1,s2拍pp1死鎖
18、解決算法拍pp1預(yù)防死鎖算法拍pp1YNN3. 鎖機制:7. 開發(fā)調(diào)試及運行環(huán)境開發(fā)調(diào)試:vs2013 ,編程語言為c#。 運行環(huán)境:windows8. 功能說明及測試數(shù)據(jù)分析1.1 P,V信號量模塊當(dāng)無讀者寫者時,允許多讀者讀文件。如圖在讀者框里有2個讀者的數(shù)量當(dāng)有讀者在讀文件時,寫者會被阻塞。如圖,讀者數(shù)量為2,等待寫者為2當(dāng)讀者進程執(zhí)行結(jié)束,寫者就可以執(zhí)行,寫者是可以修改文件的,如圖有其它寫者,新寫者等待當(dāng)有寫者時,讀者會被阻塞,如圖允許多讀者讀文件當(dāng)有讀者,不允許寫者寫文件有寫者,不允許讀1.3 死鎖模塊當(dāng)進程1和進程2每步的延遲比較接近時,易發(fā)生死鎖,如圖都是100ms,就發(fā)生了死鎖
19、進程1,2每步延遲較大,就不會發(fā)生死鎖。在解決死鎖的模塊里,由于進程采用不可剝奪式,所以不會發(fā)生死鎖說明書: 歡迎來到讀者寫者問題仿真軟件,我們的軟件分為3大模塊:PV信號量模塊,管程模塊,死鎖模塊。我們的軟件只要你的操作系統(tǒng)是win7以上的版本都可以運行。下面是軟件的具體使用說明書。首先,您來到的是我們軟件的主界面。如圖所示。在主界面你可以點擊鎖機制,PV信號量,管程機制,三個按鈕進入不同的模塊。你也可以點擊關(guān)閉按鈕,關(guān)閉軟件。接下來我們來介紹PV信號量模塊。首先,你要按打開文件按鈕打開一個文件,好便于讀者讀或者寫者寫操作。點擊一次申請閱讀按鈕,就會產(chǎn)生一個讀者進程,點擊一次申請修改,就會產(chǎn)
20、生一個寫者進程,他們的數(shù)量會在讀者數(shù)量寫者數(shù)量框中顯示。當(dāng)有進程被阻塞時,等待讀者或等待寫者框里的數(shù)字就會顯示,有多少進程被阻塞。如圖1.關(guān)閉一個窗口就代表這個進程結(jié)束了。在寫者進程時,我們可以對文件進行修改操作,如圖2.通過按按鈕,我們就可以模擬仿真讀者寫者問題。圖1圖2管程模塊,與PV信號量模塊類似在這就不在重復(fù)敘述,請參考PV操作流程。死鎖模塊。在這個我們分為2個小部分,可能死鎖部分和解決死鎖部分,在這兩個部分,你只需要設(shè)置每個進程的延遲時間,然后點擊可能死鎖程序開始,解決死鎖開始按鈕,程序就會自動進行,這是為了專門為教學(xué)準備的。請看圖示。本軟件的使用就是這樣,歡迎大家使用!9. 存在問
21、題1.不足與問題1).在整個實驗中我們的對管程的了解不是很到位,不清楚管程的內(nèi)部運行結(jié)構(gòu),不了解管程內(nèi)部的條件變量,這樣我們程序中對管程的部分還有待改善加強,做出正確的運行程序。2).在實驗中,還有很多的細節(jié)沒有注意到,還有很多的東西沒有抽象出來,例如時鐘,我們只是運用了系統(tǒng)的時鐘。并且在做課程設(shè)計的時候我們只是關(guān)注讀者寫者問題,側(cè)重點導(dǎo)致我們在對進程的調(diào)度問題進行了較少的代碼編寫。2優(yōu)點與設(shè)想1).每一個讀者寫者問題都在解決讀者優(yōu)先,或者寫者優(yōu)先的問題,而我們的程序正好取了二者的折中思想,這樣可以很好的解決,讀者優(yōu)先中的寫者饑餓問題,同時還能解決,寫者優(yōu)先中的讀者饑餓問題。如有讀讀寫讀讀寫寫
22、讀,這樣的情況,第一個讀者來了,第二讀者再來他們并發(fā)執(zhí)行,繼續(xù)讀,而寫者來了,將被阻塞,當(dāng)讀者讀完,喚醒寫者,寫者寫完,喚醒讀者,當(dāng)寫者寫完了也可能喚醒寫者,要看后面來的人是讀者還是寫者。從而解決兩個饑餓問題。2).是否可以將操作系統(tǒng)中的只是運用到軟件中,而不是簡單的做成老師講的書本上的東西,而是為了設(shè)計莫某一款軟件而其中運用到了這些知識,例如,可以做一個后臺服務(wù)器,就很好的運用了并發(fā)進程問題。并且在后臺服務(wù)器中處理來者訪問過程中,例如火車購票系統(tǒng)中,就要良好的解決類似讀者寫者問題這樣的只是,同樣大膽一點,可以用更多的語言去編寫,豐富自己的知識,就像老師說的可以做成系統(tǒng)軟件,同時也可以做成手機
23、APP,做成小游戲等等。10. 實踐體會及心得我們這次操作系統(tǒng)的課程設(shè)計題目是用P,V信號量-管程解決讀者寫者問題,看到組長來選這個課題的時候,我內(nèi)心有點小小的害怕,因為我在學(xué)習(xí)操作系統(tǒng)課程的時候,對同步互斥問題的那一章就有比較大的疑惑。不過既然已經(jīng)選擇,我也只能邁步前進。在期末我們組長給我分配的任務(wù)是寫軟件的界面。我是從來沒有寫過界面的,剛開始我比較茫然無措,腦袋一片空白??上胂脒@次課設(shè)是我們大家分工完成的,只有完成自己的任務(wù),最后才能做出成品。我就鼓勵自己去學(xué)習(xí),于是我就去向周圍有學(xué)習(xí)好的同學(xué)和學(xué)長去咨詢有關(guān)界面方面的知識,應(yīng)該用什么語言來寫界面,經(jīng)過我的了解,我知道了c#是一門好的比較簡
24、單的寫界面的一種語言,它在繼承C和C+強大功能的同時去掉了一些它們的復(fù)雜特性(例如沒有宏以及不允許多重繼承)。C#綜合了VB簡單的可視化操作和C+的高運行效率,以其強大的操作能力、優(yōu)雅的語法風(fēng)格、創(chuàng)新的語言特性和便捷的面向組件編程的支持成為.NET開發(fā)的首選語言。于是,我就在寒假里學(xué)習(xí)了c#語言,慢慢的開始了界面的編寫,最終完成了。在答辯的時候,老師說我做的界面與操作系統(tǒng)內(nèi)核關(guān)系不是那么緊密,于是組長又給我們分配了新的任務(wù),去讓我和另一個組員寫死鎖,而且要是自動的,可以以后拿來教學(xué)的,我們又苦思冥想,就想到了用2個進程來模擬仿真死鎖問題,給不同的進程每一步執(zhí)行的時間不同。來讓他們搶占資源的順序
25、和占用資源的時間不同,這樣就可以有可能發(fā)生死鎖。我們會讓設(shè)計一個循環(huán),如果發(fā)生死鎖的話,超過10秒的話,就讓進程自動釋放資源,繼續(xù)執(zhí)行進程。而解決死鎖,我們想一個簡單的方法,讓一個進程直接占用資源,不可被其他進程剝奪,這樣就不會發(fā)生死鎖了,這就是我們做的死鎖部分。我認為,在這次課程設(shè)計中,不僅培養(yǎng)了獨立思考、動手操作的能力,在各種其它能力上也都有了提高。更重要的是,在課設(shè)上,我們學(xué)會了很多學(xué)習(xí)的方法。而這是以后最實用的,真的是受益匪淺。要面對社會的挑戰(zhàn),只有不斷的學(xué)習(xí)、實踐,再學(xué)習(xí)、再實踐。這對于我們的將來也有很大的幫助?;仡櫰鸫苏n程設(shè)計,至今我仍感慨頗多,從理論到實踐,在這段日子里,可以說得
26、是苦多于甜,但是可以學(xué)到很多很多的東西,同時不僅可以鞏固了以前所學(xué)過的知識,而且學(xué)到了很多在書本上所沒有學(xué)到過的知識。通過這次課程設(shè)計使我懂得了理論與實際相結(jié)合是很重要的,只有理論知識是遠遠不夠的,只有把所學(xué)的理論知識與實踐相結(jié)合起來,從理論中得出結(jié)論,才能真正為社會服務(wù),從而提高自己的實際動手能力和獨立思考的能力。在設(shè)計的過程中遇到問題,可以說得是困難重重,但最終還是克服了。我們這次課程設(shè)計的課題是讀者寫著問題,經(jīng)過上學(xué)期期末的課程設(shè)計,我們都有了一定的經(jīng)驗,效率也提高了很多。當(dāng)我們組拿到題目的時候我們先對題目進行分析,開始我們做了很多工作,比如,到圖書館借相關(guān)的資料,到網(wǎng)上搜索等等,最終經(jīng)過我們組的努力以及老師和同學(xué)的幫助下順利的實現(xiàn)了讀者寫著功能。這次課程設(shè)計我的主要任務(wù)是利用p、v和管程實現(xiàn)讀者和寫者問題,開始的接到實現(xiàn)
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度建材行業(yè)供應(yīng)鏈金融服務(wù)合同4篇
- 2025年度龍門吊拆除及吊裝作業(yè)現(xiàn)場交通疏導(dǎo)合同4篇
- 二零二五年礦產(chǎn)品線上線下銷售渠道拓展合同3篇
- 幼兒園2025年度教材及教學(xué)資源更新合同3篇
- 二零二五年度蔬菜質(zhì)量檢測合同
- 2025年水產(chǎn)養(yǎng)殖場信息化建設(shè)與智能化改造合同3篇
- 二零二五年綠色建筑合伙合作合同規(guī)范文本3篇
- 2025年消防應(yīng)急救援演練策劃與實施合同3篇
- 2025年微信公眾號社交電商運營合同3篇
- 二零二五年度餐飲企業(yè)環(huán)保設(shè)施建設(shè)合同3篇
- 上海車位交易指南(2024版)
- 醫(yī)學(xué)脂質(zhì)的構(gòu)成功能及分析專題課件
- 新疆塔城地區(qū)(2024年-2025年小學(xué)六年級語文)部編版期末考試(下學(xué)期)試卷及答案
- 2024年9月時事政治試題帶答案
- 汽車供應(yīng)商審核培訓(xùn)
- 高技能人才培養(yǎng)的策略創(chuàng)新與實踐路徑
- 《計算機網(wǎng)絡(luò) 》課件第1章
- 1《地球的表面》說課稿-2024-2025學(xué)年科學(xué)五年級上冊教科版
- GB/T 44764-2024石油、石化和天然氣工業(yè)腐蝕性石油煉制環(huán)境中抗硫化物應(yīng)力開裂的金屬材料
- 自動化招聘筆試試題及答案
- 重慶市主城四區(qū)2025屆高一物理第一學(xué)期期末聯(lián)考試題含解析
評論
0/150
提交評論