版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 操作系統(tǒng)課程設(shè)計(jì)</b></p><p><b> 目 錄</b></p><p> 1. 課程設(shè)計(jì)目的3</p><p><b> 2. 設(shè)計(jì)要求3</b></p><p> 3. 問(wèn)題具體描述3</p><p
2、><b> 4. 設(shè)計(jì)分析3</b></p><p><b> 5. 設(shè)計(jì)分工4</b></p><p> 6. 數(shù)據(jù)結(jié)構(gòu)說(shuō)明4</p><p> 7. 系統(tǒng)結(jié)構(gòu)說(shuō)明4</p><p> 8. 系統(tǒng)調(diào)用說(shuō)明4</p><p> 9. 分工設(shè)計(jì)說(shuō)明
3、5</p><p> 10. 算法流程圖5</p><p> 11. 分工代碼6</p><p> 12. 整體代碼7</p><p> 13. 程序運(yùn)行10</p><p><b> 14. 總結(jié)11</b></p><p><b> 課程
4、設(shè)計(jì)目的</b></p><p> 1.內(nèi)容圍繞操作系統(tǒng)原理中最重要的基本概念和基本原理展開(kāi)</p><p> 2.鞏固對(duì)原理知識(shí)的學(xué)習(xí)效果</p><p> 3.加深對(duì)基本概念的理解</p><p> 4.學(xué)習(xí)如何將基本原理和實(shí)際設(shè)計(jì)、應(yīng)用有機(jī)結(jié)合</p><p> 5.鍛煉本專業(yè)的基本能力&l
5、t;/p><p><b> 設(shè)計(jì)要求</b></p><p> 1: 進(jìn)程間通信、并發(fā)(同步/互斥)、文件讀寫(xiě)</p><p> 2: 內(nèi)存管理、Dll、Windows消息機(jī)制、IO (尚未最終定型)</p><p><b> 問(wèn)題具體描述</b></p><p> 1
6、.完成N個(gè)生產(chǎn)者和M個(gè)消費(fèi)者之間的并發(fā)控制,N、M不低于5,數(shù)據(jù)發(fā)送和接收緩沖區(qū) 大小不小于10個(gè)。</p><p> 2.某個(gè)生產(chǎn)者進(jìn)程生產(chǎn)的消息供K個(gè)消費(fèi)者進(jìn)程消費(fèi)。K《=M。某些消費(fèi)進(jìn)程消費(fèi)多個(gè)生產(chǎn)者生產(chǎn)的消息。生產(chǎn)者和消費(fèi)者之間的對(duì)應(yīng)關(guān)系可以在程序開(kāi)始有一個(gè)文件中讀入,也可以動(dòng)態(tài)調(diào)整。</p><p> 3.每個(gè)生產(chǎn)進(jìn)程生產(chǎn)M個(gè)消息后結(jié)束運(yùn)行。如果一個(gè)消費(fèi)者進(jìn)程沒(méi)有對(duì)應(yīng)的生產(chǎn)者
7、進(jìn)程在運(yùn)行后,也結(jié)束運(yùn)行。</p><p><b> 設(shè)計(jì)分析</b></p><p> 課程設(shè)計(jì)的主要目的是了解并且掌握進(jìn)程之間的同步互斥,和進(jìn)程之間的通信問(wèn)題。結(jié)合課本上的生產(chǎn)者與消費(fèi)者問(wèn)題可以從這方面來(lái)實(shí)現(xiàn)一個(gè)多進(jìn)程的小系統(tǒng),并且解決多個(gè)進(jìn)程之間的通信,并發(fā)等問(wèn)題,以此來(lái)達(dá)到課程設(shè)計(jì)的目的。理發(fā)師問(wèn)題是將顧客看做生產(chǎn)者,將理發(fā)師作為消費(fèi)者。設(shè)置一定數(shù)量的椅子
8、的數(shù)目來(lái)作為緩存區(qū)的大小。顧客來(lái)到的時(shí)候坐在椅子上,將自己作為“產(chǎn)品”,理發(fā)師理發(fā)的時(shí)候從椅子上叫走顧客,相當(dāng)于消費(fèi)“產(chǎn)品”,從而達(dá)到了課程設(shè)計(jì)要求的前一個(gè)要求。</p><p> 顧客作為生產(chǎn)者,每到來(lái)一個(gè)就使計(jì)數(shù)器count增加1,以便讓理發(fā)師理發(fā)(相當(dāng)于消費(fèi))至最后一個(gè)顧客(相當(dāng)于產(chǎn)品)。并且,第1個(gè)到來(lái)的顧客應(yīng)負(fù)責(zé)喚醒理發(fā)師;如果不是第1個(gè)到達(dá)的顧客,則在有空椅子的情況下坐下等待,否則離開(kāi)理發(fā)店(該消息
9、可由計(jì)數(shù)器count獲得)。主要有以下一些函數(shù)來(lái)實(shí)現(xiàn)整個(gè)問(wèn)題的實(shí)現(xiàn)過(guò)程:</p><p> 用隨機(jī)函數(shù)random()來(lái)產(chǎn)生進(jìn)入理發(fā)店的顧客。</p><p> ?。?)定義理發(fā)師的理發(fā)函數(shù)cuthair()用來(lái)實(shí)現(xiàn)理發(fā)操作。</p><p> (3)定義顧客被理發(fā)的函數(shù)gethaircut()用來(lái)實(shí)現(xiàn)顧客被理發(fā)的操作。</p>&l
10、t;p> (4)用顧客線程customer實(shí)現(xiàn)對(duì)顧客行為的控制。</p><p> (5)用理發(fā)師線程barber實(shí)現(xiàn)對(duì)理發(fā)師行為的控制。</p><p> (6)定義主函數(shù)main實(shí)現(xiàn)對(duì)兩個(gè)線程的控制和執(zhí)行操作。</p><p><b> 設(shè)計(jì)分工</b></p><p><b> 成員:李寧
11、 侯紹立</b></p><p><b> 分工:</b></p><p> 理發(fā)師進(jìn)程、信號(hào)量的設(shè)置、理發(fā)師函數(shù) :xxx</p><p> 顧客進(jìn)程、顧客函數(shù)、主函數(shù):xx</p><p><b> 數(shù)據(jù)結(jié)構(gòu)說(shuō)明</b></p><p> 本程序用到
12、了數(shù)據(jù)結(jié)構(gòu)中的隊(duì)列,理發(fā)的顧客由隨機(jī)函數(shù)產(chǎn)生,顧客遵從先到先理發(fā)的原則,但隊(duì)列的長(zhǎng)度限制為輸入的理發(fā)店中的椅子的個(gè)數(shù),當(dāng)理發(fā)店的椅子沒(méi)有空位的時(shí)候,到來(lái)的顧客主動(dòng)退出加入隊(duì)列。理發(fā)師對(duì)隊(duì)列中的顧客進(jìn)行先到先服務(wù)的原則理發(fā)。</p><p><b> 7. 系統(tǒng)結(jié)構(gòu)說(shuō)明</b></p><p><b> ?。ㄒ唬╊^文件聲明</b></p&g
13、t;<p> #include "windows.h"</p><p> #include "iostream.h"</p><p> #include "math.h"</p><p><b> ?。ǘ┒x各種變量</b></p><p>
14、; int long waiting(0); </p><p> int chairs; </p><p> char open_door; </p><p> char close_door; </p><p> int
15、 count(0); </p><p> int finish(0); </p><p><b> ?。ㄈ┬盘?hào)量的定義</b></p><p> HANDLE Mutex =::CreateMutex(NULL, FALSE, "Mutex"); </p&g
16、t;<p> HANDLE barbers =::CreateSemaphore(NULL, 1,1, "barbers"); </p><p> HANDLE customers =::CreateSemaphore(NULL,0,3,"customers");</p><p><b> 8. 系統(tǒng)調(diào)用說(shuō)明<
17、/b></p><p> (1)CreateThread():創(chuàng)建線程</p><p> ?。?)CreateMutex():找出當(dāng)前系統(tǒng)是否已經(jīng)存在指定進(jìn)程的實(shí)例。如果沒(méi)有則創(chuàng)建一個(gè)互斥體,用來(lái)同步。如果一個(gè)線程獲取了互斥體,則要獲取該互斥體的第二個(gè)線程將被掛起,直到第一個(gè)線程釋放該互斥體。CreateMutex()函數(shù)可用來(lái)創(chuàng)建一個(gè)有名或無(wú)名的互斥量對(duì)象</p>
18、<p> ?。?)CreateSemaphore():CreateSemaphore() 是系統(tǒng)提供的API,包含在Windows.h 中,應(yīng)用在同步的處理中。作用是創(chuàng)建一個(gè)新的信號(hào)機(jī),執(zhí)行成功,返回信號(hào)機(jī)對(duì)象的句柄;零表示出錯(cuò)。一旦不再需要,一定記住用CloseHandle關(guān)閉信號(hào)機(jī)的句柄。它的所有句柄都關(guān)閉以后,對(duì)象自己也會(huì)刪除。一旦值大于零,信號(hào)機(jī)就會(huì)觸發(fā)(發(fā)出信號(hào))。Semaphore是一個(gè)同步問(wèn)題機(jī)制,不論是Even
19、t或Mutex,其他Process在執(zhí)WaitForSingleObject時(shí),就看當(dāng)時(shí)的物件是Signal或UnSignal而決定是否等待,而Semaphore也相同,但是它要變成Signal /UnSignal的狀態(tài),卻有些不同,它是提供一個(gè)計(jì)數(shù)值,它允許在這個(gè)計(jì)數(shù)值之內(nèi),任何執(zhí)行到WaitForSingleObject的Thread都不會(huì)停下來(lái),而且每執(zhí)行WaitForSingleObject一次,計(jì)數(shù)值就減一,當(dāng)計(jì)數(shù)值變成0時(shí),
20、該Semaphore才會(huì)處?kù)禪nSignal的狀態(tài),而某個(gè)Thread ReleaseSemaphore時(shí),便會(huì)將計(jì)數(shù)值增加,以便其他的Thr</p><p> ?。?)ReleaseSemaphore():ReleaseSemaphore()函數(shù)的作用是增加信號(hào)機(jī)的計(jì)數(shù)。如果成功,就調(diào)用信號(hào)機(jī)上的一個(gè)等待函數(shù)來(lái)減少它的計(jì)數(shù)。</p><p> (5)WaitForSingleObjec
21、t():函數(shù)用來(lái)檢測(cè)hHandle事件的信號(hào)狀態(tài),在某一線程中調(diào)用該函數(shù)時(shí),線程暫時(shí)掛起,如果在掛起的dwMilliseconds毫秒內(nèi),線程所等待的對(duì)象變?yōu)橛行盘?hào)狀態(tài),則該函數(shù)立即返回;如果超時(shí)時(shí)間已經(jīng)到達(dá)dwMilliseconds毫秒,但hHandle所指向的對(duì)象還沒(méi)有變成有信號(hào)狀態(tài),函數(shù)照樣返回。參數(shù)dwMilliseconds有兩個(gè)具有特殊意義的值:0和INFINITE。若為0,則該函數(shù)立即返回;若為INFINITE,則線程一
22、直被掛起,直到hHandle所指向的對(duì)象變?yōu)橛行盘?hào)狀態(tài)時(shí)為止。</p><p> (6)ResumeThread():線程恢復(fù)函數(shù),使用該函數(shù)能激活線程的運(yùn)行,使CPU分配資源讓線程恢復(fù)運(yùn)行。</p><p> ?。?)ReleaseMutex():釋放由線程擁有的一個(gè)互斥體</p><p> ?。?)Sleep():睡眠等待</p><p&g
23、t;<b> 9. 分工設(shè)計(jì)說(shuō)明</b></p><p><b> 需要用到的信號(hào)量:</b></p><p> HANDLE Mutex =::CreateMutex(NULL, FALSE, "Mutex"); </p><p> 實(shí)現(xiàn)顧客與理發(fā)師對(duì)公用緩存區(qū)的互斥操作</p&g
24、t;<p> HANDLE barbers =::CreateSemaphore(NULL, 1,1, "barbers"); </p><p> HANDLE customers =::CreateSemaphore(NULL,0,3,"customers");</p><p> ::WaitForSingleObject(
25、customers,INFINITE); 等待顧客進(jìn)程的V(customer)操作</p><p> ::WaitForSingleObject(Mutex,INFINITE); 申請(qǐng)操作顧客與理發(fā)師公用的緩存區(qū) </p><p> ::ReleaseSemapho
26、re(barbers,1,NULL); 釋放信號(hào)量barbers</p><p> ::ReleaseMutex(Mutex); 釋放信號(hào)量Mutex,允許顧客操作緩存區(qū)</p><p><b> 算法流程圖</b></p><p><b> 分工代碼</b></p><p> #incl
27、ude "windows.h"</p><p> #include "iostream.h"</p><p> #include "math.h"</p><p> int long waiting(0); //等待理發(fā)的顧客人數(shù)</p><p> int
28、 chairs; //店中椅子的總數(shù)目</p><p> char open_door; //開(kāi)門(mén)</p><p> char close_door; //關(guān)門(mén)</p><p> int count(0); //顧客的序號(hào)</p>
29、<p> int finish(0); //已經(jīng)理完發(fā)的顧客人數(shù)</p><p><b> DWORD a;</b></p><p> HANDLE Mutex =::CreateMutex(NULL, FALSE, "Mutex"); //用來(lái)實(shí)現(xiàn)進(jìn)程的互斥 </p>&l
30、t;p> HANDLE barbers =::CreateSemaphore(NULL, 1,1, "barbers"); //定義信號(hào)量來(lái)進(jìn)行線程間的同步</p><p> HANDLE customers =::CreateSemaphore(NULL,0,3,"customers"); //定義信號(hào)量來(lái)進(jìn)行線程間的同步</p><p&
31、gt; int random()</p><p> //定義隨機(jī)函數(shù)來(lái)產(chǎn)生顧客,并使兩個(gè)顧客間的時(shí)間少于15秒</p><p><b> {</b></p><p> return (rand()*15000)/RAND_MAX;</p><p><b> }</b></p>
32、<p> void cuthair()</p><p> //理發(fā)師的理發(fā)函數(shù),用時(shí)15秒</p><p><b> { </b></p><p> ::Sleep (15000);</p><p> cout<<"理發(fā)結(jié)束 !"<<endl;</p
33、><p><b> }</b></p><p> DWORD WINAPI barber(LPVOID pParm1)</p><p><b> //理發(fā)師線程</b></p><p><b> {</b></p><p> while(true)
34、 </p><p><b> {</b></p><p> ::WaitForSingleObject(customers,INFINITE);//p(customers),等待顧客</p><p> ::WaitForSingleObject(Mutex,INFINITE); //等待互斥量<
35、/p><p> waiting--; //等待的人數(shù)減1</p><p> ::ReleaseSemaphore(barbers,1,NULL); //釋放信號(hào)量</p><p> ::ResumeThread(barbers); //喚醒顧客進(jìn)程</p&g
36、t;<p> ::ReleaseMutex(Mutex); //v(mutex); </p><p> cuthair(); </p><p> finish++; </p><p><
37、;b> }</b></p><p><b> return 0;</b></p><p><b> }</b></p><p><b> 整體代碼</b></p><p> #include "windows.h"</p&g
38、t;<p> #include "iostream.h"</p><p> #include "math.h"</p><p> int long waiting(0); //等待理發(fā)的顧客人數(shù)</p><p> int chairs; //店中椅子的
39、總數(shù)目</p><p> char open_door; //開(kāi)門(mén)</p><p> char close_door; //關(guān)門(mén)</p><p> int count(0); //顧客的序號(hào)</p><p> int finish(0);
40、 //已經(jīng)理完發(fā)的顧客人數(shù)</p><p><b> DWORD a;</b></p><p> HANDLE Mutex =::CreateMutex(NULL, FALSE, "Mutex"); //用來(lái)實(shí)現(xiàn)進(jìn)程的互斥 </p><p> HANDLE barbers =::Crea
41、teSemaphore(NULL, 1,1, "barbers"); //定義信號(hào)量來(lái)進(jìn)行線程間的同步</p><p> HANDLE customers =::CreateSemaphore(NULL,0,3,"customers"); //定義信號(hào)量來(lái)進(jìn)行線程間的同步</p><p> int random()</p><
42、p> //定義隨機(jī)函數(shù)來(lái)產(chǎn)生顧客,并使兩個(gè)顧客間的時(shí)間少于15秒</p><p><b> {</b></p><p> return (rand()*15000)/RAND_MAX;</p><p><b> }</b></p><p> void cuthair()</p&
43、gt;<p> //理發(fā)師的理發(fā)函數(shù),用時(shí)15秒</p><p><b> { </b></p><p> ::Sleep (15000);</p><p> cout<<"理發(fā)結(jié)束 !"<<endl;</p><p><b> }</b
44、></p><p> void gethaircut()</p><p> // 顧客被理發(fā)的函數(shù)</p><p><b> {</b></p><p> ::Sleep (15001); //顧客被理發(fā)的函數(shù),為了和理發(fā)師之間有所區(qū)別,比理發(fā)師理發(fā)時(shí)間長(zhǎng)1毫秒</p>&l
45、t;p> cout<<"第"<<finish<<"個(gè)顧客理發(fā)完畢,離開(kāi) "<<endl; </p><p><b> }</b></p><p> DWORD WINAPI customer(LPVOID pParm2)</p><p><
46、;b> // 顧客線程</b></p><p><b> {</b></p><p> ::WaitForSingleObject(Mutex ,INFINITE); //P(mutex)來(lái)進(jìn)行互斥操作</p><p> count++;
47、 //來(lái)的是第幾個(gè)顧客</p><p> cout<<"顧客敲門(mén)!第 "<<count<<" 個(gè)顧客到來(lái) "<<endl; </p><p> if (waiting<chairs) //如果有空椅子</p><p>&
48、lt;b> { </b></p><p> if (waiting!=0)</p><p><b> {</b></p><p> cout<<"現(xiàn)在有"<<waiting <<" 個(gè)人在等待理發(fā)"<<endl;</p>
49、;<p><b> }</b></p><p><b> else</b></p><p> cout<<"無(wú)人在等待理發(fā)"<<endl; //輸出有多少人在等待</p><p> waiting++;</p><p&g
50、t; cout<<"剩余"<<chairs-waiting+1<<"個(gè)座位"<<endl;</p><p> cout<<"有空位,顧客已坐下"<<endl;</p><p> ::ReleaseSemaphore(customers,1,NULL);
51、//V(customer)</p><p> ::ResumeThread(customers);//喚醒理發(fā)師進(jìn)程</p><p> ::ReleaseMutex(Mutex);//釋放互斥量,以便其他線程使用</p><p> ::WaitForSingleObject(barbers,INFINITE);//等待理發(fā)</p>
52、<p> gethaircut();</p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p> cout<<"沒(méi)有空椅子,第"&
53、lt;<count<<"個(gè)顧客離開(kāi)理發(fā)店"<<endl; //沒(méi)有椅子,顧客直接離開(kāi)</p><p> ::ReleaseMutex(Mutex);</p><p><b> }</b></p><p><b> return 0;</b></p>&l
54、t;p><b> }</b></p><p> DWORD WINAPI barber(LPVOID pParm1)</p><p><b> //理發(fā)師線程</b></p><p><b> {</b></p><p> while(true)
55、 </p><p><b> {</b></p><p> ::WaitForSingleObject(customers,INFINITE);//p(customers),等待顧客</p><p> ::WaitForSingleObject(Mutex,INFINITE); //等待互斥量</p>
56、<p> waiting--; //等待的人數(shù)減1</p><p> ::ReleaseSemaphore(barbers,1,NULL); //釋放信號(hào)量</p><p> ::ResumeThread(barbers); //喚醒顧客進(jìn)程</p><
57、p> ::ReleaseMutex(Mutex); //v(mutex); </p><p> cuthair(); </p><p> finish++; </p><p><b>
58、 }</b></p><p><b> return 0;</b></p><p><b> }</b></p><p> int main(int argc, char* argv[])</p><p><b> //實(shí)現(xiàn)線程的操作</b></p&g
59、t;<p><b> {</b></p><p> cout<<"輸入理發(fā)店中的椅子個(gè)數(shù):";</p><p> cin>>chairs;</p><p> cout<<"店中有"<<chairs<<"把椅子&qu
60、ot;<<endl; //設(shè)置椅子數(shù)目</p><p> cout<<"是否開(kāi)始接待顧客?Y/N"<<endl; //是否開(kāi)門(mén)營(yíng)業(yè)</p><p> cin>>open_door;</p><p> while (open_door!='y')</p>
61、<p><b> {</b></p><p> cout<<endl<<"尚未營(yíng)業(yè)!"<<endl;</p><p> cout<<"是否開(kāi)始接待顧客?Y/N"<<endl;</p><p> cin>>open_
62、door;</p><p><b> }</b></p><p> HANDLE hThread1;</p><p> HANDLE hThread2;</p><p> hThread2=::CreateThread (NULL,0,barber,NULL,0,NULL); //產(chǎn)生一個(gè)理發(fā)師進(jìn)程</p&
63、gt;<p> while(close_door!='y')</p><p><b> { </b></p><p> ::Sleep(random());//函數(shù)實(shí)現(xiàn)顧客隨機(jī)到來(lái)</p><p> hThread1=::CreateThread(NULL,0,customer,NULL,a,NULL);&
64、lt;/p><p> cout<<endl<<"正在營(yíng)業(yè),請(qǐng)進(jìn)!"<<endl; </p><p> if (finish>=8 && waiting==0)</p><p> //如果完成數(shù)超過(guò)8并且沒(méi)有人等待</p><p><b> {</
65、b></p><p> cout<<"已經(jīng)為"<<finish<<"個(gè)顧客理發(fā)了,是否停止?fàn)I業(yè)?"<<endl; //提示是否關(guān)門(mén)</p><p> cin>>close_door;</p><p> return close_door; </p&g
66、t;<p><b> }</b></p><p><b> }</b></p><p> if (close_door=='y') </p><p><b> {</b></p><p> cout<<"暫停營(yíng)業(yè)!歡
67、迎下次光臨!"<<endl;</p><p><b> return 0;</b></p><p><b> }</b></p><p><b> return 0;</b></p><p><b> }</b></p&
68、gt;<p><b> 程序運(yùn)行</b></p><p><b> 開(kāi)始</b></p><p><b> 輸入椅子數(shù)目</b></p><p><b> 選擇是否接待顧客</b></p><p><b> 接待顧客<
69、;/b></p><p><b> 理發(fā)完畢</b></p><p><b> 總結(jié)</b></p><p> 通過(guò)這個(gè)課程設(shè)計(jì),對(duì)于課本上的關(guān)于進(jìn)程之間的同步、互斥有了更深層的認(rèn)識(shí),而且有了具體上直觀上的理解。雖然對(duì)于第二個(gè)課程設(shè)計(jì)要求沒(méi)有達(dá)到,但我也學(xué)到了許多。進(jìn)程作為系統(tǒng)的基本的操作單位,其之間的互斥、同
70、步是非常重要的。生產(chǎn)者與消費(fèi)者這一個(gè)問(wèn)題中,生產(chǎn)者與消費(fèi)者公用一個(gè)緩存區(qū),這就涉及到了兩個(gè)進(jìn)程對(duì)緩存區(qū)的互斥操作,否者將會(huì)產(chǎn)生許多不切實(shí)際的問(wèn)題,這也就失去的系統(tǒng)操作的實(shí)際意義。而通過(guò)一個(gè)互斥信號(hào)量Mutex便很好的解決了這一個(gè)問(wèn)題,兩個(gè)進(jìn)程在操作緩存區(qū)之前必須先申請(qǐng)使用,如果信號(hào)量表示已有進(jìn)程正在對(duì)緩存區(qū)進(jìn)行操作則必須等待其完成方可。在做這個(gè)設(shè)計(jì)的時(shí)候也遇到了許多問(wèn)題,例如信號(hào)量的設(shè)置。由于這個(gè)問(wèn)題中不僅涉及到理發(fā)師與顧客之間的互斥同
71、步問(wèn)題,還設(shè)計(jì)到各個(gè)顧客進(jìn)程之間的互斥同步問(wèn)題,所以起初信號(hào)量設(shè)置不足而導(dǎo)致問(wèn)題出錯(cuò)。</p><p> 總的來(lái)講,此次課程設(shè)計(jì)對(duì)我們操作系統(tǒng)知識(shí)的鞏固起了重要作用,讓我們受到了很多啟發(fā),懂得了怎樣更好的去學(xué)習(xí)操作系統(tǒng)課程。操作系統(tǒng)不在是一個(gè)模糊的概念存在,許多實(shí)際的例子,問(wèn)題都能涉及到操作系統(tǒng)方面的知識(shí)。這也看出了操作系統(tǒng)對(duì)于整個(gè)計(jì)算機(jī)學(xué)科的重要性,他不單單作為一個(gè)學(xué)科存在,而是滲透到各個(gè)學(xué)科中,作為各個(gè)學(xué)科
溫馨提示
- 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ù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 操作系統(tǒng)課程設(shè)計(jì)---理發(fā)師問(wèn)題的實(shí)現(xiàn)
- 操作系統(tǒng)課程設(shè)計(jì)理發(fā)師問(wèn)題說(shuō)明書(shū)
- 操作系統(tǒng)課程設(shè)計(jì)說(shuō)明書(shū)--基于linux的進(jìn)程之間通信
- 課程設(shè)計(jì)--理發(fā)師系統(tǒng)
- 操作系統(tǒng)課程設(shè)計(jì)--進(jìn)程通信與進(jìn)程同步機(jī)制實(shí)踐
- 操作系統(tǒng)課程設(shè)計(jì)--進(jìn)程通信與進(jìn)程同步機(jī)制實(shí)踐
- 操作系統(tǒng)課程設(shè)計(jì)--進(jìn)程的軟中斷通信與管道通信
- 操作系統(tǒng)課程設(shè)計(jì)報(bào)告—多進(jìn)程同步橘子蘋(píng)果問(wèn)題
- 操作系統(tǒng)課程設(shè)計(jì)--基于linux的實(shí)現(xiàn)進(jìn)程的信號(hào)量互斥申請(qǐng)
- 基于linux的實(shí)現(xiàn)進(jìn)程的信號(hào)量互斥申請(qǐng)操作系統(tǒng)課程設(shè)計(jì)
- 操作系統(tǒng)進(jìn)程調(diào)度課程設(shè)計(jì)
- 操作系統(tǒng)進(jìn)程調(diào)度課程設(shè)計(jì)
- 操作系統(tǒng)模擬進(jìn)程課程設(shè)計(jì)
- 操作系統(tǒng)課程設(shè)計(jì)---進(jìn)程的創(chuàng)建
- 操作系統(tǒng)課程設(shè)計(jì)---進(jìn)程管理系統(tǒng)
- 基于linux的實(shí)現(xiàn)進(jìn)程的信號(hào)量互斥申請(qǐng)操作系統(tǒng)課程設(shè)計(jì)1
- 進(jìn)程調(diào)度算法 操作系統(tǒng)課程設(shè)計(jì)
- 操作系統(tǒng)-管道通信課程設(shè)計(jì)
- 操作系統(tǒng)進(jìn)程控制課程設(shè)計(jì)
- 操作系統(tǒng)課程設(shè)計(jì)-進(jìn)程調(diào)度模擬
評(píng)論
0/150
提交評(píng)論