操作系統(tǒng)進(jìn)程調(diào)度模擬程序試驗(yàn)報(bào)告_第1頁
操作系統(tǒng)進(jìn)程調(diào)度模擬程序試驗(yàn)報(bào)告_第2頁
操作系統(tǒng)進(jìn)程調(diào)度模擬程序試驗(yàn)報(bào)告_第3頁
操作系統(tǒng)進(jìn)程調(diào)度模擬程序試驗(yàn)報(bào)告_第4頁
操作系統(tǒng)進(jìn)程調(diào)度模擬程序試驗(yàn)報(bào)告_第5頁
已閱讀5頁,還剩14頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、雅舄Hr川.目錄1、課程設(shè)計(jì)目的32、課程設(shè)計(jì)要求33、相關(guān)知識(shí)34、需求分析45、概要設(shè)計(jì)56、詳細(xì)設(shè)計(jì)67、測(cè)試,修改及運(yùn)行結(jié)果138、參考文獻(xiàn)159、結(jié)束語151510、附件器舄1、 課程設(shè)計(jì)的目的理解操作系統(tǒng)進(jìn)程管理中進(jìn)行進(jìn)程調(diào)度的過程和編程方法,掌握先來先服務(wù)調(diào)度算法和最高優(yōu)先數(shù)優(yōu)先的調(diào)度算法,創(chuàng)建進(jìn)程控制塊PCR理解進(jìn)程的狀態(tài)及變化,動(dòng)態(tài)顯示每個(gè)進(jìn)程的當(dāng)前狀態(tài)及進(jìn)程的調(diào)度情況2、 課程設(shè)計(jì)要求編寫一個(gè)進(jìn)程調(diào)度程序,允許多個(gè)進(jìn)程共行的進(jìn)程調(diào)度程序1) ).進(jìn)程調(diào)度算法:采用最高優(yōu)先數(shù)優(yōu)先的調(diào)度算法(即把處理機(jī)分配給優(yōu)先數(shù)最高的進(jìn)程)和先來先服務(wù)算法。2) .每個(gè)進(jìn)程有一個(gè)進(jìn)程控制塊(

2、PCB)表示。進(jìn)程控制塊可以包含如下信息:進(jìn)程名、優(yōu)先數(shù)、到達(dá)時(shí)間、需要運(yùn)行時(shí)間、已用CPU時(shí)間、進(jìn)程狀態(tài)等等.3) .進(jìn)程的優(yōu)先數(shù)及需要的運(yùn)行時(shí)間可以事先人為地指定(也可以由隨機(jī)數(shù)產(chǎn)生)。進(jìn)程的到達(dá)時(shí)間為輸入進(jìn)程的時(shí)間。4) .進(jìn)程的運(yùn)行時(shí)間以時(shí)間片為單位進(jìn)行計(jì)算。5) .每個(gè)進(jìn)程的狀態(tài)可以是就緒W(Wait)、運(yùn)行R(Run)、或完成F(Finish)三種狀態(tài)之一。.6) ).就緒進(jìn)程獲得CPU后都只能運(yùn)行一個(gè)時(shí)間片。用已占用CPU時(shí)間加17) .如果運(yùn)行一個(gè)時(shí)間片后,進(jìn)程的已占用CPU時(shí)間已達(dá)到所需要的運(yùn)行時(shí)問,則撤消該進(jìn)程,如果運(yùn)行一個(gè)時(shí)間片后進(jìn)程的已占用CPU時(shí)間還未達(dá)所需要的運(yùn)行時(shí)

