




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、2012-2013 學年第一學期計算機操作系統(tǒng)實驗報告實驗一windows 多線程【開發(fā)語言及實現(xiàn)平臺或?qū)嶒灜h(huán)境】c+/c#microsoft visual studio 6.0/ microsoft visual studio .net【實驗?zāi)康摹?1) 進一步理解操作系統(tǒng)的并發(fā)性;(2) 了解windows線程創(chuàng)建方法,并通過查閱資料理解各參數(shù)的含義;(3) 了解多線程程序設(shè)計方法,并進行簡單應(yīng)用?!緦嶒炓蟆?1) 逐程序進行簡要分析、運行各程序并仔細閱讀注釋;(2) 查閱msdn或其他資料,掌握相關(guān)系統(tǒng)調(diào)用使用方法和參數(shù)含義;(3) 完成實驗報告?!緦嶒灲Y(jié)果與分析】1sleep 是阻塞
2、線程函數(shù)。它會在當前語句阻塞一段時間,參數(shù)是以 1/1000 秒為單位的,線程 1 和主線程并發(fā)執(zhí)行, sleep(10) 使當前線程放棄目前的時間片, 并且在 10ms 內(nèi) 不會被再次調(diào)度。會使主進程和分進程同時被調(diào)度,進程也有父子關(guān)系。父進程退出后子進程也會退出,而加入 sleep 后主進程先停止10 后子進程就有時間進行了。加入循環(huán),使得倆個進程交替執(zhí)行,出現(xiàn)倆個1,倆個 6 是因為不可再現(xiàn)性,即倆個進程同時邁出同一部步,倆個進程中存在共享變量。因為加入 while 所以不需要sleep ,父子進程也能同時進行。2加入 sleep ( 1000)后父進程有足夠的時間運行子進程3加入倆個
3、sleep ( 1 )后,有可能到 thread1 is sell tickets: 時間片就停了, tickets 沒-, 還可以運行thread2 is sell tickets:<<tickets也就是說 tickets 變?yōu)?0 ,返回再運行thread1 is sell tickets 時就賣 0 號票了【實驗思考及總結(jié)】加入循環(huán),使得倆個進程交替執(zhí)行sleep 是阻塞線程函數(shù)。 它會在當前語句阻塞一段時間, 參數(shù)是以 1/1000 秒為單位的 線 程也有父子關(guān)系。父進程退出后子進程也會退出不可再現(xiàn)性,即倆個進程同時邁出同一部步,倆個進程中存在共享變量4
4、實驗二 windows 線程同步機制【開發(fā)語言及實現(xiàn)平臺或?qū)嶒灜h(huán)境】c+/c#microsoft visual studio 6.0/ microsoft visual studio .net【實驗?zāi)康摹?1) 了解windows線程同步機制;(2) 了解互斥體,并通過查閱資料理解互斥體對象的使用方法;(3) 了解事件,并通過查閱資料理解事件對象的使用方法;(4) 了解關(guān)鍵區(qū),并通過查閱資料理解關(guān)鍵區(qū)對象的使用方法;(5) 了解信號量,并通過查閱資料理解信號量對象的使用方法;(6) 利用windows線程同步機制,模擬生產(chǎn)者消費者問題?!緦嶒炓蟆?1) 逐程序進行簡要分析、運行各程序并仔細閱
5、讀注釋;(2) 查閱msdn或其他資料,掌握相關(guān)系統(tǒng)調(diào)用使用方法和參數(shù)含義;(3) 完成實驗報告。【實驗結(jié)果與分析】52-1 到 2-3 加入倆個 sleep ( 1)后,有可能到 thread1 is sell tickets: 時間片就停了,tickets 沒 -, 還可以運行thread2 is sell tickets:<<tickets也就是說tickets變?yōu)?,返回再運行thread1 is sell tickets 時就賣 0 號票了67【實驗思考及總結(jié)】sleep(10) 使當前線程放棄目前的時間片,并且在 10ms 內(nèi)不會被再次調(diào)度 進程也有父子
6、關(guān)系。 父進程退出后子進程也會退出, 線程之間的同步使用一些核心對象: 如 thread,process, evnet, mutex, semaphore. 在線程之間使用等待函數(shù)如waitforsingleobjects, waitformultipleobjects.等待函數(shù)使用核心對象的 handle作為參數(shù), 如果 handle 被激發(fā), 則執(zhí)行下一步。 handle 被激發(fā)的條件: (handle 是一段內(nèi)存指針,為了掩藏內(nèi)部實現(xiàn)而作的一個類型轉(zhuǎn)化指針)激發(fā):我的理解是資源未被戰(zhàn)勝。 未激發(fā): 資源正在被占用。 eg : 1)thread, process 被終止, 則激發(fā)。 2 )
7、 event:要通過它的 api 來手動激發(fā),是最靈活的激發(fā)方式,可被所有線程使用。 3)mutex: 沒被任何線程所擁有,則激發(fā)。1) 臨界區(qū) : critical_section 適用范圍 : 單一進程的各線程之間用來排它性占有特性:局部性對象; 快速而有效. 無法監(jiān)測是否被線程放棄函數(shù): entercriticalsectionleavecriticalsection2)mutex:適用范圍 : 不同線程之間用來排它性占有特性: 核心對象 , 可以使用 wait 進行等待 , 只能被擁有線程所釋放函數(shù):createmutex releasemutex3)semaphore:信號量 適用范
8、圍 : 用來限制資源占用特性: 核心對象 , 沒有擁有者 , 任何線程都可釋放函數(shù):createsemaphore opensemaphore releasesemaphore84)event: 適用范圍 : 同來控制對象信號的接收 , 常與信號系統(tǒng)結(jié)合起來特性 : 核心對象函數(shù) : createevent openevent pulseevent setevent resetevent 5)interlocked簡單的原子操作 , 如寫文件中對文件中字節(jié)范圍的鎖定_lockingnote:線程同步中很重要的可歸納為鎖系統(tǒng)lock 和信號系統(tǒng)signal lock 包括 :critical_s
9、ection, mutex, wait function: waitformultipleobjects示例 1: event / 事件機制 : 設(shè)置一個全局event 對象 , 這個只能等待最多 64 個對象 , 而且要用 waitformultipleobjects 來監(jiān)視線createevent( null, /default security attributes true, /manual-resetevent false, / initial state isnonsignaled text(writeevent) /object name );/(2) 產(chǎn)生一堆線程, 設(shè)置事件響
10、應(yīng)信號 signal, if (! setevent(ghwriteevent) ) printf(seteventfailed(%d)/n, getlasterror(); return; /(3) 設(shè)置線程等待事件, 所有線程都接到這個事件 , 這里對線程進行了同步 , 只有所有線程都執(zhí)行了 , 才執(zhí)行下一步 dwwaitresult =waitformultipleobjects( threadcount, / number of handles inarray ghthreads, / array of thread handles true, / wait until allare
11、signaled infinite); /(3.1)其中每個線程函數(shù)都在等待事件對象 , 這里也對線程進行了同步, 只有得到 signal 的線程才執(zhí)行下一步 dwwaitresult =waitforsingleobject( ghwriteevent, / event handle infinite); /indefinite wait /(4) 關(guān)閉了這個全局事件= closehandle(ghwriteevent) closeevents();createthread-(workerthread)-9 實驗三 windows 線程通信【開發(fā)語言及實現(xiàn)平臺或?qū)嶒灜h(huán)境】c+/c#micro
12、soft visual studio 6.0/ microsoft visual studio .net【實驗?zāi)康摹?1) 了解window 線程通信方法;(2) 了解匿名管道,并通過查閱資料理解匿名管道的使用方法;(3) 了解命名管道,并通過查閱資料理解命名管道的使用方法;【實驗要求】(1) 逐程序進行簡要分析、運行各程序并仔細閱讀注釋;(2) 查閱msdn或其他資料,掌握相關(guān)系統(tǒng)調(diào)用使用方法和參數(shù)含義;(3) 完成實驗報告?!緦嶒灲Y(jié)果與分析】【實驗思考及總結(jié)】學會了在 vc6.0 中 open 已經(jīng)編譯好的程序,選擇所有文件,線程之間通信的兩個基本問題是互斥和同步。線程同步是指線程之間所具
13、有的一種制約關(guān)系,一個線程的執(zhí)行依賴另一個線程的消息,當它沒有得到另一個線程的消息時應(yīng)等待,直到消息到達時才被喚醒。線程互斥是指對于共享的操作系統(tǒng)資源(指的是廣義的資源,而不是windows 的 .res 文件, 譬如全局變量就是一種共享資源) , 在各線程訪問時的排它性。 當有若干個線程都要使用某一共享資源時, 任何時刻最多只允許一個線程去使用, 其它要使用該資源的線程必須等待,直到占用資源者釋放該資源。線程互斥是一種特殊的線程同步。實際上,互斥和同步對應(yīng)著線程間通信發(fā)生的兩種情況:( 1)當有多個線程訪問共享資源而不使資源被破壞時;( 2 )當一個線程需要將某個任務(wù)已經(jīng)完成的情況通知另外一
14、個或多個線程時。 在 win32 中,同步機制主要有以下幾種:( 1)事件(event);( 2)信號量(semaphore);( 3)互斥量(mutex);( 4)臨界區(qū)(critical section)。全局變量因為進程中的所有線程均可以訪問所有的全局變量, 因而全局變量成為 win32 多線程通信的最簡單方式。例如:實驗四 銀行家算法模擬【開發(fā)語言及實現(xiàn)平臺或?qū)嶒灜h(huán)境】c+/c#microsoft visual studio 6.0/ microsoft visual studio .net 2003【實驗?zāi)康摹浚?1)進一步理解利用銀行家算法避免死鎖的問題;( 2)在了解和掌握銀行家
15、算法。( 3)理解和掌握安全序列、安全性算法【實驗內(nèi)容】( 1)編寫安全性算法;( 2)編寫銀行家算法,并編制銀行家算法通用程序,將調(diào)試結(jié)果顯示在計算機屏幕上,再檢測和筆算的一致性?!驹创a】#include<iostream> using namespace std;#include<string.h>#include<stdio.h>#define false 0#define true 1int max100100=0;/ int avaliable100=0;/char name100=0;/各進程所需
16、各類資源的最大需求系統(tǒng)可用資源 資源的名稱int allocation100100=0;/系統(tǒng)已分配資源int need100100=0;/int request100=0;/int temp100=0;/int work100=0;/還需要資源請求資源向量存放安全序列存放系統(tǒng)可提供資源int m=100;/ 作業(yè)的最大數(shù)為 100int n=100;/ 資源的最大數(shù)為 100void showdata()/ 顯示資源矩陣int i,j;cout<< 系統(tǒng)目前可用的資源 avaliable:<<endl;for(i=0;i<
17、n;i+)cout<<namei<< ;cout<<endl;for (j=0;j<n;j+)cout<<avaliablej<< ;/輸出分配資源cout<<endl;cout<< max allocation need<<endl;cout<< 進程名 ;15for(j=0;j<3;j+)for(i=0;i&
18、;lt;n;i+)cout<<namei<< ;cout<< ;cout<<endl;for(i=0;i<m;i+)cout<< <<i<< ;for(j=0;j<n;j+)cout<<maxij<< ;cout<< ;for(j=0;j<n;j+)cout<&a
19、mp;lt;allocationij<< ;cout<< ;for(j=0;j<n;j+)cout<<needij<< ;cout<<endl;int changdata(int i)/進行資源分配int j;for (j=0;j<m;j+) avaliablej=avaliablej-requestj;allocationij=allocationij+requestj;needij=needij-requestj;retur
20、n 1;int safe()/ 安全性算法int i,k=0,m,apply,finish100=0;int j;int flag=0;for(i=0;i<n;i+)worki=avaliablei;for(i=0;i<m;i+)apply=0;for(j=0;j<n;j+)if (finishi=false&&needij<=workj)apply+;if(apply=n)for(m=0;m<n;m+)workm=workm+allocationim;/變分配數(shù)finishi=true; t
21、empk=i;i=-1; k+;flag+; 16 for(i=0;i<m;i+) if(finishi=false) cout<< 系統(tǒng)不安全 <<endl;/ 不成功系統(tǒng)不安全 return -1; cout<< 系統(tǒng)是安全的! <<endl;/ 如果安全,輸出成功 cout<< 分配的序列: ;for(i=0;i<m;i+)/輸出運行進程數(shù)組cout<<tempi;if(i<m-1
22、) cout<<->cout<<endl;return 0;void share()/ 利用銀行家算法對申請資源對進行判定 char ch;int i=0,j=0;ch=y;cout<< 請輸入要求分配的資源進程號( 0-<<m-1<<):;cin>>i;/ 輸入須申請的資源號cout<< 請輸入進程<<i<< 申請的資源: &am
23、p;lt;<endl;for(j=0;j<n;j+) cout<<namej<<:;cin>>requestj;/輸入需要申請的資源for (j=0;j<n;j+)if(requestj>needij)/ 判斷申請是否大于需求,若大于則出錯 cout<< 進程 <<i<< 申請的資源大于它需要的資源;cout<< 分配不合理,不予分配! &
24、;lt;<endl; ch=n; break;else if(requestj>avaliablej)/ 判斷申請是否大于當前資源,若大于則/ 出錯cout<< 進程 <<i<< 申請的資源大于系統(tǒng)現(xiàn)在可利用的資源17cout<< 分配出錯,不予分配! <<endl;ch=n;break;if(ch=y) changdata(i);/ 根據(jù)進程需求量變換資源showdata();/ 根據(jù)進程需求量顯示變換后的資源safe();/
25、 根據(jù)進程需求量進行銀行家算法判斷void addresources()/ 添加資源int n,flag;cout<< 請輸入需要添加資源種類的數(shù)量: ;cin>>n;flag=n;n=n+n;for(int i=0;i<n;i+)cout<<名稱:;cin>>nameflag;cout<<數(shù)量:;cin>>avaliableflag+;showdata();safe();void delresources()/
26、刪除資源char ming;int i,flag=1;cout<< 請輸入需要刪除的資源名稱: ;docin>>ming;for(i=0;i<n;i+)if(ming=namei)flag=0;break;if(i=n)cout<< 該資源名稱不存在,請重新輸入: ;while(flag);for(int j=i;j<n-1;j+)namej=namej+1;18avaliablej=avaliablej+1;n=n-1;showdata();safe();void changere
27、sources()/ 修改資源函數(shù)cout<< 系統(tǒng)目前可用的資源 avaliable:<<endl;for(int i=0;i<n;i+)cout<<namei<<:<<avaliablei<<endl;cout<< 輸入系統(tǒng)可用資源 avaliable:<<endl;cin>>avaliable0>>
28、avaliable1>>avaliable2;cout<< 經(jīng)修改后的系統(tǒng)可用資源為 <<endl;for (int k=0;k<n;k+)cout<<namek<<:<<avaliablek<<endl;showdata();safe();void addprocess()/ 添加作業(yè)int flag=m;m=m+1;cout<< 請輸入該作業(yè)的最打需求量m
29、ax<<endl;for(int i=0;i<n;i+)cout<<namei<<:;cin>>maxflagi;needflagi=maxflagi-allocationflagi;showdata();safe();int main()/ 主函數(shù)int i,j,number,choice,m,n,flag;char ming;cout<<*資 源 管 理 系 統(tǒng) 的 設(shè) 計 與 實 現(xiàn)*<<endl; cout
30、<<請首先輸入系統(tǒng)可供資源種類的數(shù)量: ;cin>>n;n=n;for(i=0;i<n;i+)cout<< 資源 <<i+1<< 的名稱:cin>>ming;namei=ming;cout<< 資源的數(shù)量: ;cin>>number;19avaliablei=number;cout<<endl;cout<<
31、; 請輸入作業(yè)的數(shù)量: ;cin>>m;m=m;cout<< 請輸入各進程的最大需求量( <<m<<*<<n<<矩陣)max:<<endl;for(i=0;i<m;i+)for(j=0;j<n;j+)cin>>maxij;doflag=0;cout<< 請輸入各進程已經(jīng)申請的資源量( <<m
32、<<*<<n<<矩陣) allocation:<<endl; for(i=0;i<m;i+)for(j=0;j<n;j+)cin>>allocationij;if(allocationij>maxij)flag=1;needij=maxij-allocationij;if(flag)cout<< 申請的資源大于最大需求量,請重新輸入! n;while(flag);showdata();/
33、 顯示各種資源safe();/ 用銀行家算法判定系統(tǒng)是否安全while(true)cout<<*銀行家算法演示*<<endl;cout<< 1:增加資源<<endl;cout<< 2:刪除資源<<endl;cout<< 3:修改資源<<endl;cout<< 4:分配資源<<endl;cout<&
34、lt; 5:增加作業(yè)<<endl;cout<< 0:離開 <<endl;cout<<*<<endl;cout<< 請選擇功能號:cin>>choice;switch(choice)case 1: addresources();break;case 2: delresources();break;case 3: changeresources();break;case 4: share();break;
35、case 5: addprocess();break;case 0: choice=0;break;default:cout<< 請 正 確 選 擇 功 能 號( 0-5)!<<endl;break; return 1;【實驗結(jié)果與分析】【實驗思考及總結(jié)】銀行家算法的安全算法不唯一, 我們可以把操作系統(tǒng)看作是銀行家, 操作系統(tǒng)管理的資源相當于銀行家管理的資金,進程向操作系統(tǒng)請求分配資源相當于用戶向銀行家貸款。操作系統(tǒng)按照銀行家制定的規(guī)則為進程分配資源, 當進程首次申請資源時, 要測試該進程對資源的最大需求量, 如果系統(tǒng)現(xiàn)存的資源可以滿足它
36、的最大需求量則按當前的申請量分配資源,否則就推遲分配。當進程在執(zhí)行中繼續(xù)申請資源時,先測試該進程已占用的資源數(shù)與本次申請的資源數(shù)之和是否超過了該進程對資源的最大需求量。若超過則拒絕分配資源,若沒有超過則再測試系統(tǒng)現(xiàn)存的資源能否滿足該進程尚需的最大資源量,若能滿足則按當前的申請量分配資源,否則也要推遲分配。實驗五 頁面置換算法模擬【開發(fā)語言及實現(xiàn)平臺或?qū)嶒灜h(huán)境】c+/c#microsoft visual studio 6.0/ microsoft visual studio .net 2003 【實驗?zāi)康摹浚?1)進一步理解利用頁面調(diào)度算法實現(xiàn)虛擬內(nèi)存的問題;( 2)通過模擬實現(xiàn)請求頁式存儲管理
37、的幾種基本頁面置換算法,了解虛擬存儲技術(shù)的特 點。( 3)掌握虛擬存儲請求頁式存儲管理中幾種基本頁面置換算法的基本思想和實現(xiàn)過程,并比較它們的效率。( 4)了解頁面大小和內(nèi)存實際容量對命中率的影響。 【實驗內(nèi)容】( 1) 在了解和掌握頁面調(diào)度算法的基礎(chǔ)上, 編制先進先出的算法( fifo ) 、 最近最少使用算法( lru ) 、最佳淘汰算法( opt )等各種頁面置換算法。將調(diào)試結(jié)果顯示在計算機屏幕上, 再檢測和筆算的一致性。( 2)理解和掌握命中率的問題( 3)會使用某種編程語言。 【源代碼】#include <iostream>#include <
38、;deque>#include <ctime>using namespace std; typedef structint id; / 頁面 idint staytime; / 內(nèi)存中駐留時間int unusetime; / 已經(jīng)多久未被使用cpage;deque<int> runqueue;deque<cpage> interpage; /內(nèi)存中的四個頁面deque<cpage> exterpage; /外存中的n 個頁面int presentseat; / 目前運行
39、到了隊列的第幾個?int lacknum3 =0;int getrandnum(int range) /返回 0,range) 范圍內(nèi)的整數(shù)return static_cast<int>(rand()%range);int findpageidbycmdid(int cmdid) /面return static_cast<int>(cmdid/10);void initdevice() /srand(static_cast<int>(time(null); int t_cmdnum = getrandnum(3
40、20); / runqueue.push_back(t_cmdnum); / if(t_cmdnum < 319) runqueue.push_back(t_cmdnum+1); /while(runqueue.size() <= 320)t_cmdnum = getrandnum(t_cmdnum); / runqueue.push_back(t_cmdnum);/ if(t_cmdnum < 319)runqueue.push_back(t_cmdnum+1);/通過強制轉(zhuǎn)換成整數(shù)的形式判斷指令屬于哪個頁按照 25% 50% 25%的標準生成隨機選
41、擇第一條指令將其插入隊列順序執(zhí)行下一條指令跳轉(zhuǎn)到ml屬于0,m-1將ml插入隊列將m1+1插入隊列int temp = 320 - (t_cmdnum + 2);t_cmdnum = t_cmdnum+2+getrandnum(temp);/ 跳轉(zhuǎn)至U m2屬于m+2,319runqueue.push_back(t_cmdnum);/ 插入隊列if(t_cmdnum < 319)runqueue.push_back(t_cmdnum+1);/ 將 m2+1 插入隊列while(runqueue.size() > 320)runqueue.pop_back();voi
42、d initmemoryqueue() / 初始化運行標志、內(nèi)存外存頁面隊列presentseat = 0;exterpage.clear();interpage.clear();for(int i=0;i<32;i+)cpage temp;temp.id = i;temp.staytime = 0;temp.unusetime = 0;exterpage.push_back(temp);int searchstatusofpage(int t_pageid,bool sign) /分別在內(nèi)外存中查找頁面存在返回位置 不存在返回 -1if(sign)for(unsigned i=
43、0;i<interpage.size();i+)if(t_pageid = interpagei.id) return i; / 這里的括號不能刪除,否則 if else 的匹配會出問題 elsefor(unsigned j=0;j<exterpage.size();j+)if(t_pageid = exterpagej.id)return j;return -1;int searchnextstatusofinterpage(int start, int id) /opt算法中查找內(nèi)存頁面中的頁面下次需要用到它的時候的隊列下標 / 找到就返回下標 沒找到就返回 -
44、1 for(int i=start;i < 320;i+) if(static_cast<int>(runqueuei/10) = id) return i;return -1;int findlongeststaytimepage() /fifo算法中查找在內(nèi)存中呆了最久的頁面int max = 0;for(unsigned i=1;i<interpage.size();i+)if(interpagei.staytime>interpagemax.staytime)max = i;return max;int findlo
45、ngestunusetimepage() /lru算法中查找最久未使用的頁面int max = 0;for(unsigned j=0;j<interpage.size();j+)if(interpagej.unusetime>interpagemax.unusetime)max = j;return max;int findneedlongesttimepage() /opt 算法中查找最長時間不會用到的頁面deque<int> temp;for(unsigned i=0;i < interpage.size();i+)in
46、t it = searchnextstatusofinterpage(presentseat,interpagei.id);if(it = -1)return i;temp.push_back(it);int max = -1,status = 0;for(unsigned j=1;j < temp.size();j+)if(max < tempj)max = tempj;status = j;return status; /返回需要最長時間才執(zhí)行的頁面在內(nèi)存中的位置void directflod(int t_pageid) / 當內(nèi)存空間還有剩余時直接調(diào)入int
47、status = searchstatusofpage(t_pageid,false);if(status = -1) return;interpage.push_back(exterpagestatus); /先插入節(jié)點到內(nèi)存,再從外存中將其刪除 exterpage.erase(exterpage.begin()+status);bool manage(int count,int t_pageid) / 當內(nèi)存已經(jīng)滿了需要按照三種算法調(diào)度時int status = searchstatusofpage(t_pageid,false); /獲取執(zhí)行頁面在外存中的索引地址 if(status = -1)return false;int targetstatus = 0;if(count = 0)targetstatus = findneedlongesttimepage();else if(count = 1)targetstatus = findlongeststay
溫馨提示
- 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)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 中外設(shè)計史知到課后答案智慧樹章節(jié)測試答案2025年春山東藝術(shù)學院
- 山西省晉城市高三上學期第一次模擬考試語文試題
- 2025年防雷防爆及弱電工程設(shè)備項目合作計劃書
- 甘肅省武威市涼州區(qū)2024-2025學年高二下學期第一次質(zhì)量檢測英語試卷(原卷版+解析版)
- 勞務(wù)派遣勞動者法律權(quán)益保障的問題與改進策略研究
- 供應(yīng)鏈管理在DB化學公司的應(yīng)用研究
- 江蘇省大病保險助推精準扶貧的運行情況研究
- 新課程改革理念下小學數(shù)學教學生活化的創(chuàng)設(shè)
- 維生素D對糖尿病小鼠腎臟并發(fā)癥保護作用的初步研究
- pe管道合同范本
- 《飯店服務(wù)與管理》認識飯店的“神經(jīng)中樞”
- GB/T 15856.5-2023六角凸緣自鉆自攻螺釘
- 電子產(chǎn)品質(zhì)量工程技術(shù)與管理高職PPT全套完整教學課件
- 【橡膠工藝】-橡膠履帶規(guī)格
- 小學勞動技術(shù)云教三年級下冊植物栽培種植小蔥(省一等獎)
- 2020年環(huán)境法律法規(guī)及其它要求清單
- 綜采工作面主要設(shè)備選型設(shè)計方案
- 籍貫對照表完整版
- GB/T 7251.3-2017低壓成套開關(guān)設(shè)備和控制設(shè)備第3部分:由一般人員操作的配電板(DBO)
- GB/T 22576.7-2021醫(yī)學實驗室質(zhì)量和能力的要求第7部分:輸血醫(yī)學領(lǐng)域的要求
- 2023年江蘇省中學生生物奧林匹克競賽試題及答案
評論
0/150
提交評論