1423.處理機(jī)調(diào)度模擬程序-----操作系統(tǒng)課程設(shè)計(jì)_第1頁
1423.處理機(jī)調(diào)度模擬程序-----操作系統(tǒng)課程設(shè)計(jì)_第2頁
1423.處理機(jī)調(diào)度模擬程序-----操作系統(tǒng)課程設(shè)計(jì)_第3頁
1423.處理機(jī)調(diào)度模擬程序-----操作系統(tǒng)課程設(shè)計(jì)_第4頁
1423.處理機(jī)調(diào)度模擬程序-----操作系統(tǒng)課程設(shè)計(jì)_第5頁
已閱讀5頁,還剩18頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、課程設(shè)計(jì)書系別:計(jì) 科系專業(yè):計(jì)算機(jī)科學(xué)與技術(shù)班級(jí):題目:處理機(jī)調(diào)度模擬程序教師:姓名: 設(shè)計(jì)題目處理機(jī)調(diào)度模擬程序 選擇一個(gè)調(diào)度算法,實(shí)現(xiàn)處理機(jī)調(diào)度、設(shè)計(jì)要求編寫一個(gè)進(jìn)程調(diào)度程序,允許多個(gè)進(jìn)程共行的進(jìn)程調(diào)度程序。 進(jìn)程調(diào)度算法采用最高優(yōu)先數(shù)優(yōu)先的調(diào)度算法 (即把處理機(jī)分配給 優(yōu)先數(shù)最高的進(jìn)程) 和先來先服務(wù)算法。 每個(gè)進(jìn)程有一個(gè)進(jìn)程控制 塊(PCB)表示。進(jìn)程控制塊可以包含如下信息:進(jìn)程名、優(yōu)先數(shù)、 到達(dá)時(shí)間、需要運(yùn)行時(shí)間、已用 CPU寸間、進(jìn)程狀態(tài)等等。進(jìn)程的優(yōu)先數(shù)及需要的運(yùn)行時(shí)間可以事先人為地指定(也可 以由隨機(jī)數(shù)產(chǎn)生)。進(jìn)程的到達(dá)時(shí)間為輸入進(jìn)程的時(shí)間。進(jìn)程的 運(yùn)行時(shí)間以時(shí)間片為單位進(jìn)行

2、計(jì)算。每個(gè)進(jìn)程的狀態(tài)可以是就緒 W(Wait)、運(yùn)行R( Rur)、或完成F (Finish )三種狀態(tài)之一。 就緒進(jìn)程獲得CPU后都只能運(yùn)行一個(gè)時(shí)間片,用已占用 CPU時(shí)間 加1來表示。如果運(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í)間,也就是進(jìn)程還 需要繼續(xù)運(yùn)行,此時(shí)應(yīng)將進(jìn)程的優(yōu)先數(shù)減 1(即降低一級(jí)),然后 把它插入就緒隊(duì)列等待CPU每進(jìn)行一次調(diào)度程序都打印一次運(yùn)行 進(jìn)程、就緒隊(duì)列、以及各個(gè)進(jìn)程的 PCB,以便進(jìn)行檢查。重復(fù)以上過程,直到所要進(jìn)程都完成為止 1進(jìn)程調(diào)度算法包括:時(shí)間片輪轉(zhuǎn)

3、法,短作業(yè)優(yōu)先算法,動(dòng) 態(tài)優(yōu)先級(jí)算法。2 可選擇進(jìn)程數(shù)量3 本程序包括三種算法,執(zhí)行時(shí)在主界面選擇算法(可用函 數(shù)實(shí)現(xiàn)),進(jìn)入子頁面后輸入進(jìn)程數(shù),(運(yùn)行時(shí)間,優(yōu)先數(shù)由隨 機(jī)函數(shù)產(chǎn)生),執(zhí)行,顯示結(jié)果。三 設(shè)計(jì)目的在多道程序和多任務(wù)系統(tǒng)中,系統(tǒng)內(nèi)同時(shí)處于就緒狀態(tài)的進(jìn) 程可能有若干個(gè)。也就是說能運(yùn)行的進(jìn)程數(shù)大于處理機(jī)個(gè)數(shù)。為了使系統(tǒng)中的進(jìn)程能有條不紊地工作,必須選用某種調(diào)度策略, 選擇一進(jìn)程占用處理機(jī)。要求學(xué)生設(shè)計(jì)一個(gè)模擬處理機(jī)調(diào)度算法, 以鞏固和加深處理機(jī)調(diào)度的概念 。四設(shè)計(jì)分析1、實(shí)現(xiàn)原理首先,編寫一個(gè)進(jìn)程調(diào)度類Main_PCB 個(gè)進(jìn)程信 PCB_block可以創(chuàng)建進(jìn)程控制塊(PCB)表示。進(jìn)