3、間,也就是進(jìn)程還需要繼續(xù)運(yùn)行,此時(shí)應(yīng)將進(jìn)程的優(yōu)先數(shù)減1(即降低一級(jí)),然后把它插入就緒隊(duì)列等待CPU。8) .每進(jìn)行一次調(diào)度程序都打印一次運(yùn)行進(jìn)程、就緒隊(duì)列、以及各個(gè)進(jìn)程的PCB,以便進(jìn)行檢查。重復(fù)以上過程,直到所要進(jìn)程都完成為止3、 相關(guān)知識(shí)進(jìn)程:進(jìn)程是一個(gè)具有一定獨(dú)立功能的程序關(guān)于某個(gè)數(shù)據(jù)集合的一次運(yùn)行活動(dòng)進(jìn)程的狀態(tài):運(yùn)行狀態(tài):進(jìn)程正在處理器上運(yùn)行就緒狀態(tài):一個(gè)進(jìn)程獲得了除處理器外的一切所需資源,一旦得到處理器即可運(yùn)行等待狀態(tài):一個(gè)進(jìn)程正在等待某一事件發(fā)生而暫時(shí)停止運(yùn)行雅舄Hr川.先進(jìn)先出調(diào)度算法:其基本原則是按照作業(yè)到達(dá)系統(tǒng)或進(jìn)程進(jìn)入就緒對(duì)列的先后次序來選擇。對(duì)于進(jìn)程調(diào)度來說,一旦一個(gè)進(jìn)

4、程占有了處理器,它就一直運(yùn)行下去,直到該進(jìn)程完成其工作或者因等待事件而不能繼續(xù)運(yùn)行時(shí)才釋放出處理器。優(yōu)先級(jí)調(diào)度算法:按照進(jìn)程的優(yōu)先級(jí)大小來調(diào)度。使高優(yōu)先級(jí)進(jìn)程或線程得到優(yōu)先的處理的調(diào)度策略稱為優(yōu)先級(jí)調(diào)度算法。進(jìn)程的優(yōu)先級(jí)可以由系統(tǒng)自動(dòng)地按一定原則賦給它,也可由系統(tǒng)外部來進(jìn)行安排但在許多采用優(yōu)先級(jí)調(diào)度的系統(tǒng)中,通常采用動(dòng)態(tài)優(yōu)先數(shù)策略。即一個(gè)進(jìn)程的優(yōu)先級(jí)不是固定的,往往是隨許多因素的變化而變化。尤其隨作業(yè)(進(jìn)程)的等待時(shí)間,已使用的處理器時(shí)間或其他系統(tǒng)資源的使用情況而定,以防止低優(yōu)先級(jí)進(jìn)程或線程長期饑餓現(xiàn)象發(fā)生時(shí)間片輪轉(zhuǎn)算法:時(shí)間片輪轉(zhuǎn)算法主要用于處理器調(diào)度。采用此算法的系統(tǒng),具進(jìn)程就緒隊(duì)列往往按

