版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p> 操作系統(tǒng)課程設(shè)計(jì)報(bào)告 </p><p><b> 1、概述</b></p><p><b> 一、設(shè)計(jì)目的</b></p><p> 1.對死鎖避免中的銀行家算法作進(jìn)一步理解。</p><p> 2.加深理解死鎖的概念。 </p><p>
2、3.加深理解安全序列和安全狀態(tài)的概念。</p><p> 4.通過編寫和調(diào)試一個(gè)系統(tǒng)動(dòng)態(tài)分配資源的簡單模擬程序,觀察死鎖產(chǎn)生的條件,并采用適當(dāng)?shù)乃惴?,有效地防止和避免死鎖地發(fā)生。</p><p> 二、開發(fā)環(huán)境 操作系統(tǒng) Windows xp</p><p> 編譯環(huán)境 VC++6.0</p><p&g
3、t; 生成文件 銀行家算法.cpp</p><p><b> 2、需求分析</b></p><p><b> 一、死鎖概念:</b></p><p> 是指兩個(gè)或兩個(gè)以上的進(jìn)程在執(zhí)行過程中,因爭奪資源而造成的一種互相等待的現(xiàn)象,若無外力作用,它們都將無法推進(jìn)下去.此時(shí)稱系統(tǒng)處于死鎖狀態(tài)或系統(tǒng)產(chǎn)生了死
4、鎖,這些永遠(yuǎn)在互相等待的進(jìn)程稱為死鎖進(jìn)程. 由于資源占用是互斥的,當(dāng)某個(gè)進(jìn)程提出申請資源后,使得有關(guān)進(jìn)程在無外力協(xié)助下,永遠(yuǎn)分配不到必需的資源而無法繼續(xù)運(yùn)行,這就產(chǎn)生了死鎖。</p><p> 二、關(guān)于死鎖的一些結(jié)論:</p><p> 1.參與死鎖的進(jìn)程最少是兩個(gè)(兩個(gè)以上進(jìn)程才會(huì)出現(xiàn)死鎖) </p><p> 2.參與死鎖的進(jìn)程至少有兩個(gè)已經(jīng)占有資源
5、</p><p> 3.參與死鎖的所有進(jìn)程都在等待資源 </p><p> 4.參與死鎖的進(jìn)程是當(dāng)前系統(tǒng)中所有進(jìn)程的子集 </p><p> 如果死鎖發(fā)生,會(huì)浪費(fèi)大量系統(tǒng)資源,甚至導(dǎo)致系統(tǒng)崩潰。 </p><p><b> 資源分類:</b></p><p><b> 永久性資
6、源: </b></p><p> 可以被多個(gè)進(jìn)程多次使用(可再用資源) </p><p> 1) 可搶占資源 </p><p> 2) 不可搶占資源 </p><p><b> 臨時(shí)性資源:</b></p><p> 只
7、可使用一次的資源;如信號量,中斷信號,同步信號等(可消耗性資源) </p><p> “申請--分配--使用--釋放”模式 </p><p> 產(chǎn)生死鎖的四個(gè)必要條件:</p><p> 1、互斥使用(資源獨(dú)占) </p><p> 一個(gè)資源每次只能給一個(gè)進(jìn)程使用 </p><p> 2、不可強(qiáng)占(不可剝奪)
8、 </p><p> 資源申請者不能強(qiáng)行的從資源占有者手中奪取資源,資源只能由占有者自愿釋放 </p><p> 3、請求和保持(部分分配,占有申請) </p><p> 一個(gè)進(jìn)程在申請新的資源的同時(shí)保持對原有資源的占有(只有這樣才是動(dòng)態(tài)申請,動(dòng)態(tài)分配) </p><p><b> 4、循環(huán)等待 </b><
9、/p><p> 存在一個(gè)進(jìn)程等待隊(duì)列 {P1 , P2 , … , Pn}, 其中P1等待P2占有的資源,P2等待P3占有的資源,…,Pn等待P1占有的資源,形成一個(gè)進(jìn)程等待環(huán)路 。</p><p><b> 死鎖的解決方案</b></p><p> 5.1產(chǎn)生死鎖的例子 </p><p> 申請不同類型
10、資源產(chǎn)生死鎖 </p><p><b> P1: </b></p><p><b> … </b></p><p><b> 申請打印機(jī) </b></p><p><b> 申請掃描儀 </b></p><p><b&
11、gt; 使用 </b></p><p><b> 釋放打印機(jī) </b></p><p><b> 釋放掃描儀 </b></p><p><b> … </b></p><p><b> P2: </b></p><
12、p><b> … </b></p><p><b> 申請掃描儀 </b></p><p><b> 申請打印機(jī) </b></p><p><b> 使用 </b></p><p><b> 釋放打印機(jī) </b><
13、;/p><p><b> 釋放掃描儀 </b></p><p><b> … </b></p><p> 申請同類資源產(chǎn)生死鎖(如內(nèi)存) </p><p> 設(shè)有資源R,R有m個(gè)分配單位,由n個(gè)進(jìn)程P1,P2,…,Pn(n > m)共享。假設(shè)每個(gè)進(jìn)程對R的申請和釋放符合下列原則: <
14、/p><p> * 一次只能申請一個(gè)單位 </p><p> * 滿足總申請后才能使用 </p><p> * 使用完后一次性釋放 </p><p><b> m=2,n=3 </b></p><p> 資源分配不當(dāng)導(dǎo)致死鎖產(chǎn)生</p><p><b>
15、5.2死鎖預(yù)防:</b></p><p><b> 摒棄“請求和保持”</b></p><p><b> 摒棄“不剝奪”條件</b></p><p><b> 摒棄“環(huán)路等待”</b></p><p> 5.3安全狀態(tài)與不安全狀態(tài) :</p>
16、<p> 安全狀態(tài) :如果操作系統(tǒng)能保證所有的進(jìn)程在 有限的時(shí)間 內(nèi)得到需要的 全部資源 ,則稱系統(tǒng)處于“安全狀態(tài)”。</p><p><b> 3、數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)</b></p><p> 一、可利用資源向量矩陣AVAILABLE。這是一個(gè)含有M個(gè)元素的數(shù)組,其中的每一個(gè)元素代表一類可利用的資源數(shù)目,其初始值是系統(tǒng)中所配置的該類全部可用資源的數(shù)目,其數(shù)
17、值隨該類資源的分配和回收而動(dòng)態(tài)地改變。如果AVAILABLE [j]= K,則表示系統(tǒng)中現(xiàn)有R類資源K個(gè)</p><p> 二、最大需求矩陣MAX。這是一個(gè)N*M的矩陣,用以表示每一個(gè)進(jìn)程對M類資源的最大需求。如果MAX [i,j]=K,則表示進(jìn)程I需要R類資源的數(shù)目為K。</p><p> 三、分配矩陣ALLOCATION。這也是一個(gè)N*M的矩陣,它定義了系統(tǒng)中每一類資源當(dāng)前已分配給
18、每一進(jìn)程的資源數(shù)。如果ALLOCATION [i,j]=K,則表示進(jìn)程i當(dāng)前已分得R類資源的數(shù)目為K。</p><p> 四、需求矩陣NEED。這也是一個(gè)n*m的矩陣,用以表示每一個(gè)進(jìn)程尚需的各類資源數(shù)。如果NEED [i,j]=K,則表示進(jìn)程i還需要R類資源K個(gè),才能完成其任務(wù)。 上述矩陣存在下述關(guān)系:</p><p> NEED [i,j]= MAX[i,j]﹣ AL
19、LOCATION[i,j] 4、算法的實(shí)現(xiàn)</p><p><b> 初始化</b></p><p> 由用戶輸入數(shù)據(jù),分別對可利用資源向量矩陣AVAILABLE、最大需求矩陣MAX、分配矩陣ALLOCATION、需求矩陣NEED賦值。</p><p><b> 銀行家算法</b></p>
20、<p> 在避免死鎖的方法中,所施加的限制條件較弱,有可能獲得令人滿意的系統(tǒng)性能。在該方法中把系統(tǒng)的狀態(tài)分為安全狀態(tài)和不安全狀態(tài),只要能使系統(tǒng)始終都處于安全狀態(tài),便可以避免發(fā)生死鎖。</p><p> 銀行家算法的基本思想是分配資源之前,判斷系統(tǒng)是否是安全的;若是,才分配。它是最具有代表性的避免死鎖的算法。</p><p> 設(shè)進(jìn)程cusneed提出請求REQUEST
21、[i],則銀行家算法按如下規(guī)則進(jìn)行判斷。</p><p> (1)如果REQUEST [cusneed] [i]<= NEED[cusneed][i],則轉(zhuǎn)(2);否則,出錯(cuò)。</p><p> (2)如果REQUEST [cusneed] [i]<= AVAILABLE[cusneed][i],則轉(zhuǎn)(3);否則,出錯(cuò)。</p><p> (3)系
22、統(tǒng)試探分配資源,修改相關(guān)數(shù)據(jù):</p><p> AVAILABLE[i]-=REQUEST[cusneed][i];</p><p> ALLOCATION[cusneed][i]+=REQUEST[cusneed][i];</p><p> NEED[cusneed][i]-=REQUEST[cusneed][i];</p><p>
23、; (4)系統(tǒng)執(zhí)行安全性檢查,如安全,則分配成立;否則試探險(xiǎn)性分配作廢,系統(tǒng)恢復(fù)原狀,進(jìn)程等待。</p><p><b> 三、安全性檢查算法</b></p><p> (1)設(shè)置兩個(gè)工作向量Work=AVAILABLE;FINISH</p><p> (2)從進(jìn)程集合中找到一個(gè)滿足下述條件的進(jìn)程,</p><p&g
24、t; FINISH==false;</p><p> NEED<=Work;</p><p> 如找到,執(zhí)行(3);否則,執(zhí)行(4)</p><p> (3)設(shè)進(jìn)程獲得資源,可順利執(zhí)行,直至完成,從而釋放資源。</p><p> Work+=ALLOCATION;</p><p> Finish=tr
25、ue;</p><p><b> GOTO 2</b></p><p> (4)如所有的進(jìn)程Finish= true,則表示安全;否則系統(tǒng)不安全。</p><p><b> 四、各算法流程圖 </b></p><p><b> 初始化算法流程圖:</b></p&g
26、t;<p><b> 銀行家算法流程圖:</b></p><p><b> 源程序清單</b></p><p> #include "iostream.h"</p><p> int main(int argc, char* argv[])</p><p>
27、<b> {</b></p><p> int I,J,i,i1,j,n,sign;</p><p> int avail[10],max[10][10],alloc[10][10],need[10][10],requ[10][10],work[10],finish[10];</p><p> cout<<"請輸入
28、進(jìn)程數(shù)和資源數(shù),以空格分開:";</p><p> cin>>I>>J;</p><p> for(i=0;i<I;i++)</p><p><b> {</b></p><p> for(j=0;j<J;j++)</p><p><b&
29、gt; {</b></p><p> cout<<"請輸入進(jìn)程"<<i<<"對資源"<<j<<"的最大需求量:";</p><p> cin>>max[i][j]; /*初始化max*/</p><p><
30、b> }</b></p><p><b> }</b></p><p> for(i=0;i<I;i++)</p><p><b> {</b></p><p> for(j=0;j<J;j++)</p><p><b>
31、{</b></p><p> cout<<"請輸入進(jìn)程"<<i<<"已分配到資源"<<j<<"的數(shù)量:";</p><p> cin>>alloc[i][j]; /*初始化alloc*/</p><p><b&g
32、t; }</b></p><p><b> }</b></p><p> for(i=0;i<I;i++)</p><p><b> {</b></p><p> for(j=0;j<J;j++)</p><p><b> {&l
33、t;/b></p><p> cout<<"請輸入進(jìn)程"<<i<<"還需要資源"<<j<<"的數(shù)量:";</p><p> cin>>need[i][j]; /*初始化need*/</p><p><b> }
34、</b></p><p><b> }</b></p><p> for(j=0;j<J;j++)</p><p><b> {</b></p><p> cout<<"資源"<<j<<"可利用數(shù)量:&quo
35、t;;</p><p> cin>>avail[j]; /*初始化avail*/</p><p><b> }</b></p><p> /*************用安全性算法判斷系統(tǒng)初始化后的當(dāng)前狀態(tài)是否安全 START ************/</p><p> for(j=0;j&
36、lt;J;j++)</p><p><b> {</b></p><p> work[j]=avail[j];</p><p><b> }</b></p><p> for(i=0;i<I;i++)</p><p><b> {</b>
37、</p><p> finish[i]=0; /*設(shè)置兩個(gè)工作向量*/</p><p><b> }</b></p><p> A1:for(i=0;i<I;i++)</p><p><b> {</b></p><p> sign=1;
38、 /*sign==1表示need<=work*/</p><p> for(j=0;j<J;j++)</p><p><b> {</b></p><p> if(need[i][j]>work[j])</p><p><b> {</b></p&g
39、t;<p><b> sign=0;</b></p><p> } </p><p><b> }</b></p><p> if(finish[i]==0&&sign==1)</p><p><b>
40、{</b></p><p> for(j=0;j<J;j++)</p><p><b> {</b></p><p> work[j]=work[j]+alloc[i][j];</p><p><b> }</b></p><p> finish[
41、i]=1; /*設(shè)置finish向量*/ </p><p> cout<<"P"<<i<<endl; /*輸出安全序列*/</p><p><b> goto A1;</b></p><p><b> }</b></p&
42、gt;<p><b> }</b></p><p> sign=1; /*判斷系統(tǒng)狀態(tài)是否安全*/</p><p> for(i=0;i<I;i++) </p><p><b> {</b></p><p> if(finish[i]==0)</p&g
43、t;<p> sign=0; </p><p><b> }</b></p><p> if(sign==0)</p><p><b> {</b></p><p> cout<<"當(dāng)前系統(tǒng)處于不安全狀態(tài)."<<en
44、dl; </p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p> cout<<"當(dāng)前系統(tǒng)處于安全狀態(tài),可以接受資源請求."<<endl;
45、 </p><p><b> }</b></p><p> /*************用安全性算法判斷系統(tǒng)初始化后的當(dāng)前狀態(tài)是否安全 END ************/</p><p> /***********************設(shè)置請求向量 START ***********************/</p&g
46、t;<p> S:cout<<"請輸入請求資源的進(jìn)程的進(jìn)程號:";</p><p> cin>>i; i1=i;</p><p> for(j=0;j<J;j++)</p><p><b> {</b></p><p> cout<&l
47、t;"請輸入進(jìn)程"<<i<<"請求的資源"<<j<<"的數(shù)量:";</p><p> cin>>requ[i][j];/*進(jìn)程請求資源*/</p><p><b> }</b></p><p> for(j=0;j&
48、lt;J;j++)</p><p><b> {</b></p><p> if(requ[i][j]>need[i][j])</p><p><b> {</b></p><p> cout<<"錯(cuò)誤!請求數(shù)超過需要數(shù)!"<<endl;&l
49、t;/p><p><b> goto S;</b></p><p><b> }</b></p><p><b> }</b></p><p> for(j=0;j<J;j++)</p><p><b> {</b>&l
50、t;/p><p> if(requ[i][j]>avail[j])</p><p><b> {</b></p><p> cout<<"可利用資源不足,無法分配。"<<endl;</p><p><b> goto S;</b></p&g
51、t;<p><b> }</b></p><p><b> }</b></p><p> /***********************設(shè)置請求向量 END ***********************/</p><p> for(j=0;j<J;j++)</p><p&
52、gt;<b> {</b></p><p> avail[j]=avail[j]-requ[i][j]; /*系統(tǒng)嘗試分配資源*/</p><p> alloc[i][j]=alloc[i][j]+requ[i][j];</p><p> need[i][j]=need[i][j]-requ[i][j];</
53、p><p><b> }</b></p><p> /*************************安全性算法START****************************/</p><p> for(j=0;j<J;j++)</p><p><b> {</b></p>
54、;<p> work[j]=avail[j];</p><p><b> }</b></p><p> for(i=0;i<I;i++)</p><p><b> {</b></p><p> finish[i]=0; /*設(shè)置兩個(gè)工作向量*/</
55、p><p><b> }</b></p><p> A2:for(i=0;i<I;i++)</p><p><b> {</b></p><p> sign=1; /*sign==1表示need<=work*/</p><p> fo
56、r(j=0;j<J;j++)</p><p><b> {</b></p><p> if(need[i][j]>work[j])</p><p><b> {</b></p><p><b> sign=0;</b></p><p>
57、; } </p><p><b> }</b></p><p> if(finish[i]==0&&sign==1)</p><p><b> {</b></p><p> for(j=0;j<J;j++)</p&g
58、t;<p><b> {</b></p><p> work[j]=work[j]+alloc[i][j];</p><p><b> }</b></p><p> finish[i]=1; /*設(shè)置finish向量*/ </p><p> co
59、ut<<"P"<<i<<endl; /*輸出安全序列*/</p><p><b> goto A2;</b></p><p><b> }</b></p><p><b> }</b></p><p><
60、b> sign=1;</b></p><p> for(i=0;i<I;i++)</p><p><b> {</b></p><p> if(finish[i]==0)</p><p> sign=0; /*判斷系統(tǒng)狀態(tài)是否安全*/</p><p&
61、gt;<b> }</b></p><p> if(sign==0)</p><p><b> {</b></p><p> cout<<"不安全,系統(tǒng)已收回嘗試分配的資源!"<<endl; /*若不安全,不予分配,并將數(shù)據(jù)修改回原來的值*/</p>
62、<p> for(j=0;j<J;j++) </p><p><b> {</b></p><p> avail[j]=avail[j]+requ[i1][j];</p><p> alloc[i1][j]=alloc[i1][j]-requ[i1][j];</p><p&g
63、t; need[i1][j]=need[i1][j]+requ[i1][j];</p><p><b> }</b></p><p><b> goto S;</b></p><p><b> }</b></p><p><b> else</b>
64、;</p><p><b> {</b></p><p> cout<<"安全,可以分配."<<endl; /*若安全,則可以分配*/</p><p><b> goto S;</b></p><p><b> }</b
65、></p><p> /*************************安全性算法END****************************/</p><p><b> return 0;</b></p><p><b> }</b></p><p><b> 5、結(jié)束
66、語 </b></p><p> 心得與體會(huì):銀行家算法是避免死鎖的一種重要方法,通過編寫一個(gè)簡單的銀行家算法程序,加深了解有關(guān)資源申請、避免死鎖等概念,并體會(huì)和了解死鎖和避免死鎖的具體實(shí)施方法。銀行家算法是為了使系統(tǒng)保持安全狀態(tài)。我們可以把操作系統(tǒng)看作是銀行家,操作系統(tǒng)管理的資源相當(dāng)于銀行家管理的資金,進(jìn)程向操作系統(tǒng)請求分配資源相當(dāng)于用戶向銀行家貸款。操作系統(tǒng)按照銀行家制定的規(guī)則為進(jìn)程分配資源,當(dāng)進(jìn)
67、程首次申請資源時(shí),要測試該進(jìn)程對資源的最大需求量,如果系統(tǒng)現(xiàn)存的資源可以滿足它的最大需求量則按當(dāng)前的申請量分配資源,否則就推遲分配。當(dāng)進(jìn)程在執(zhí)行中繼續(xù)申請資源時(shí),先測試該進(jìn)程已占用的資源數(shù)與本次申請的資源數(shù)之和是否超過了該進(jìn)程對資源的最大需求量。若超過則拒絕分配資源,若沒有超過則再測試系統(tǒng)現(xiàn)存的資源能否滿足該進(jìn)程尚需的最大資源量,若能滿足則按當(dāng)前的申請量分配資源,否則也要推遲分配。 </p><p> 死鎖的產(chǎn)
68、生,必須同時(shí)滿足四個(gè)條件,即一個(gè)資源每次只能由一個(gè)進(jìn)程占有;第二個(gè)為等待條件,即一個(gè)進(jìn)程請求資源不能滿足時(shí),它必須等待,單它仍繼續(xù)寶石已得到的所有其他資源;第三個(gè)為非剝奪條件,即在出現(xiàn)死鎖的系統(tǒng)中一定有不可剝奪使用的資源;第四個(gè)為循環(huán)等待條件,系統(tǒng)中存在若干個(gè)循環(huán)等待的進(jìn)程,即其中每一個(gè)進(jìn)程分別等待它前一個(gè)進(jìn)程所持有的資源。防止死鎖的機(jī)構(gòu)只能確保上述四個(gè)條件之一不出現(xiàn),則系統(tǒng)就不會(huì)發(fā)生死鎖。通過這個(gè)算法可以用來解決生活中的實(shí)際問題,如銀
69、行貸款等。</p><p> 銀行家算法能保證系統(tǒng)時(shí)時(shí)刻刻都處于安全狀態(tài),但它要不斷檢測每個(gè)進(jìn)程對各類資源的占用和申請情況,需花費(fèi)較多的時(shí)間。</p><p> 經(jīng)過這次設(shè)計(jì),讓我基明白了銀行家算法的基本原理,加深了對課堂上知識的理解,也懂得了如何讓銀行家算法實(shí)現(xiàn)。</p><p><b> 實(shí)例:</b></p><
70、p> ?。?)下列狀態(tài)是否安全?(三個(gè)進(jìn)程共享12個(gè)同類資源)</p><p> 進(jìn)程 已分配資源數(shù)
71、; 最大需求數(shù)</p><p> 1
72、0; 1 &
73、#160; 4
74、0; (狀態(tài)a)</p><p> 2
75、60; 4
76、 4</p><p> 3
77、60; 5
78、 8</p><p> 1
79、60; 1
80、
81、0; 4 (狀態(tài)b)</p><p> 2
82、160; 4
83、; 6</p><p> 3
84、160; 6
85、;
86、60;8</p><p> 狀態(tài)a安全,序列為:2-->1--> 3</p><p> 狀態(tài)b不安全,只剩1個(gè)可用資源,收不回已分配資源。</p><p> ?。?)考慮下列系統(tǒng)狀態(tài)</p><p> 分配矩陣
87、0; 最大需求矩陣
88、160; 可用資源矩陣</p><p> 0 0 1 2
89、160; 0 0 1 2&
90、#160; 1 5
91、60; 2 0</p><p> 1 0 0 0
92、160; 1 7 5 0</p><p> 1 3 5 4
93、; 2 3 5 6</p><p> 0 6
94、0;3 2 0
95、;6 5 2</p><p> 0 0 1 4
96、60; 0 6 5 6</p><p> 問系統(tǒng)是否安全?若安全就給出所有的安全序列。若進(jìn)程2請求(0420),可否立即分配?</p><p> 答:安全。安全序列為:1-->3-->2--&
97、gt;5-->4。</p><p> 若進(jìn)程2請求(0420),可立即分配。分配后可用資源為1 1 0 0,回收1進(jìn)程資源,</p><p> 可用資源數(shù)為:1 1 1 2,然后執(zhí)行3-->2-->5-->4序列。</p><p><b> 6、參考文獻(xiàn)</b></p><p> 1、湯子
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 操作系統(tǒng)課程設(shè)計(jì)-- 操作系統(tǒng)
- 操作系統(tǒng)課程設(shè)計(jì)
- 操作系統(tǒng)課程設(shè)計(jì)
- 操作系統(tǒng)課程設(shè)計(jì)
- 操作系統(tǒng)課程設(shè)計(jì)
- 操作系統(tǒng)課程設(shè)計(jì)
- 操作系統(tǒng)課程設(shè)計(jì)
- 內(nèi)存管理(操作系統(tǒng))操作系統(tǒng)課程設(shè)計(jì)
- 操作系統(tǒng)課程設(shè)計(jì)題目
- 操作系統(tǒng)課程設(shè)計(jì)報(bào)告
- 操作系統(tǒng)課程設(shè)計(jì)論文
- 操作系統(tǒng)課程設(shè)計(jì) (4)
- 操作系統(tǒng)課程設(shè)計(jì)1
- 課程設(shè)計(jì)報(bào)告--操作系統(tǒng)
- linux操作系統(tǒng)課程設(shè)計(jì)
- 操作系統(tǒng)課程設(shè)計(jì)報(bào)告
- 操作系統(tǒng)原理課程設(shè)計(jì)
- 操作系統(tǒng)課程設(shè)計(jì)--模擬操作系統(tǒng)的實(shí)現(xiàn)
- 操作系統(tǒng)課程設(shè)計(jì)報(bào)告
- 操作系統(tǒng)課程設(shè)計(jì)1
評論
0/150
提交評論