4、程控制塊可以 包含如下信息:進(jìn)程名、優(yōu)先數(shù)、到達(dá)時(shí)間、需要運(yùn)行時(shí)間、已 用CPU時(shí)間、進(jìn)程狀態(tài)等等。對(duì)應(yīng)成員變量是pcb_Name;pcb_ID;int pcb_Pro; PCB_Begintime(); pcb_Needtime; pcb_Spendtime; pcb_Finishtime;String pcb_Statue; 成員方法 是 pcb_Work (); 可以實(shí)例化多個(gè)包含相同信息的進(jìn)程,一個(gè)線程 類 Work 允許多個(gè)進(jìn)程共行的進(jìn)程調(diào)度創(chuàng)建各自的模擬任務(wù),由 process_Create(int Process_ProcessNum) 方法實(shí)現(xiàn)創(chuàng)建 Process_Proces

5、sNu m 個(gè)進(jìn)程。接著,編寫進(jìn)程調(diào)度算法(1) 最高優(yōu)先數(shù)優(yōu)先的調(diào)度算法 HIGH_method()(這里采用 把處理機(jī)分配給優(yōu)先數(shù)最高的進(jìn)程) ;(2) 先來先服務(wù)算法 FIFS_method()。以上,兩個(gè)方法都是Main_PCB的成員方法,由Main_PCB勺主調(diào)函 數(shù)main ()調(diào)用call ()方法進(jìn)行調(diào)用。進(jìn)程的優(yōu)先數(shù)及需要的運(yùn)行時(shí)間這里由由隨機(jī)數(shù)產(chǎn)生。進(jìn)程 的到達(dá)時(shí)間為創(chuàng)建進(jìn)程的時(shí)間。進(jìn)程的運(yùn)行時(shí)間以時(shí)間片為單位 進(jìn)行計(jì)算。每個(gè)進(jìn)程的狀態(tài)可以是就緒 W( Wait)、運(yùn)行R (Run)、或 完成 F(Finish )三種狀態(tài)之一。這里采用線程的睡眠 sleep () 方法實(shí)現(xiàn)

6、,最后通過進(jìn)程的開始時(shí)間、執(zhí)行時(shí)間和結(jié)束時(shí)間,觀 察進(jìn)程的執(zhí)行過程。2、程序執(zhí)行過程(1)開始執(zhí)行Main_PCB主調(diào)方法main();(2) 調(diào)用方法 process_Create(ProcessNum)創(chuàng)建 ProcessNum個(gè)進(jìn)程一調(diào)用 call(method)方法;(a) 如果method =1執(zhí)行FIFS_method()先來先服務(wù)算法,接 著執(zhí)行創(chuàng)建進(jìn)程的個(gè)子作業(yè)線程;(b) 如果method =2執(zhí)行HIGH_method()最高優(yōu)先數(shù)優(yōu)先的調(diào) 度算法,接著執(zhí)行創(chuàng)建進(jìn)程的個(gè)子作業(yè)線程(3) 輸出程序執(zhí)行的開始,和結(jié)束時(shí)間。4、實(shí)現(xiàn)類圖Main_PCBVariable proce