5、進(jìn)程到達(dá)的時(shí)間來排序。進(jìn)程調(diào)度程序總是選擇就緒隊(duì)列中的第一個(gè)進(jìn)程,也就是說按照先進(jìn)先出原則調(diào)度,但一旦進(jìn)程占有處理器僅使用一個(gè)時(shí)間片,在使用完一個(gè)時(shí)間片后,進(jìn)程還沒有完成其運(yùn)行,它也必須釋放出(被搶占)處理器給下一個(gè)就緒的進(jìn)程。而被搶占的進(jìn)程返回到就緒隊(duì)列的末尾重新排隊(duì)等候再次運(yùn)行。4、 需求分析進(jìn)程調(diào)度程序選擇一個(gè)就緒狀態(tài)的進(jìn)程,使之在處理器上運(yùn)行,每個(gè)進(jìn)程的狀態(tài)信息用數(shù)據(jù)結(jié)構(gòu)(進(jìn)程控制塊PCB表示,進(jìn)程的調(diào)度采用最高優(yōu)先數(shù)優(yōu)先的調(diào)度算法和先來先服務(wù)調(diào)度算法相結(jié)合的算法,并且采用動(dòng)態(tài)優(yōu)先數(shù)策略,選擇進(jìn)程占用處理器后該進(jìn)程僅能使用一個(gè)時(shí)間片,運(yùn)行完后優(yōu)先數(shù)減1雅舄Wb15、 概要設(shè)計(jì)進(jìn)程控制塊

6、:描述進(jìn)程的狀態(tài)信息,用結(jié)構(gòu)體定義typedefstructprocesscharname10;/進(jìn)程名intpriority;/優(yōu)先數(shù)TimeReachTime;/到達(dá)時(shí)間TimeNeedTime;/需要運(yùn)行時(shí)間TimeUsedTime;/已用時(shí)間charstate;/進(jìn)程狀態(tài)PCB;/進(jìn)程控制塊圖1.進(jìn)程調(diào)度模擬程序模塊圖算法思想:定義結(jié)構(gòu)體PCB®述進(jìn)程的進(jìn)程控制塊,定義數(shù)組PCBpcbMax存放進(jìn)程進(jìn)程調(diào)度程序調(diào)用face()函數(shù)選擇所要進(jìn)行的操作。輸入1則增加進(jìn)程并調(diào)度進(jìn)程,輸入2則打印進(jìn)程,輸入0則任務(wù)結(jié)束增加進(jìn)程,調(diào)用AddProcess()函數(shù),將輸入的進(jìn)程存放在數(shù)組

7、pcbMax中打印進(jìn)程,調(diào)用print()函數(shù),在該函數(shù)中首先調(diào)用sort()函數(shù)對(duì)進(jìn)程按優(yōu)先級(jí)和先來先服務(wù)排序,然后顯示輸出排序后的進(jìn)程進(jìn)程調(diào)度,調(diào)用attemper()函數(shù),調(diào)度優(yōu)先級(jí)最高的進(jìn)程分配給CPU使之運(yùn)行一個(gè)時(shí)間片進(jìn)程優(yōu)先級(jí)排序,調(diào)用sort()函數(shù),按照先來先服務(wù)和優(yōu)先級(jí)排序,使排序完最優(yōu)先運(yùn)行的進(jìn)程存放在pcb0中。6、詳細(xì)設(shè)計(jì)設(shè)置時(shí)間片增加進(jìn)程繼續(xù)增加打印進(jìn)程優(yōu)先級(jí)排序進(jìn)程調(diào)度打印進(jìn)程結(jié)束進(jìn)程圖2.程序設(shè)計(jì)流程圖圖3.sort()函數(shù)流程圖sort()函數(shù):函數(shù)用冒泡法排序,首先按到達(dá)時(shí)間排序,使到達(dá)時(shí)間最早(即pcbn.ReachTime最?。┑倪M(jìn)程被交換到pcb0中,再

8、按優(yōu)先級(jí)排序,使具有最高優(yōu)先級(jí)(即pcbn.priority最大)的進(jìn)程被交換到pcb0中。相同優(yōu)先級(jí)的進(jìn)程只按到達(dá)時(shí)間排序先按到達(dá)時(shí)間排序主要代碼如下:for(i=0;i<n-1;i+)/for(j=n-2;j>=i;j-)if(pcbj+1.ReachTime<pcbj.ReachTime)雅舄Hr川.temp=pcbj;pcbj=pcbj+1;pcbj+1=temp;)再按優(yōu)先級(jí)進(jìn)行排序)for(i=0;i<n-1;i+)/for(j=n-2;j>=i;j-)if(pcbj+1.priority>pcbj.priority)temp=pcbj;pcbj

9、=pcbj+1;pcbj+1=temp;)圖4.print()函數(shù)圖5.AddProcess()函數(shù)雅舄Wb1print()函數(shù):打印函數(shù),先調(diào)用sort()排序函數(shù)對(duì)進(jìn)程進(jìn)行排序,排序完再打印輸出進(jìn)程主要代碼如下:sort();printf("n進(jìn)程名優(yōu)先級(jí)到達(dá)時(shí)間需要時(shí)間已用時(shí)間進(jìn)程狀態(tài)n");for(i=0;i<n;i+)printf("%8s%8d%8d%10d%10d%10cn",,pcbi.priority,pcbi.ReachTime,pcbi.NeedTime,pcbi.UsedTime,pcbi.state);A

