版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 計(jì)算機(jī)科學(xué)技術(shù)學(xué)院</b></p><p><b> 操作系統(tǒng)原理</b></p><p><b> 課程設(shè)計(jì)報(bào)告</b></p><p> 題 目:進(jìn)程管理系統(tǒng)</p><p><b> 專(zhuān) 業(yè): </b>
2、;</p><p><b> 班 級(jí): </b></p><p><b> 姓 名: </b></p><p><b> 學(xué) 號(hào): </b></p><p><b> 指導(dǎo)老師: </b></p><p>
3、<b> 年 月 日</b></p><p> 《操作系統(tǒng)原理》課程設(shè)計(jì)任務(wù)書(shū)</p><p> 一、課程設(shè)計(jì)題目(任選一個(gè)題目)</p><p><b> 1.模擬進(jìn)程管理</b></p><p><b> 2.模擬處理機(jī)調(diào)度</b></p>
4、<p><b> 3.模擬存儲(chǔ)器管理</b></p><p><b> 4.模擬文件系統(tǒng)</b></p><p><b> 5.模擬磁盤(pán)調(diào)度</b></p><p><b> 二、設(shè)計(jì)目的和要求</b></p><p><b>
5、 1.設(shè)計(jì)目的</b></p><p> 《操作系統(tǒng)原理》課程設(shè)計(jì)是網(wǎng)絡(luò)工程專(zhuān)業(yè)實(shí)踐性環(huán)節(jié)之一,是學(xué)習(xí)完《操作系統(tǒng)原理》課程后進(jìn)行的一次較全面的綜合練習(xí)。其目的在于加深對(duì)操作系統(tǒng)的理論、方法和基礎(chǔ)知識(shí)的理解,掌握操作系統(tǒng)結(jié)構(gòu)、實(shí)現(xiàn)機(jī)理和各種典型算法,系統(tǒng)地了解操作系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn)思路,培養(yǎng)學(xué)生的系統(tǒng)設(shè)計(jì)能力,并了解操作系統(tǒng)的發(fā)展動(dòng)向和趨勢(shì)。</p><p><b>
6、; 2.基本要求:</b></p><p> (1)選擇課程設(shè)計(jì)題目中的一個(gè)課題,獨(dú)立完成。</p><p> (2)良好的溝通和合作能力</p><p> (3)充分運(yùn)用前序課所學(xué)的軟件工程、程序設(shè)計(jì)、數(shù)據(jù)結(jié)構(gòu)等相關(guān)知識(shí)</p><p> (4)充分運(yùn)用調(diào)試和排錯(cuò)技術(shù)</p><p> (5)
7、簡(jiǎn)單測(cè)試驅(qū)動(dòng)模塊和樁模塊的編寫(xiě) </p><p> (6)查閱相關(guān)資料,自學(xué)具體課題中涉及到的新知識(shí)。</p><p> (7)課題完成后必須按要求提交課程設(shè)計(jì)報(bào)告,格式規(guī)范,內(nèi)容詳實(shí)。</p><p><b> 三、設(shè)計(jì)內(nèi)容及步驟</b></p><p> 1.根據(jù)設(shè)計(jì)題目的要求,充分地分析和理解問(wèn)題,明確問(wèn)題
8、要求做什么。</p><p> 2.根據(jù)實(shí)現(xiàn)的功能,劃分出合理的模塊,明確模塊間的關(guān)系。</p><p> 3.編程實(shí)現(xiàn)所設(shè)計(jì)的模塊。</p><p> 4.程序調(diào)試與測(cè)試。采用自底向上,分模塊進(jìn)行,即先調(diào)試低層函數(shù)。能夠熟練掌握調(diào)試工具的各種功能,設(shè)計(jì)測(cè)試數(shù)據(jù)確定疑點(diǎn),通過(guò)修改程序來(lái)證實(shí)它或繞過(guò)它。調(diào)試正確后,認(rèn)真整理源程序及其注釋?zhuān)纬筛袷胶惋L(fēng)格良好的源程
9、序清單和結(jié)果;</p><p> 5.結(jié)果分析。程序運(yùn)行結(jié)果包括正確的輸入及其輸出結(jié)果和含有錯(cuò)誤的輸入及其輸出結(jié)果。</p><p> 6.編寫(xiě)課程設(shè)計(jì)報(bào)告;</p><p> 設(shè)計(jì)報(bào)告要求:A4紙,詳細(xì)設(shè)計(jì)部分主要敘述本人的工作內(nèi)容</p><p><b> 設(shè)計(jì)報(bào)告的格式:</b></p>&l
10、t;p> (1)封面(題目、指導(dǎo)教師、專(zhuān)業(yè)、班級(jí)、姓名、學(xué)號(hào))</p><p> (2)設(shè)計(jì)任務(wù)書(shū)(3)目錄</p><p><b> (4)需求分析</b></p><p><b> (5)概要設(shè)計(jì)</b></p><p> (6)詳細(xì)設(shè)計(jì)(含主要代碼)</p>&
11、lt;p> (7)調(diào)試分析、測(cè)試結(jié)果</p><p><b> (8)用戶使用說(shuō)明</b></p><p> (9)附錄或參考資料</p><p><b> 四、進(jìn)度安排</b></p><p> 設(shè)計(jì)在學(xué)期的第15、16周進(jìn)行,時(shí)間安排如下:</p><p>
12、;<b> 五、成績(jī)?cè)u(píng)定辦法</b></p><p> 成績(jī)分為優(yōu)(A)、良(B)、中(C)、及格(D)、不及格(E)五個(gè)等級(jí)。其中設(shè)計(jì)表現(xiàn)占30%,驗(yàn)收40%,設(shè)計(jì)報(bào)告占30%。</p><p> 1.設(shè)計(jì)表現(xiàn):教師可依據(jù)學(xué)生使用實(shí)驗(yàn)環(huán)境的能力、觀察和分析實(shí)驗(yàn)現(xiàn)象的能力、實(shí)驗(yàn)結(jié)果和數(shù)據(jù)的正確性以及學(xué)生的課堂紀(jì)律、實(shí)驗(yàn)態(tài)度、保持實(shí)驗(yàn)室衛(wèi)生等方面的表現(xiàn)進(jìn)行綜合考核
13、。</p><p> 2.驗(yàn)收:要求學(xué)生演示設(shè)計(jì)的程序,講解設(shè)計(jì)思路、方法、解決的主要問(wèn)題,教師根據(jù)具體情況向每個(gè)學(xué)生提問(wèn)2至3個(gè)問(wèn)題。</p><p> 3.設(shè)計(jì)報(bào)告:學(xué)生設(shè)計(jì)后應(yīng)按時(shí)完成設(shè)計(jì)報(bào)告。要求:內(nèi)容充實(shí)、寫(xiě)作規(guī)范、項(xiàng)目填寫(xiě)正確完整、書(shū)面整潔等。</p><p><b> 目錄</b></p><p>
14、 需求分析………………………………………………6</p><p> 1.進(jìn)一步理解進(jìn)程的基本概念 …………………………6</p><p> 2.加強(qiáng)進(jìn)程管理的設(shè)計(jì)及算法 …………………………6 </p><p> 3.觀察和管理進(jìn)程 ………………………………………6</p><p> 概要設(shè)計(jì)……
15、…………………………………………6</p><p> 1.實(shí)驗(yàn)原理………………………………………………6</p><p> 2.?dāng)?shù)據(jù)結(jié)構(gòu)………………………………………………6</p><p> 3. 算法描述………………………………………………6</p><p> 4. 算法流程圖……………………………………………7</p>
16、;<p> 詳細(xì)設(shè)計(jì)………………………………………………8</p><p> 1.源程序代碼……………………………………………8</p><p> 四、 調(diào)試分析及測(cè)試結(jié)果 ………………………………15</p><p> 五、 用戶及用說(shuō)明 ………………………………………17</p><p> 六、 附錄或參考資
17、料 ……………………………………17</p><p><b> 一、需求分析</b></p><p> 1.進(jìn)一步理解進(jìn)程的基本概念。</p><p> 2.加強(qiáng)進(jìn)程管理中主要數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)及進(jìn)程調(diào)度算法。 </p><p> 3.觀察和管理進(jìn)程——系統(tǒng)在運(yùn)行過(guò)程中可顯示或
18、打印各進(jìn)程的狀態(tài)及有關(guān)參數(shù)的變化情況。</p><p><b> 二、概要設(shè)計(jì)</b></p><p><b> 1.實(shí)驗(yàn)原理</b></p><p> 定義PCB的數(shù)據(jù)結(jié)構(gòu),用鏈表的形式管理進(jìn)程,采用多級(jí)反饋隊(duì)列調(diào)度的算法模擬進(jìn)程的控制,最終完成有創(chuàng)建、撤銷(xiāo)、調(diào)度、阻塞、喚醒進(jìn)程等功能。</p>&l
19、t;p><b> 2.?dāng)?shù)據(jù)結(jié)構(gòu)</b></p><p><b> 類(lèi):</b></p><p> class queuenode</p><p> class queue</p><p><b> 函數(shù):</b></p><p> vo
20、id enqueue( char &item);</p><p> char dequeue();</p><p> void del(char item);</p><p> void display();</p><p> int find(char item);</p><p> int ise
21、mpty()</p><p><b> 3.算法描述</b></p><p> 1-1、創(chuàng)建進(jìn)程,根據(jù)進(jìn)程的順序依次放入就緒隊(duì)列。</p><p> 2-1、執(zhí)行進(jìn)程——管理系統(tǒng)將就緒隊(duì)列中的第一個(gè)進(jìn)程調(diào)入運(yùn)行隊(duì)列;</p><p> 2-2、將阻塞隊(duì)列中進(jìn)程調(diào)入就緒隊(duì)列;</p><p>
22、; 2-3、封鎖進(jìn)程——管理系統(tǒng)將就緒隊(duì)列中的第一個(gè)進(jìn)程調(diào)入阻塞隊(duì)列;</p><p> 2-4、結(jié)束進(jìn)程——管理系統(tǒng)撤銷(xiāo)所選進(jìn)程;</p><p><b> 2-5、結(jié)束程序。</b></p><p><b> 4. 算法流程圖</b></p><p><b> 三、詳細(xì)設(shè)計(jì)&
23、lt;/b></p><p><b> 1.源程序代碼</b></p><p> #include<iostream.h></p><p> class queuenode</p><p><b> {</b></p><p> friend cl
24、ass queue;</p><p><b> private:</b></p><p> char data;</p><p> queuenode * link;</p><p> queuenode (char d=0,queuenode * l=NULL): data(d),link(l){}</p
25、><p><b> };</b></p><p> class queue</p><p><b> {</b></p><p><b> public:</b></p><p> queue():rear(NULL),front(NULL){};
26、</p><p><b> ~queue();</b></p><p> void enqueue( char &item);</p><p> char dequeue();</p><p> void del(char item);</p><p> void display
27、();</p><p> int find(char item);</p><p> int isempty(){return front==NULL;}</p><p><b> private:</b></p><p> queuenode *front,*rear;</p><p>
28、<b> };</b></p><p> queue::~queue()</p><p><b> {</b></p><p> queuenode * p;</p><p> while(front!=NULL)</p><p><b> {</
29、b></p><p> p=front;front=front->link;delete p;</p><p><b> }</b></p><p><b> }</b></p><p> void queue::enqueue(char &item)</p>
30、<p><b> {</b></p><p> if(front==NULL)front=rear=new queuenode(item,NULL);</p><p> else rear=rear->link=new queuenode(item,NULL);</p><p><b> }</b&g
31、t;</p><p> char queue::dequeue()</p><p><b> {</b></p><p> queuenode *p=front;</p><p> char f=p->data;front=front->link;</p><p><b&
32、gt; delete p;</b></p><p><b> return f;</b></p><p><b> }</b></p><p> void queue::display()</p><p><b> {</b></p><
33、;p> queuenode *p;</p><p><b> p=front;</b></p><p> while(p!=NULL)</p><p> {cout<<p->data<<"->";</p><p> p=p->link;<
34、;/p><p><b> }</b></p><p> cout<<"NULL";</p><p><b> }</b></p><p> queue::find(char item)</p><p> { queuenode *w;
35、</p><p><b> w=front;</b></p><p> M:while(w!=NULL)</p><p><b> {</b></p><p> if(item==w->data)</p><p> {return 1;break;</
36、p><p><b> }</b></p><p><b> else</b></p><p> {w=w->link;</p><p><b> goto M;</b></p><p><b> }</b></p
37、><p><b> }</b></p><p> if(w==NULL) return 0;</p><p><b> }</b></p><p> void queue::del( char item)</p><p> { queuenode *q,*b;<
38、;/p><p><b> q=front;</b></p><p> while(q->data!=item)</p><p><b> {b=q;</b></p><p> q=q->link;</p><p><b> }</b>&
39、lt;/p><p> if(q==front) {front=front->link; delete q;}</p><p> else if(q==rear) {rear=b;rear->link=NULL;delete q;}</p><p> else {b->link=q->link; delete q;}</p>
40、<p><b> }</b></p><p> void main()</p><p><b> {</b></p><p><b> int n;</b></p><p><b> char a;</b></p>&l
41、t;p> cout<<"\n[-----------操作系統(tǒng)之進(jìn)程管理模擬系統(tǒng)(先來(lái)先服務(wù)算法)------------]\n"<<endl;</p><p> queue execute,ready,clog; //執(zhí)行,就緒,阻塞</p><p> cout<<"\n[-------請(qǐng)用戶輸入進(jìn)程名及其
42、到達(dá)cpu的順序(結(jié)束進(jìn)程數(shù)請(qǐng)輸入x)------]\n"<<endl;</p><p><b> char r;</b></p><p><b> r='x';</b></p><p> for(int i=0;;i++)</p><p><b&g
43、t; { </b></p><p> char e[100];</p><p> cout<<"輸入進(jìn)程名:"<<" ";</p><p> cin>>e[i];</p><p> if(e[i]!=r)</p><p&g
44、t; ready.enqueue(e[i]);</p><p><b> else</b></p><p><b> break;</b></p><p><b> }</b></p><p> A: cout<<"\n [----------
45、--請(qǐng)(學(xué)號(hào))用戶(姓名)選擇操作------------]\n";</p><p> cout<<"\n [1、執(zhí)行進(jìn)程……2、將阻塞隊(duì)列中進(jìn)程調(diào)入就緒隊(duì)列………]\n";</p><p> cout<<"\n [3、封鎖進(jìn)程…………………4、結(jié)束進(jìn)程 …………………]\n";</p><p
46、> cout<<"\n [5、退出程序………………………………………………… ]\n選項(xiàng): ";</p><p><b> cin>>n;</b></p><p><b> if(n==1)</b></p><p><b> {</b><
47、/p><p> if(!execute.isempty ())</p><p><b> {</b></p><p> cout<<"已經(jīng)有進(jìn)程在執(zhí)行!,此操作不能執(zhí)行\(zhòng)n";</p><p><b> char w;</b></p><p&g
48、t; cout<<endl;</p><p> cout<<"如果要繼續(xù)請(qǐng)輸入#;如果要退出按其它任意鍵"<<endl;</p><p> cout<<"要選擇的操作:";</p><p><b> cin>>w;</b></p&g
49、t;<p> if(w=='#')goto L;</p><p> else goto E;</p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p>&
50、lt;p> if(!ready.isempty())</p><p><b> {</b></p><p> a=ready.dequeue();</p><p><b> if(a!=r)</b></p><p> execute.enqueue(a);</p>&l
51、t;p><b> goto L;</b></p><p><b> }</b></p><p> else goto L;</p><p><b> }</b></p><p><b> }</b></p><p>
52、 else if(n==2)</p><p><b> {</b></p><p> if(!clog.isempty())</p><p><b> {</b></p><p> a=clog.dequeue ();</p><p><b> if(a
53、!=r)</b></p><p> ready.enqueue(a);</p><p><b> goto L;</b></p><p><b> }</b></p><p> else goto L;</p><p><b> }</b
54、></p><p> else if(n==3)</p><p><b> {</b></p><p> if(!execute.isempty())</p><p><b> {</b></p><p> a=execute.dequeue ();</
55、p><p><b> if(a!=r)</b></p><p> clog.enqueue(a);</p><p><b> goto L;</b></p><p><b> }</b></p><p> else goto L;</p>
56、;<p><b> }</b></p><p> else if(n==4)</p><p><b> {</b></p><p> cout<<"\n請(qǐng)輸入要結(jié)束的進(jìn)程名: ";</p><p><b> cin>>a;
57、</b></p><p> if(execute.find (a)||ready.find (a)||clog.find (a))</p><p><b> {</b></p><p> if(execute.find(a))</p><p> {execute.del(a);}</p>
58、<p> else if(ready.find(a))</p><p> {ready.del(a);}</p><p> if(clog.find(a))</p><p> {clog.del(a);}</p><p> cout<<"\n結(jié)束進(jìn)程成功!\n"<<endl;&
59、lt;/p><p><b> goto L;</b></p><p><b> } </b></p><p><b> else</b></p><p> cout<<"沒(méi)有此進(jìn)程"<<endl;</p><p
60、><b> goto L;</b></p><p><b> L: </b></p><p> if(n==1||n==2||n==3||n==4)</p><p><b> {</b></p><p> cout<<"執(zhí)行隊(duì)列"
61、<<endl;</p><p> execute.display();</p><p> cout<<endl;</p><p> cout<<"就緒隊(duì)列"<<endl;</p><p> ready.display();cout<<endl;</p
62、><p> cout<<"阻塞隊(duì)列"<<endl;</p><p> clog.display();cout<<endl;</p><p><b> goto A;</b></p><p><b> }</b></p><
63、;p><b> else </b></p><p><b> if(n==5);</b></p><p><b> else </b></p><p><b> {</b></p><p> cout<<"\n你的輸入
64、錯(cuò)誤!\n";</p><p><b> goto A;</b></p><p><b> }</b></p><p><b> }</b></p><p><b> E:;} </b></p><p> 四、
65、調(diào)試分析及測(cè)試結(jié)果</p><p><b> 五、用戶使用說(shuō)明</b></p><p> 用戶通過(guò)VC++ 即可運(yùn)行改程序。需說(shuō)明的是主函數(shù)是實(shí)現(xiàn)進(jìn)程管理的入口,在入口處需輸入進(jìn)程名稱,然后輸入進(jìn)程的狀態(tài)選項(xiàng),如果完畢后,則通過(guò)相應(yīng)的調(diào)度算法進(jìn)行進(jìn)程機(jī)的調(diào)度,同時(shí)也將結(jié)果顯示在屏幕上。</p><p> 本次實(shí)驗(yàn)通過(guò)模擬多個(gè)進(jìn)程的同步運(yùn)
66、行,實(shí)現(xiàn)了進(jìn)程就緒,運(yùn)行,阻塞三個(gè)狀態(tài)的轉(zhuǎn)換,并可以根據(jù)用戶要求改變進(jìn)程的狀態(tài)。</p><p><b> 六、附錄及參考資料</b></p><p> [1]王紅 ,《操作系統(tǒng)實(shí)訓(xùn)》,中國(guó)水利水電出版社,2005</p><p> [2]張紅光,《UNIX操作系統(tǒng)試驗(yàn)教程》,機(jī)械工程出版社,2006</p><p&g
溫馨提示
- 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)進(jìn)程調(diào)度課程設(shè)計(jì)
- 操作系統(tǒng)進(jìn)程調(diào)度課程設(shè)計(jì)
- 操作系統(tǒng)模擬進(jìn)程課程設(shè)計(jì)
- 操作系統(tǒng)課程設(shè)計(jì)——操作系統(tǒng)課程設(shè)計(jì)模擬操作系統(tǒng)
- 進(jìn)程調(diào)度算法 操作系統(tǒng)課程設(shè)計(jì)
- 操作系統(tǒng)進(jìn)程控制課程設(shè)計(jì)
- 操作系統(tǒng)課程設(shè)計(jì)---進(jìn)程的創(chuàng)建
- 操作系統(tǒng)進(jìn)程調(diào)度課程設(shè)計(jì)報(bào)告
- 操作系統(tǒng)課程設(shè)計(jì)--進(jìn)程調(diào)度算法
- 內(nèi)存管理(操作系統(tǒng))操作系統(tǒng)課程設(shè)計(jì)
- 操作系統(tǒng)課程設(shè)計(jì)-進(jìn)程調(diào)度模擬
- 操作系統(tǒng)課程設(shè)計(jì)---進(jìn)程調(diào)度算法
- 進(jìn)程調(diào)度算法操作系統(tǒng)課程設(shè)計(jì)
- 操作系統(tǒng)課程設(shè)計(jì)--進(jìn)程調(diào)度算法
- 操作系統(tǒng)課程設(shè)計(jì)-- 操作系統(tǒng)
- 進(jìn)程調(diào)度算法操作系統(tǒng)課程設(shè)計(jì) (2)
- 操作系統(tǒng)課程設(shè)計(jì)——進(jìn)程調(diào)度模擬算法
- 操作系統(tǒng)_進(jìn)程調(diào)度算法課程設(shè)計(jì)報(bào)告
- 操作系統(tǒng)課程設(shè)計(jì)——進(jìn)程調(diào)度模擬算法
- 操作系統(tǒng)課程設(shè)計(jì)---進(jìn)程調(diào)度模擬設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論