7、ssID ProcessNumTimePcb_Que excuteQueue processNamePCB_block pcb_Begi ntime pcb_ Fini shtime pcb_ID pcb_Name pcb_Needtime pcb_Needtime pcb_Needtime pcb_Needtime+ pcb_Work()+ main ()+ call ()+ HIGH_method () +FIFS_method ()+ process_Create () + printSign ()5、實(shí)現(xiàn)用到的數(shù)據(jù)結(jié)構(gòu)根據(jù)類圖可以分析出所采用的數(shù)據(jù)結(jié)構(gòu)有:(1) 隊(duì)列主要完成FIFS_

8、method ()算法,進(jìn)程的先來先 服務(wù);Process。ProcesslProcessN(2) 堆棧主要完成方法的調(diào)用時(shí),先調(diào)用的后執(zhí)行;FIFS_method ()call ()main ()(3) 數(shù)組采用鏈表主要用來記錄進(jìn)程創(chuàng)建時(shí)的信息,為以后觀察其創(chuàng)建的初值、 運(yùn)行過程和執(zhí)行結(jié)果;采用鏈表數(shù)組的好處是可以實(shí)現(xiàn)數(shù)組的長(zhǎng)度動(dòng)態(tài)變化;五. 程序代碼Main_PCB 如下:package PCB_c on;import java .Ian g.*;import java .Ian g.Object;import java.io.*;import java.util.*;public cla

9、ss Main_PCB public static int variable; public static int processID ;public static int ProcessNum=5;public static Date Time =new Date();public static PCB_block Pcb_Que = new PCB_blockProcessNum;public static int excuteQueue=new intPcb_Que.length;/public static int sort = new intProcessNum;public sta

10、tic String processName = new StringProcessNum;public static intprocessId = new intProcessNum;public static int processPro =new intProcessNum;public static int processBt= new int2ProcessNum;public static int processSpt =new intProcessNum;public static int processNt =new intProcessNum;public static in

11、t processFt =new intProcessNum;public static String processSta = new StringProcessNum;public static Work processWk = new WorkProcessNum;/主調(diào)方法public static void main(String args)/int ProcessNum=Integer.parseInt(args0);/ 命令行輸入創(chuàng)建進(jìn)程的 個(gè)數(shù);/int callMethod=Integer.parseInt(args0);/ 命令行輸入調(diào)用的算法 FIFS 值為 1 或 優(yōu)先

12、級(jí)值為 2;printSign();System.out.println( 創(chuàng)建的進(jìn)程數(shù)量是: +ProcessNum);System.out.println();process_Create(ProcessNum);call(1);call(2);/call 方法static void call(int callmeth)if (callmeth=1) FIFS_method();else if (callmeth=2) HIGH_method();elseSystem.out.println( 沒有進(jìn)程的調(diào)度算法被執(zhí)行! ! );/最高優(yōu)先數(shù)優(yōu)先調(diào)度public static void H

13、IGH_method()System.out.println();System.out.println();System.out.println( 最高優(yōu)先數(shù)算法被調(diào)度 );System.out.println();System.out.println( 公共變量的初值是: +variable); int sort = new intProcessNum;for(int i=0;isort.length;i+)sorti=processProi;for(int i=0;isort.length;i+)int temp;for(int j=0;jsort.length-1;j+)if(sortj

14、sortj+1)temp=sortj;sortj=sortj+1;sortj+1=temp;System.out.println( 優(yōu)先級(jí)排序: ) ;for(int i=0;isort.length;i+)System.out.println(sorti);System.out.println();System.out.println( 進(jìn)程被執(zhí)行的順序?yàn)椋?);for(int i=0;isort.length ;i+)int j=0;while(sorti!=processProj )if (jprocessPro.length-1 )j+;System.out.println(Step

15、+i+: 執(zhí)行 +processNamej);int sleeptime =(int)(Math.random()*10000);processWkj.workMethod(j,sleeptime) ;/processWki.run();System.out.println( 公共變量的當(dāng)前值是: +variable);/先來先服務(wù)調(diào)度方法public static void FIFS_method()System.out.println();System.out.println();System.out.println( 先來先服務(wù)算法被調(diào)度 );System.out.println();S