10、ddProcess()函數(shù):增加進(jìn)程函數(shù),輸入要添加的進(jìn)程的進(jìn)程控制塊的信息,并依次存放在數(shù)組PCBpcbMax中,每加入一個(gè)進(jìn)程后判斷是否還要繼續(xù)增加進(jìn)程,若是則繼續(xù)循環(huán)的執(zhí)行操作主要代碼如下:doprintf("n請(qǐng)輸入進(jìn)程名");scanf("%s",);printf("請(qǐng)輸入進(jìn)程的優(yōu)先級(jí)");scanf("%d",&pcbn.priority);printf("請(qǐng)輸入進(jìn)程需要的時(shí)間");scanf("%d",&pcbn.NeedTim

11、e);pcbn.ReachTime=n;pcbn.UsedTime=0;pcbn.state='W;n+;printf("還要繼續(xù)增加進(jìn)程嗎,是(Y),否(N)");doch=getchar();while(ch!='Y'&&ch!='N'&&ch!='y'&&ch!='n');while(ch='Y'|ch='y');雅舄Hr川.attemper()函數(shù):進(jìn)程調(diào)度函數(shù),調(diào)度排完序后存放在pcb0中的進(jìn)程,分配給該進(jìn)程CPU

12、,使之運(yùn)行一個(gè)時(shí)間片,然后比較進(jìn)程的剩余時(shí)間(pcb0.NeedTime-pcb0.UsedTime)是否小于時(shí)間片的大小pTime,若是,則該進(jìn)程調(diào)度完成,進(jìn)程處于完成狀態(tài),若非,則已用時(shí)間加上一個(gè)時(shí)間片,進(jìn)程處于就緒狀態(tài)繼續(xù)等待運(yùn)行,然后調(diào)用print()函數(shù)打印輸出當(dāng)前進(jìn)程的狀態(tài)并排序,直至所有進(jìn)程處于完成狀態(tài)后結(jié)束運(yùn)行主要代碼如下:doif(pcb0.NeedTime-pcb0.UsedTime)>pTime)pcb0.UsedTime+=pTime;/已用時(shí)間加時(shí)間片pcb0.priority-;/優(yōu)先級(jí)減一pcb0.state='W;elsepcb0.UsedTime

13、=pcb0.NeedTime;已用時(shí)間等于需要時(shí)間pcb0.priority=-1000;/優(yōu)先級(jí)置為零pcb0.state='F'/完成進(jìn)程,將狀態(tài)置為完成print();雅舄Wb1face()函數(shù):函數(shù)打印所能進(jìn)行的操作以供選擇。輸入1則是增加進(jìn)程后調(diào)度進(jìn)程,輸入2則是打印進(jìn)程,輸入0則是任務(wù)結(jié)束。主要代碼如下:charchoose;printf("n增加進(jìn)程并調(diào)度進(jìn)程,請(qǐng)按1");printf("n打印進(jìn)程,請(qǐng)按2");printf("n任務(wù)結(jié)束,請(qǐng)按0");printf("n請(qǐng)選擇:");d

14、ochoose=getchar();while(choose!='1'&&choose!='2'&&choose!='0');returnchoose;雅舄Hr川.圖8.main()函數(shù)main()函數(shù):首先設(shè)置時(shí)間片的大小pTime,然后調(diào)用face()函數(shù)選擇要進(jìn)行的操作,choose='1'則增加進(jìn)程并調(diào)度,choose='2'則打印進(jìn)程,choose='0則任務(wù)結(jié)束。主要代碼如下:charchoose;n=0;/初始化進(jìn)程數(shù)為0printf("設(shè)置時(shí)間片的大

15、小:");scanf("%d”,&pTime);choose=face();doif(choose='1')AddProcess();print();attemper();rj舄卬。川if(choose='2')print();)if(choose='0')return;)choose=face();while(1);函數(shù)間的關(guān)系:1)sort()函數(shù)嵌套在print()函數(shù)中調(diào)用2)調(diào)用AddProcess()函數(shù)前必須先調(diào)用print()函數(shù)對(duì)進(jìn)程進(jìn)行排序并打印7、 測(cè)試,修改及運(yùn)行結(jié)果;再加邊強(qiáng)并詞層進(jìn)程.盾按I

