




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、武漢理工大學(xué)操作系統(tǒng)課程設(shè)計(jì)說(shuō)明書(shū)課程設(shè)計(jì)任務(wù)書(shū)學(xué)生姓名: 朱東各 專業(yè)班級(jí): 計(jì)算機(jī)0604 指導(dǎo)教師: 蔡 菁 工作單位: 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院 題 目: 模擬設(shè)計(jì)段頁(yè)式虛擬存儲(chǔ)管理中地址轉(zhuǎn)換初始條件:1預(yù)備內(nèi)容:閱讀操作系統(tǒng)的內(nèi)存管理章節(jié)內(nèi)容,理解段頁(yè)式存儲(chǔ)管理的思想及相應(yīng)的分配主存的過(guò)程。2實(shí)踐準(zhǔn)備:掌握一種計(jì)算機(jī)高級(jí)語(yǔ)言的使用。要求完成的主要任務(wù): (包括課程設(shè)計(jì)工作量及其技術(shù)要求,以及說(shuō)明書(shū)撰寫等具體要求)1實(shí)現(xiàn)段頁(yè)式存儲(chǔ)管理中邏輯地址到物理地址的轉(zhuǎn)換。能夠處理以下的情形: 能指定內(nèi)存的大小,內(nèi)存塊的大小,進(jìn)程的個(gè)數(shù),每個(gè)進(jìn)程的段數(shù)及段內(nèi)頁(yè)的個(gè)數(shù); 能檢查地址的合法性,如果合法進(jìn)行
2、轉(zhuǎn)換,否則顯示地址非法的原因。2設(shè)計(jì)報(bào)告內(nèi)容應(yīng)說(shuō)明: 需求分析; 功能設(shè)計(jì)(數(shù)據(jù)結(jié)構(gòu)及模塊說(shuō)明); 開(kāi)發(fā)平臺(tái)及源程序的主要部分; 測(cè)試用例,運(yùn)行結(jié)果與運(yùn)行情況分析; 自我評(píng)價(jià)與總結(jié):i)你認(rèn)為你完成的設(shè)計(jì)哪些地方做得比較好或比較出色;ii)什么地方做得不太好,以后如何改正;iii)從本設(shè)計(jì)得到的收獲(在編寫,調(diào)試,執(zhí)行過(guò)程中的經(jīng)驗(yàn)和教訓(xùn));iv)完成本題是否有其他方法(如果有,簡(jiǎn)要說(shuō)明該方法);v)對(duì)實(shí)驗(yàn)題的評(píng)價(jià)和改進(jìn)意見(jiàn),請(qǐng)你推薦設(shè)計(jì)題目。時(shí)間安排:設(shè)計(jì)安排一周:周1、周2:完成程序分析及設(shè)計(jì)。周2、周3:完成程序調(diào)試及測(cè)試。周4、周5:驗(yàn)收、撰寫課程設(shè)計(jì)報(bào)告。(注意事項(xiàng):嚴(yán)禁抄襲,一旦發(fā)現(xiàn)
3、,一律按0分記)指導(dǎo)教師簽名: 年 月 日系主任(或責(zé)任教師)簽名: 年 月 日模擬段頁(yè)式虛擬存儲(chǔ)管理中 地址轉(zhuǎn)換1需求分析1.1段頁(yè)式管理的基本思想1.1.1基本思想段式和頁(yè)式存儲(chǔ)管理各有優(yōu)缺點(diǎn),段頁(yè)式存儲(chǔ)管理系統(tǒng),用分段的方法來(lái)分配和管理虛擬存儲(chǔ)器,而用分頁(yè)的方法來(lái)分配和管理主存。既有段式系統(tǒng)便于實(shí)現(xiàn)段的共享,段的保護(hù),動(dòng)態(tài)鏈接和段的動(dòng)態(tài)增長(zhǎng)等一系列優(yōu)點(diǎn),又能像頁(yè)式系統(tǒng)那樣,很好地解決內(nèi)存的外碎片問(wèn)題。具體來(lái)說(shuō),把整個(gè)內(nèi)存分成大小相等內(nèi)存塊,內(nèi)存塊從0開(kāi)始依次編號(hào)。把用戶程序分成若干段,每段有個(gè)段名。頁(yè)面的大小和內(nèi)存塊相同,每段的各個(gè)頁(yè)面都分別從0開(kāi)始依次編號(hào)。虛空間的最小單位是頁(yè)而不是段
4、,內(nèi)存就被分為若干個(gè)頁(yè),且每段所擁有的程序和數(shù)據(jù)在內(nèi)存中可以分開(kāi)存放,分段大小也不再受內(nèi)存可用區(qū)的限制。1.2段頁(yè)式存儲(chǔ)的原理1.2.1虛地址的構(gòu)成邏輯地址有三部分構(gòu)成:V=(S,P,d)即段號(hào)s,頁(yè)號(hào)p和頁(yè)內(nèi)相對(duì)地址d,如下所示:spd內(nèi)存分配:以塊為單位進(jìn)行內(nèi)存分配,為了實(shí)現(xiàn)從邏輯地址到物理地址的轉(zhuǎn)換,為每個(gè)作業(yè)或進(jìn)程建立一張段表:段表中的段長(zhǎng)即是頁(yè)表長(zhǎng)度,段表中的段內(nèi)始址即是頁(yè)表地址,每個(gè)段擁有一張頁(yè)表,段內(nèi)的頁(yè)號(hào)映射為物理地址中的物理塊號(hào)。1.2.2段表和頁(yè)表的構(gòu)成 在段頁(yè)式存儲(chǔ)管理系統(tǒng)中,段表包含這樣幾個(gè)基本項(xiàng):段號(hào),狀態(tài),該段的頁(yè)表長(zhǎng)度,頁(yè)表始址;頁(yè)表包含的基本項(xiàng)是:頁(yè)號(hào),狀態(tài),塊
5、號(hào)。段頁(yè)式管理中段表,頁(yè)表以及內(nèi)存的關(guān)系如下圖:1.2.3 動(dòng)態(tài)地址變換過(guò)程在段頁(yè)式存儲(chǔ)管理系統(tǒng)中,要對(duì)內(nèi)存中的指令或數(shù)據(jù)進(jìn)行一次存取操作至少需要訪問(wèn)3次內(nèi)存。第一次是由段表寄存器得到段表始址去訪問(wèn)段表,然后取出對(duì)應(yīng)段的頁(yè)表地址。第二次則是訪問(wèn)頁(yè)表得到所要訪問(wèn)的物理地址。只有在訪問(wèn)了段表和頁(yè)表之后,第三次才能訪問(wèn)真正要訪問(wèn)的物理單元。段頁(yè)式存儲(chǔ)管理系統(tǒng)地址變換如下所示:2 功能設(shè)計(jì)(數(shù)據(jù)結(jié)構(gòu)及模塊說(shuō)明)2.1 存儲(chǔ)結(jié)構(gòu)說(shuō)明在此段頁(yè)式存儲(chǔ)管理系統(tǒng)中,我們采用以下數(shù)據(jù)結(jié)構(gòu)來(lái)存儲(chǔ)數(shù)據(jù),存儲(chǔ)結(jié)構(gòu)用結(jié)構(gòu)體和結(jié)構(gòu)體數(shù)組來(lái)實(shí)現(xiàn):2.1.1段表段號(hào)s狀態(tài)flag頁(yè)表長(zhǎng)度plen頁(yè)表始址psta/段表typed
6、ef struct Stackint num;/段號(hào)int flag;/段狀態(tài)int plen;/頁(yè)表長(zhǎng)度int psta;/頁(yè)表始址Stack;其中狀態(tài)為1代表在內(nèi)存,為0代表不在內(nèi)存。2.1.2 頁(yè)表頁(yè)號(hào)pnum狀態(tài)位(是否在內(nèi)存中)塊號(hào)block/頁(yè)表typedef struct Pageint num;/頁(yè)號(hào)int flag;/頁(yè)狀態(tài),即是否在內(nèi)存。int block;/該頁(yè)對(duì)應(yīng)的塊號(hào)Page;2.1.3 數(shù)據(jù)區(qū)塊號(hào)block作業(yè)內(nèi)容 簡(jiǎn)單起見(jiàn),我們沒(méi)有把內(nèi)容初始化到每一個(gè)內(nèi)存地址,只給出每個(gè)作業(yè)塊的內(nèi)容,并且用一串字符代替。typedef struct Dataint num;/內(nèi)存
7、的塊數(shù)string str;/對(duì)應(yīng)數(shù)據(jù)塊的作業(yè)內(nèi)容,簡(jiǎn)化起見(jiàn)說(shuō)明內(nèi)容為一串字符。Data;2.1.4 快表段號(hào)段內(nèi)頁(yè)號(hào)塊號(hào)/快表typedef struct Quickint qs;/快表段號(hào)int qp;/快表頁(yè)號(hào)int qb;/快表段號(hào)Quick;2.1.5 段表寄存器段表始址段表長(zhǎng)度/段表寄存器typedef struct Stareint ssta;/段表始址int slen;/段表長(zhǎng)度Stare;2.2程序流程圖3 程序設(shè)計(jì)3.1 本程序平臺(tái)本實(shí)驗(yàn)使用VC+ 6.0平臺(tái),使用基本的控制臺(tái)應(yīng)用程序,單文檔結(jié)構(gòu),主要數(shù)據(jù)結(jié)構(gòu)是結(jié)構(gòu)體間的關(guān)系。打開(kāi)VC+6.0建立一個(gè)空工程,然后簡(jiǎn)歷C+源
8、文件,根據(jù)數(shù)據(jù)結(jié)構(gòu)編寫代碼。3.2變量和函數(shù)說(shuō)明3.2.1 變量說(shuō)明 Stack ss10;/全局變量,用來(lái)存放所有進(jìn)程的段,數(shù)組下標(biāo)就是段號(hào)。 Stare st;/全局變量,用來(lái)存放段表寄存器表。 Data work20;/全局變量,主存每一塊的內(nèi)容,下標(biāo)是塊號(hào)。Quick qu;/全局變量,存放快表。Page page55;/存放每個(gè)塊對(duì)應(yīng)的頁(yè)表。bool menuflag=0;/菜單函數(shù)標(biāo)志位,首次使用初始化表。int bbs;/內(nèi)存塊大小int bs;/內(nèi)存大小3.2.2函數(shù)說(shuō)明void menu();/為用戶提供菜單,詳情見(jiàn)第四部分截圖。void start();/初始化表項(xiàng)。詳情見(jiàn)
9、第四部分截圖。函數(shù)實(shí)現(xiàn)部分見(jiàn)附錄。void change();/地址轉(zhuǎn)換函數(shù)。詳情見(jiàn)第四部分截圖。函數(shù)實(shí)現(xiàn)部分見(jiàn)附錄。3.2.3 菜單設(shè)計(jì)進(jìn)入界面必須先對(duì)段表數(shù)據(jù)進(jìn)行初始化,然后可以多次進(jìn)行地址轉(zhuǎn)換。4 結(jié)果與運(yùn)行情況分析運(yùn)行程序,測(cè)試程序運(yùn)行情況:本次程序設(shè)計(jì)中,進(jìn)入界面必須先對(duì)段表數(shù)據(jù)進(jìn)行初始化,然后可以多次進(jìn)行地址轉(zhuǎn)換,其中會(huì)出現(xiàn)段頁(yè)越界,缺(段)頁(yè)。其中有一點(diǎn)和實(shí)際并不相同:由于C+里面單限制,不能實(shí)現(xiàn)快表和段表的同時(shí)查詢,故模擬時(shí)采用先查詢快表然后再查詢段表的模式,另外,為每一段創(chuàng)建的頁(yè)表,直接有頁(yè)表二維數(shù)組組成,第一緯代表段號(hào),第二維代表段內(nèi)頁(yè)號(hào)。 整體數(shù)據(jù)和用例見(jiàn)下圖:4.1 段
10、表初始化按照上圖,進(jìn)入程序后進(jìn)行段表初始化4.2 段號(hào)越界中斷測(cè)試從上圖中可以看到段號(hào)只有5個(gè),0-4,所以越界中斷。邏輯地址不合法。4.3 缺段中斷測(cè)試第二段不在內(nèi)存,邏輯地址無(wú)法轉(zhuǎn)化,需要把該段調(diào)入主存。4.4 缺頁(yè)中斷測(cè)試第三段第0頁(yè)不在內(nèi)存,邏輯地址無(wú)法轉(zhuǎn)化,需要調(diào)入頁(yè)面。4.5 頁(yè)表越界測(cè)試第三段沒(méi)有第五頁(yè),頁(yè)表越界,訪問(wèn)非法。4.6 在段表中成功訪問(wèn)數(shù)據(jù)測(cè)試成功測(cè)試數(shù)據(jù),第四段第0頁(yè)對(duì)應(yīng)塊號(hào)為10,故物理地址是10*1024+500=10740第十塊作業(yè)數(shù)據(jù)是:k5 自我評(píng)價(jià)與總結(jié)本次系統(tǒng)中,主要是利用簡(jiǎn)單的數(shù)據(jù)結(jié)構(gòu)和VC的簡(jiǎn)單的控制臺(tái)程序,采用自己定義數(shù)據(jù)模擬段頁(yè)式存儲(chǔ)管理的方式
11、,簡(jiǎn)單明快的是給用戶一個(gè)功能菜單,進(jìn)入菜單必須進(jìn)行段表數(shù)據(jù)初始化,然后只要不退出就可以進(jìn)行各種地址轉(zhuǎn)化測(cè)試,也可以重新初始化段表。而數(shù)據(jù)結(jié)構(gòu)部分,采用結(jié)構(gòu)體數(shù)組比較容易掌握的格式,是的查詢過(guò)程簡(jiǎn)單化。總的來(lái)說(shuō),利用簡(jiǎn)單的思想較為完整的模擬了段頁(yè)式存儲(chǔ)的各個(gè)步驟,甚至把快表也考慮了進(jìn)去。對(duì)于各種非法訪問(wèn)非常直觀的指出非法原因。為了體現(xiàn)數(shù)據(jù)訪問(wèn)的真實(shí)性,我還簡(jiǎn)單的為內(nèi)存中每一個(gè)作業(yè)快初始化了作業(yè)數(shù)據(jù),找到物理塊號(hào)后可以直接讀出塊的作業(yè)內(nèi)容。體現(xiàn)的本程序的根本目的。當(dāng)然,程序也有很多不足,例如可以考慮采用MFC窗口應(yīng)用程序,結(jié)合C+自帶的內(nèi)部模板函數(shù)MAP函數(shù),這樣也可以較好的模擬段頁(yè)式系統(tǒng),本程序
12、中對(duì)于段表的初始化過(guò)于繁瑣,可以采取文本數(shù)據(jù)庫(kù)的形式,利用讀取TXT的方式給段表鏈表結(jié)構(gòu)進(jìn)行初始化,會(huì)增加程序的可視性,和簡(jiǎn)便性。本次實(shí)驗(yàn)中,總體還算比較順利,但是測(cè)試過(guò)程中還是出現(xiàn)了一些問(wèn)題,主要是對(duì)段頁(yè)式存儲(chǔ)的理解不夠深入照成的,每一個(gè)段都有一個(gè)頁(yè)表,而這些段和自己的頁(yè)表是要靠段表里的頁(yè)表始址定位的,這個(gè)在程序中沒(méi)有完整的表現(xiàn)出來(lái),另外第一次程序中沒(méi)有考慮頁(yè)表越界中斷,這是沒(méi)有完整的把握模擬系統(tǒng)中的各個(gè)環(huán)節(jié)造成的,為此要以自己寫好的程序流程圖為基礎(chǔ),考慮到每一步分支程序,盡量用簡(jiǎn)單的方式把系統(tǒng)的各種功能模擬出來(lái)。上圖就是錯(cuò)把3 5 521當(dāng)成缺頁(yè)中斷,應(yīng)該是頁(yè)表越界,這個(gè)在第四部分已經(jīng)改正
13、。 當(dāng)然,完成本題還有其他的方式,可以借用VC的內(nèi)置數(shù)據(jù)結(jié)構(gòu)和模板,可以使用結(jié)構(gòu)體指針來(lái)存取段表,可以吧段表存到文本文件里,這些都是可行的。 通過(guò)本次課程設(shè)計(jì),加深了自己對(duì)書(shū)本知識(shí)的理解,通過(guò)親自把模擬系統(tǒng)做成數(shù)據(jù)結(jié)構(gòu),更加直觀真切的體會(huì)到段頁(yè)式存儲(chǔ)的基本思想,當(dāng)然同時(shí)也對(duì)其他的存儲(chǔ)知識(shí)加深了理解,同時(shí)鍛煉了自己把所學(xué)知識(shí)應(yīng)用的實(shí)際視圖里面的能力,做到學(xué)以致用,對(duì)計(jì)算機(jī)硬件里面的微觀世界有了進(jìn)一步的剖析。7附錄完整的程序代碼:#include<iostream>#include<string>using namespace std;/數(shù)據(jù)結(jié)構(gòu)/快表typedef str
14、uct Quickint qs;/快表段號(hào)int qp;/快表頁(yè)號(hào)int qb;/快表段號(hào)Quick;/數(shù)據(jù)區(qū),簡(jiǎn)單起見(jiàn),只為每一個(gè)內(nèi)儲(chǔ)塊寫入內(nèi)容,不具體到每一物理地址。typedef struct Dataint num;/內(nèi)存的塊數(shù)string str;/對(duì)應(yīng)數(shù)據(jù)塊的作業(yè)內(nèi)容,簡(jiǎn)化起見(jiàn)說(shuō)明內(nèi)容為一串字符。Data;/頁(yè)表typedef struct Pageint num;/頁(yè)號(hào)int flag;/頁(yè)狀態(tài),即是否在內(nèi)存。int block;/該頁(yè)對(duì)應(yīng)的塊號(hào)Page;/段表typedef struct Stackint num;/段號(hào)int flag;/段狀態(tài)int plen;/頁(yè)表長(zhǎng)度in
15、t psta;/頁(yè)表始址Stack;/段表寄存器typedef struct Stareint ssta;/段表始址int slen;/段表長(zhǎng)度Stare;Stack ss10;/全局變量 Stare st;/全局變量 Data work20;/全局變量Quick qu;/全局變量Page page55;bool menuflag=0;int bbs;/內(nèi)存塊大小int bs;/內(nèi)存大小void menu();void start();void change();int main()menu();return 0;void menu() cout<<"*請(qǐng)選擇*"
16、;<<endl;cout<<endl;cout<<"* 1、初始化表 *"<<endl;cout<<"* 2、物理地址轉(zhuǎn)換 *"<<endl;cout<<"* 3、退出 *"<<endl;int menu1;cin>>menu1;if(menu1!=1&&menu1!=2&&menu1!=3)cout<<"請(qǐng)輸入正確的選項(xiàng)"<<endl;menu();s
17、witch(menu1)case 1: menuflag=1; start(); break;case 2:if(menuflag=0) cout<<"請(qǐng)初始化表"<<endl;menu();change();break;case 3:return;/switch void start() cout<<"請(qǐng)輸入內(nèi)存大小(K)"<<endl; cin>>bs; cout<<"請(qǐng)輸入內(nèi)存塊的大小(k)"<<endl; cin>>bbs; int
18、 blocknum; blocknum=bs/bbs; cout<<"內(nèi)存一共被分為"<<blocknum<<"塊,每塊"<<bbs<<"k"<<"一共"<<bs<<"k"<<endl; cout<<"請(qǐng)輸入進(jìn)程個(gè)數(shù)"<<endl; int pn;cin>>pn; /下面求所有進(jìn)程的總段數(shù)和段表,并為每段創(chuàng)建頁(yè)表 int sums=0
19、; for (int pn1=0;pn1<pn;pn1+) cout<<"請(qǐng)輸入第"<<pn1<<"個(gè)進(jìn)程的段數(shù)"<<endl; int ppn;cin>>ppn; sums+=ppn; for(int ss1=0;ss1<sums;ss1+) cout<<"請(qǐng)輸入第"<<ss1<<"個(gè)段表數(shù)據(jù):段號(hào),狀態(tài),頁(yè)表長(zhǎng)度,頁(yè)表始址"<<endl; cin>>ssss1.num>>
20、;ssss1.flag>>ssss1.plen>>ssss1.psta; cout<<"請(qǐng)初始化第"<<ss1<<"段的頁(yè)表,輸入兩個(gè)數(shù)據(jù)頁(yè)表狀態(tài)和對(duì)應(yīng)塊號(hào)"<<endl; for(int sss1=0;sss1<ssss1.plen;sss1+) pagess1sss1.num=sss1; cout<<"請(qǐng)輸入該段第"<<sss1<<"個(gè)頁(yè)表的頁(yè)表狀態(tài)和對(duì)應(yīng)塊號(hào)"<<endl; cin&g
21、t;>pagess1sss1.flag>>pagess1sss1.block; /初始化段表寄存器 cout<<"初始化段表寄存器的段表始址"<<endl; cin>>st.ssta; st.slen=sums; /初始化內(nèi)存中物理地址每一塊的數(shù)據(jù)區(qū) cout<<"簡(jiǎn)單起見(jiàn),我們對(duì)物理地址的每一塊用字符串進(jìn)行簡(jiǎn)單的初始化,沒(méi)有具體到每一物理地址"<<endl; for (int bn=0;bn<blocknum;bn+) workbn.num=bn; cout<&l
22、t;"請(qǐng)輸入第"<<bn<<"個(gè)內(nèi)存塊里的作業(yè)內(nèi)容"<<endl; cin>>workbn.str; /初始化快表cout<<"簡(jiǎn)單起見(jiàn),我們初始化快表只有一個(gè)"<<endl;cout<<"請(qǐng)輸入要作為快表的段號(hào)和頁(yè)號(hào)"<<endl;cin>>qu.qb>>qu.qp;while(ssqu.qb.flag!=1|pagequ.qbqu.qp.flag!=1)cout<<"該頁(yè)
23、不在內(nèi)存請(qǐng)輸入一頁(yè)在內(nèi)存中的作為快表,請(qǐng)輸入要作為快表的段號(hào)和頁(yè)號(hào)"<<endl; cin>>qu.qb>>qu.qp;qu.qs=pagequ.qbqu.qp.block;menu();void change() cout<<"請(qǐng)輸入要轉(zhuǎn)化的邏輯地址,段號(hào)s,段內(nèi)頁(yè)號(hào)p,頁(yè)內(nèi)偏移地址d(B)"<<endl; int snum,pnum,dnum; cin>>snum>>pnum>>dnum; /首先查快表 if(snum=qu.qb&&pnum=qu.
24、qp) cout<<"快表命中"<<"對(duì)應(yīng)塊號(hào)是"<<qu.qs<<endl; cout<<"該塊中作業(yè)數(shù)據(jù)是"<<workpagequ.qbqu.qp.block.str<<endl; cout<<"物理地址是"<<qu.qs*bbs*1024+dnum<<endl; menu(); /訪問(wèn)段表寄存器 else cout<<"快表沒(méi)有命中,訪問(wèn)段表寄存器,段號(hào)等于段表始址加上偏移地址"<<endl; int ssnum; ss
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 保育老師健康知識(shí)培訓(xùn)
- 項(xiàng)目工程應(yīng)急演練課件
- 《平面設(shè)計(jì)》課件-第6章 設(shè)計(jì)符號(hào)學(xué)基礎(chǔ)
- 音樂(lè)信息技術(shù)課件
- 市政污水管網(wǎng)改造項(xiàng)目建設(shè)管理方案(模板范文)
- 城鎮(zhèn)污水管網(wǎng)建設(shè)工程運(yùn)營(yíng)管理方案(模板范文)
- xx片區(qū)城鄉(xiāng)供水一體化項(xiàng)目規(guī)劃設(shè)計(jì)方案(范文參考)
- 2025年氯鉑酸合作協(xié)議書(shū)
- 基于風(fēng)險(xiǎn)指標(biāo)的低壓設(shè)備退役優(yōu)化及其在新加坡電網(wǎng)中的應(yīng)用
- 2025年專用小麥新品種項(xiàng)目合作計(jì)劃書(shū)
- 2025北師大版新教材七年級(jí)上冊(cè)英語(yǔ)單詞表(精校打印)
- 2025至2030年中國(guó)電弧故障斷路器(AFCI)行業(yè)市場(chǎng)競(jìng)爭(zhēng)態(tài)勢(shì)及產(chǎn)業(yè)前景研判報(bào)告
- 2025年安徽省中考英語(yǔ)試卷(含答案)
- 思想道德與法治2023年版電子版教材-1
- 物聯(lián)網(wǎng)安全風(fēng)險(xiǎn)評(píng)估-第2篇-洞察闡釋
- 上汽英飛凌無(wú)錫分公司第二代框架式功率模塊產(chǎn)品導(dǎo)入年產(chǎn)150萬(wàn)片模塊項(xiàng)目環(huán)評(píng)資料環(huán)境影響
- 2025注冊(cè)核安全工程師考前沖刺試卷帶答案
- 國(guó)家數(shù)據(jù)局《2024年“數(shù)據(jù)要素×”項(xiàng)目案例集》
- (2025)行政能力測(cè)試題庫(kù)與答案
- 一級(jí)建造師安全生產(chǎn)試題及答案
- 機(jī)械質(zhì)檢員試題及答案
評(píng)論
0/150
提交評(píng)論