16、ystem.out.println( 進(jìn)程被執(zhí)行的順序?yàn)椋?);for(int i=0; iexcuteQueue.length;i+)int j=0;while(excuteQueuei!=processIdj ) if(jprocessId.length-1 )j+;System.out.println(Step +i+: 執(zhí)行 +processNamej);/processWki.run();processWkj.workMethod(j) ;/輸出標(biāo)志static void printSign()System.out.println(Il*););System.out.println(

17、*System.out.println(Process11*n);System.out.println();/進(jìn)程創(chuàng)建方法static void process_Create(int Process_ProcessNum) PCB_block Pcb_Que =new PCB_blockProcess_ProcessNum; int proID = new intPcb_Que.length;System.out.println( 進(jìn)程剛被創(chuàng)建是的信息如下: ); System.out.println();for(int i=0;iPcb_Que.length;i+) PCB_block Pr

18、ocess =new PCB_block(); processID = i;Process.pcb_Name =process+i; Process.pcb_ID =10*i;Process.pcb_Pro =(int) (Math.random()*100) ; Process.pcb_Needtime =(int)( Math.random()*1000);Process.pcb_Spendtime =0; Process.pcb_Begintime.minute = Time.getMinutes(); Process.pcb_Begintime.secend = Time.getSec

19、onds(); Process.pcb_Statue =Wait;class ProMeth extends Workpublic void run()public void workMethod(int id,int sletim)System.out.println();System.out.println(Process+id+: Start running!);System.out.println();Date date1 = new Date();System.out.println( 開始時(shí)間: +(date1.toString().substring( 10,20);/* 幫助調(diào)

20、試 線程的執(zhí)行* try * wait();catch(Exception e) System.out.println(Process+processID+ 有異常: +e.toString() );*/int sleeptime =sletim;System.out.println(sleep time+sleeptime);for(int i =0;i20;i+) variable=variable+i;try sleep(sleeptime);/sleep(sleeptime);catch(Exception e)System.out.println(e.toString() );Sys

21、tem.out.println(Process+id+: Finished!);Date date2 = new Date();System.out.println( 結(jié)束時(shí)間: +(date2.toString().substring( 10,20);System.out.println( 執(zhí)行后的公共變量是: +variable);System.out.println();Process.pcb_Work =new ProMeth();/記錄進(jìn)程的信息到數(shù)組 processNamei=Process.pcb_Name; processProi=Process.pcb_Pro;process

22、Idi= Process.pcb_ID;processSpti=Process.pcb_Spendtime; processNti=Process.pcb_Needtime; processStai=Process.pcb_Statue; processWki=Process.pcb_Work; processBt0i=Process.pcb_Begintime.minute; processBt1i=Process.pcb_Begintime.secend;Pcb_Quei = Process;System.out.println( #Process+i+ 剛創(chuàng)建時(shí)的信息 PCB# );Sy

23、stem.out.println();System.out.println(Name:+Pcb_Quei.pcb_Name);System.out.println(createTime:+Time.toString() );System.out.println(ID:+Pcb_Quei.pcb_ID);System.out.println(Needtime:+Pcb_Quei.pcb_Needtime);System.out.println( Pro:+Pcb_Quei.pcb_Pro );System.out.println(Spendtime:+Pcb_Quei.pcb_Spendtime

24、 );System.out.println( current status:+Pcb_Quei.pcb_Statue);System.out.println();proIDi = Pcb_Quei.pcb_ID ;excuteQueue = proID; / 被創(chuàng)建進(jìn)程的存貯數(shù)組public static void store_ProcessInfoArray()/進(jìn)程信息類class PCB_blockString pcb_Name;int pcb_ID;int pcb_Pro;PCB_Begintime pcb_Begintime= new PCB_Begintime();int pcb_

25、Needtime;int pcb_Spendtime;int pcb_Finishtime;String pcb_Statue;Work pcb_Work = new Work();/進(jìn)程工作的線程class Work extends Threadpublic void run()public static void main(String args)int var=0;Work p= new Work();System.out.println();/p.workMethod();p.workMethod(var);void workMethod()void workMethod(int sl

26、etim)try sleep(sletim);catch(Exception e)System.out.println(e.toString() );void workMethod(int id,int sletim)class PCB_Begintimeint minute;int secend;先來先服務(wù)調(diào)度方法:public static void FIFS_method()System.out.println();System.out.println(););System.out.println( 先來先服務(wù)算法被調(diào)度System.out.println();System.out.pr

27、intln( 進(jìn)程被執(zhí)行的順序?yàn)椋?); for(int i=0; iexcuteQueue.length;i+) int j=0;while(excuteQueuei!=processIdj ) if(jprocessId.length-1 )j+;System.out.println(Step +i+: 執(zhí)行 +processNamej);/processWki.run(); processWkj.workMethod(j) ;/輸出標(biāo)志static void printSign()System.out.println(*);System.out.println(*Process*g);S

28、ystem.out.println(H*);System.out.println();Process.pcb_Work =new ProMeth();/記錄進(jìn)程的信息到數(shù)組processNamei=Process.pcb_Name;processProi=Process.pcb_Pro;processIdi= Process.pcb_ID; processSpti=Process.pcb_Spendtime; processNti=Process.pcb_Needtime; processStai=Process.pcb_Statue; processWki=Process.pcb_Work;

29、processBt0i=Process.pcb_Begintime.minute; processBt1i=Process.pcb_Begintime.secend;Pcb_Quei = Process;System.out.println( #Process+i+ 剛 創(chuàng) 建 時(shí) 的 信 息 PCB# );System.out.println();System.out.println(Name:+Pcb_Quei.pcb_Name);System.out.println( createTime:+Time.toString() );System.out.println(ID:+Pcb_Que

30、i.pcb_ID);System.out.println(Needtime:+Pcb_Quei.pcb_Needtime);System.out.println(Pro:+Pcb_Quei.pcb_Pro );System.out.println( Spendtime:+Pcb_Quei.pcb_Spendtime );System.out.println( current status:+Pcb_Quei.pcb_Statue);System.out.println();proIDi = Pcb_Quei.pcb_ID ;excuteQueue = proID;/被創(chuàng)建進(jìn)程的存貯數(shù)組publ

31、ic static void store_ProcessInfoArray()/進(jìn)程信息類class PCB_blockString pcb_Name;int pcb_ID;int pcb_Pro;PCB_Begintime pcb_Begintime= new PCB_Begintime();int pcb_Needtime;int pcb_Spendtime;int pcb_Finishtime;String pcb_Statue;Work pcb_Work = new Work();/進(jìn)程工作的線程class Work extends Thread public void run()pu

32、blic static void main(String args) int var=0;Work p= new Work();System.out.println();/p.workMethod(); p.workMethod(var);void workMethod()void workMethod(int sletim)try sleep(sletim);catch(Exception e) System.out.println(e.toString() ); void workMethod(int id,int sletim)/時(shí)間的分和時(shí)類class PCB_Begintimeint

33、 minute;int secend;部分程序代碼:package PCB_con;import java.lang.*;import java.lang.Object;import java.io.*;import java.util.*;public class Main_PCB public static int variable;public static int processID ;public static int ProcessNum=5;public static Date Time =new Date();public static PCB_block Pcb_Que =

34、new PCB_blockProcessNum;public static int excuteQueue=new intPcb_Que.length;/public static int sort = new intProcessNum;/被創(chuàng)建進(jìn)程的存貯數(shù)組public static String processName = new StringProcessNum;public static intprocessId = new intProcessNum;public static int processPro =new intProcessNum;public static int

35、processBt= new int2ProcessNum;public static int processSpt =new intProcessNum;public static int processNt =new intProcessNum;public static int processFt =new intProcessNum;public static String processSta = new StringProcessNum;public static Work processWk = new WorkProcessNum;/主調(diào)方法public static void

36、 main(String args)/int ProcessNum=Integer.parseInt(args0);/ 命令行輸入創(chuàng)建進(jìn)程的個(gè) 數(shù);/int callMethod=Integer.parseInt(args0);/ 命令行輸入調(diào)用的算法 FIFS 值為 1 或 優(yōu)先級(jí)值為 2;printSign();System.out.println( 創(chuàng)建的進(jìn)程數(shù)量是: +ProcessNum);System.out.println(); process_Create(ProcessNum); call(1);call(2);/call 方法static void call(int cal

37、lmeth)if (callmeth=1) FIFS_method();else if (callmeth=2) HIGH_method();elseSystem.out.println( 沒有進(jìn)程的調(diào)度算法被執(zhí)行! ! );/最高優(yōu)先數(shù)優(yōu)先調(diào)度public static void HIGH_method()System.out.println();System.out.println();System.out.println( 最高優(yōu)先數(shù)算法被調(diào)度 );System.out.println();System.out.println( 公共變量的初值是: +variable);int sort

38、 = new intProcessNum;for(int i=0;isort.length;i+)sorti=processProi;for(int i=0;isort.length;i+)int temp;for(int j=0;jsort.length-1;j+)if(sortjsortj+1)temp=sortj;sortj=sortj+1;sortj+1=temp;System.out.println( 優(yōu)先級(jí)排序: ) ;for(int i=0;isort.length;i+)System.out.println(sorti);System.out.println();System.

39、out.println( 進(jìn)程被執(zhí)行的順序?yàn)椋?);for(int i=0;isort.length ;i+)int j=0;while(sorti!=processProj )if (jprocessPro.length-1 )j+;System.out.println(Step +i+: 執(zhí)行 +processNamej);int sleeptime =(int)(Math.random()*10000);processWkj.workMethod(j,sleeptime) ;/processWki.run();System.out.println( 公共變量的當(dāng)前值是: +variabl

40、e);進(jìn)程創(chuàng)建方法static void process_Create(int Process_ProcessNum)PCB_block Pcb_Que =new PCB_blockProcess_ProcessNum;int proID = new intPcb_Que.length;System.out.println( 進(jìn)程剛被創(chuàng)建是的信息如下: );System.out.println();for(int i=0;iPcb_Que.length;i+)PCB_block Process =new PCB_block();processID = i;Process.pcb_Name =p

41、rocess+i;Process.pcb_ID =10*i;Process.pcb_Pro =(int) (Math.random()*100) ;Process.pcb_Needtime =(int)( Math.random()*1000);Process.pcb_Spendtime =0;Process.pcb_Begintime.minute = Time.getMinutes();Process.pcb_Begintime.secend = Time.getSeconds(); Process.pcb_Statue =Wait;class ProMeth extends Workpu

42、blic void run()public void workMethod(int id,int sletim)System.out.println();System.out.println(Process+id+:Start running!);System.out.println(); Date date1 = new Date();System.out.println( 開始時(shí)間: +(date1.toString().substring( 10,20);/* 幫助調(diào)試 線程的執(zhí)行* try * wait();catch(Exception e)System.out.println(Pr

43、ocess+processID+ 有異常: +e.toString() );*/int sleeptime =sletim;System.out.println(sleep time+sleeptime);for(int i =0;i20;i+)variable=variable+i;try sleep(sleeptime);/sleep(sleeptime);catch(Exceptio n e)System.out.println(e.toString();System.out.pri ntln( Process+id+: Fi nished!); Date date2 = new Dat

44、e();System.out.println(結(jié)束時(shí)間:+(date2.toString().substring( 10,20);System.out.println(” 執(zhí)行后的公共變量是:+variable);System.out.pri ntl n();六、執(zhí)行結(jié)果和結(jié)果分析*Process*創(chuàng)建的進(jìn)程數(shù)量是:5進(jìn)程剛被創(chuàng)建是的信息如下:#Process0 剛創(chuàng)建時(shí)的信息 PCB#Name:process0createTime:Thu Dec 15 15:41:14 CST 2005ID:0Needtime:164Pro:9Spen dtime:0curre nt status:Wait#Process1 剛創(chuàng)建時(shí)的信息 PCB#Name:process1createTime:Thu Dec 15 15:41:14 CST 2005Needtime:636Pro:11Spen dtime:0curre nt status:Wait#Process2 剛創(chuàng)建時(shí)的信息 PCB#Name:process2createTime:Thu Dec 15 15:41:14

溫馨提示

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