16、印過捏,請(qǐng)拉餐青選擇n基鱉緘魘藕整"嗜3.否,3世程名優(yōu)九級(jí)到達(dá)時(shí)間需要時(shí)可己用時(shí)同進(jìn)程憂戀i;ru心七尊呂2515&PjvoeoasO4223&M»1'OCOOD13Q*13&U進(jìn)程名優(yōu)先級(jí)到達(dá)時(shí)間需要時(shí)間己用時(shí)間進(jìn)程狀態(tài)e3sZ4135<2Tt>rocie-ss3-42230V)z*ooesZLU心以V社程名優(yōu)先級(jí)到達(dá)時(shí)間需要時(shí)間已用時(shí)間進(jìn)程狀志妙。心七導(dǎo)骷94223&Psroeeasl3&43&V»1*OCODO2313bNTV進(jìn)程冬優(yōu)先解到達(dá)時(shí)同需要時(shí)間已用時(shí)間進(jìn)程狀態(tài)VOiCe-SSid

17、-430H4DU日aa在共時(shí)間35己用時(shí)間241212二件柞石p»*ou。,e2<*aap»*ooonn1進(jìn)程名pa«ocjwkpacectjaa1ps*oczmnW1注程名p*oc9Gc工pB*OC<2SiS12pa«ocjwk世程名pa«oooooJLpB«ooc»nnNp*oc9Gc3進(jìn)程名pacectjaa1PB«OOO»82p*«ou«rKK進(jìn)程名prcucAaXpB«ooc»nnNp*ocoqo3優(yōu)先級(jí)2-1OS。優(yōu)先釵2THHM100W優(yōu)尢

18、級(jí)X1ARA1.99M優(yōu)先級(jí)a100M-I。"優(yōu)先圾TR0A1SSS-X0oef-7早裝,ITS2開耳主FT-加印rWT主有-I.,進(jìn)2ss8至u迂時(shí)日工7A到達(dá)時(shí)2Q工到達(dá)時(shí)恒I±2到法時(shí)阿e工N利達(dá)時(shí)問M±2爭J2時(shí)I、日IA12市按工43而耍時(shí)問2J3b而要時(shí)間43952J而要時(shí)間*133S23麗鈍時(shí)向可分3S唐華時(shí)間仆3K已用叼問X2,23b已用時(shí)可X22J已用時(shí)間24.3S23己用時(shí)間事用時(shí)印35JRWW世程狀態(tài)BWJF迸程狀態(tài)KPI?近程狀態(tài)PJF趙程伏態(tài)RFJP衽程秋態(tài)F喈加道建并調(diào)廢進(jìn)程,請(qǐng)按1打印進(jìn)抵請(qǐng)程2任務(wù)結(jié)束,請(qǐng)接。請(qǐng)送擇:工進(jìn)進(jìn)進(jìn)實(shí)、工、

19、工、入*1、八、八、八處青青青正工乞程的優(yōu)先級(jí)3呈需裒的兩問37增加進(jìn)程叫,是.否(Nn進(jìn)程名優(yōu)先級(jí)到達(dá)時(shí)間需要時(shí)間pi*ocecc43337pvoceecl-1800043pi*oceec2-I860135pi*oceec3-1000223進(jìn)程名優(yōu)先級(jí)到達(dá)時(shí)間需要時(shí)間p»*ocass42337p*ocessl一100。a43p»*oces«j2一1叼00135p>*oeess3223己用時(shí)間12433523己用時(shí)間0433523進(jìn)程狀態(tài)R進(jìn)程狀態(tài)R進(jìn)程名p»*oces«:4pmcesslpt*ccess2P>*ccess3進(jìn)程名p

20、vncess4pvncess!pvocess2pi*ocess3進(jìn)程名processlprocess2process3process4由力n;井涯優(yōu)先級(jí)1tnnnT刖。t刖口優(yōu)先銀T00。T0。-1000優(yōu)先級(jí)-1000-1000-1000-1000到達(dá)時(shí)間3n12到達(dá)時(shí)間3n120123需要時(shí)間37433s23需典時(shí)間37433S23已用時(shí)間24433s23己用時(shí)間36433S23進(jìn)程狀態(tài)RFFF進(jìn)程狀態(tài)雅舄打印迸程,請(qǐng)次2任務(wù)結(jié)束.請(qǐng)接。Pressanykeytdcontinue測(cè)試過程如上所述,分析得知,進(jìn)程的調(diào)度正確8、 參考文獻(xiàn)操作系統(tǒng)基礎(chǔ)(第三版)屠祁屠立德等編著一清華大學(xué)出版社2

21、000.91993北HelenCuster著.WindowsNT技術(shù)內(nèi)幕程渝榮譯北京:清華大學(xué)出版社,AndrewS.Tanenbaum,AlbertS.Woodhull.操作系統(tǒng)設(shè)計(jì)及實(shí)現(xiàn)(第二版)京:清華大學(xué)出版社,19989、 結(jié)束語通過這次課設(shè)加深了我對(duì)操作系統(tǒng)的認(rèn)識(shí),進(jìn)一步了解了進(jìn)程調(diào)度的過程,在老師的指導(dǎo)下,對(duì)進(jìn)程模擬程序做了進(jìn)一步的改進(jìn),并且學(xué)會(huì)了怎么分析問題和解決問題10、附件程序清單#include<stdio.h>#defineTimeint#defineMax100typedefstructprocess進(jìn)程名優(yōu)先數(shù)到達(dá)時(shí)間需要運(yùn)行時(shí)間已用時(shí)間進(jìn)程狀態(tài)進(jìn)程控制

22、塊標(biāo)示進(jìn)程的總數(shù)時(shí)間片大小charname10;/intpriority;/TimeReachTime;/TimeNeedTime;/TimeUsedTime;/charstate;/PCB;/intn;/PCBpcbMax;intpTime;/voidAddProcess()charch;雅舄Wb1doprintf("n請(qǐng)輸入進(jìn)程名");scanf("%s",);printf("請(qǐng)輸入進(jìn)程的優(yōu)先級(jí)");scanf("%d”,&pcbn.priority);printf("請(qǐng)輸入進(jìn)程需要的

23、時(shí)間");scanf("%d",&pcbn.NeedTime);pcbn.ReachTime=n;pcbn.UsedTime=0;pcbn.state='W;n+;printf("還要繼續(xù)增加進(jìn)程嗎,是(Y),否(N)");doch=getchar();while(ch!='Y'&&ch!='N'&&ch!='y'&&ch!='n');while(ch='Y'|ch='y');/排序函數(shù)

24、,將最先運(yùn)行的進(jìn)程放在最先即pcb0voidsort()/用冒泡排序inti,j;PCBtemp;/先按到達(dá)時(shí)間排序for(i=0;i<n-1;i+)for(j=n-2;j>=i;j-)if(pcbj+1.ReachTime<pcbj.ReachTime)temp=pcbj;pcbj=pcbj+1;pcbj+1=temp;/再按優(yōu)先級(jí)進(jìn)行排序for(i=0;i<n-1;i+)for(j=n-2;j>=i;j-)if(pcbj+1.priority>pcbj.priority)雅舄Wb1temp=pcbj;pcbj=pcbj+1;pcbj+1=temp;)if(pcb0.state!='F')(pcb0.state='R'/將優(yōu)先級(jí)最高的狀態(tài)置為運(yùn)行)voidprint()/打印(inti;sort();printf("n進(jìn)程名優(yōu)先級(jí)到達(dá)時(shí)間需要時(shí)間已用時(shí)間進(jìn)程狀態(tài)n");for(i=0;i<n;i+)printf("%8s%8d%8d%10d%10d%10cn",,pcbi.priohty,pcbi.ReachTime,pcbi.NeedTi

溫馨提示

  • 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)論