九九热最新网址,777奇米四色米奇影院在线播放,国产精品18久久久久久久久久,中文有码视频,亚洲一区在线免费观看,国产91精品在线,婷婷丁香六月天

歡迎來到裝配圖網! | 幫助中心 裝配圖網zhuangpeitu.com!
裝配圖網
ImageVerifierCode 換一換
首頁 裝配圖網 > 資源分類 > DOCX文檔下載  

南昌大學操作系統(tǒng)實驗報告

  • 資源ID:359712       資源大小:972.60KB        全文頁數:11頁
  • 資源格式: DOCX        下載積分:10積分
快捷下載 游客一鍵下載
會員登錄下載
微信登錄下載
三方登錄下載: 微信開放平臺登錄 支付寶登錄   QQ登錄   微博登錄  
二維碼
微信掃一掃登錄
下載資源需要10積分
郵箱/手機:
溫馨提示:
用戶名和密碼都是您填寫的郵箱或者手機號,方便查詢和重復下載(系統(tǒng)自動生成)
支付方式: 支付寶    微信支付   
驗證碼:   換一換

 
賬號:
密碼:
驗證碼:   換一換
  忘記密碼?
    
友情提示
2、PDF文件下載后,可能會被瀏覽器默認打開,此種情況可以點擊瀏覽器菜單,保存網頁到桌面,就可以正常下載了。
3、本站不支持迅雷下載,請使用電腦自帶的IE瀏覽器,或者360瀏覽器、谷歌瀏覽器下載即可。
4、本站資源下載后的文檔和圖紙-無水印,預覽文檔經過壓縮,下載后原文更清晰。
5、試題試卷類文檔,如果標題沒有明確說明有答案則都視為沒有答案,請知曉。

南昌大學操作系統(tǒng)實驗報告

南 昌 大 學 實 驗 報 告-( 3) 進 程 調 度 算 法 的 實 現學生姓名: 張皓然 學 號: 5501215001 專業(yè)班級: 本碩 151 實驗類型: 驗證 綜合 設計 創(chuàng)新 實驗日期: 2017.5.31 實驗成績: 一、實驗目的通過實驗加強對進程調度算法的理解和掌握。二、實驗內容編寫程序實現進程調度算法,具體可以編寫程序實現優(yōu)先度高者調度算法或先來先服務算法。三、實驗要求1、需寫出設計說明;2、設計實現代碼及說明3、運行結果;四、主要實驗步驟優(yōu)先度高者調度算法實驗代碼: 1#include #include #include #include #include #define runtime 2#define overflow -2#define null 0enum sta run, wait, finished ;/枚舉類型 sta,標志三種狀態(tài)time_t t; /system clockstruct blockint time_used;int prior;/定義結構體,使用時間,優(yōu)先級typedef struct prochar name20;enum sta status;int time_required;int arrive_time;struct block switch_block;struct pro *next;*pcb;/定義 pcb 塊pcb ready;void menu();void insertpcb(pcb newp) /插入至就緒隊列pcb p;p = (pcb)malloc(sizeof(struct pro);if (!p)exit(overflow);p = ready;if (p->next = null)newp->next = ready->next;ready->next = newp;elsewhile (newp->switch_block.priornext->switch_block.prior&&p->next != null)p = p->next;newp->next = p->next;p->next = newp;void creat_pcb() /創(chuàng)建一個進程pcb newp;newp = (pcb)malloc(sizeof(struct pro);if (!newp) exit(overflow);newp->status = wait;time(newp->arrive_time = t;printf("process name:");scanf("%s", newp->name);printf("priority:");scanf("%d", printf("arrive time:");scanf("%d", printf("cputime_required:");scanf("%d", newp->switch_block.time_used = 0;insertpcb(newp);menu();void printpcb() /打印現狀pcb p;if (ready->next) printf("name status priority server_time arrive_time cputime_usedn");for (p = ready->next; p != null; p = p->next)printf("%s", p->name);switch (p->status)case wait:printf(" wait"); break;case run:printf(" run"); break;case finished:printf(" finished"); break;printf("%7d", p->switch_block.prior);printf("%15d", p->time_required);printf("%20d", p->arrive_time);printf("%13d", p->switch_block.time_used);putchar('n');else printf("queue is empty!n");void switchprocess() /將內存中的進程切換至外存char temp20;pcb p, q;if (ready->next)printf("input process name:");scanf("%s", temp);for (p = ready; p != null p = p->next);if (p != null)q = p->next;p->next = q->next;printf("remove %s successfully!n", q->name);free(q);printpcb();else printf("found no processn");else printf("queue empty!n");menu();void runprocess() /進程調度pcb p = ready->next;if (p)printf("%s is running.n", p->name);p->status = run;p->switch_block.prior-;p->switch_block.time_used += runtime;if (p->switch_block.time_used >= p->time_required)p->status = finished;printpcb();ready->next = p->next;printf("%s have been removed from the ready_queue.n", p->name);free(p);elseprintpcb();printf("%s have used up the run_timen", p->name);p->status = wait;ready->next = p->next;insertpcb(p);else printf("queue empty!n");menu();void menu()/選擇菜單int coos;printf("1.creat a processn");printf("2.run a processn");printf("3.remove a processn");printf("4.exitn");printf("choose(1-4):");scanf("%d", switch (coos)case 1:creat_pcb(); break;case 2:runprocess(); break;case 3:switchprocess(); break;case 4:exit(0); break;int main()/clrscr();ready = (pcb)malloc(sizeof(struct pro);if (!ready) exit(overflow);ready->next = null;menu();return 0;實驗過程:優(yōu)先度高者調度算法實驗結果截圖: 1先創(chuàng)建進程 a、b、c,設 a 進程優(yōu)先級為 2,到達時間為 2,cpu 處理時間為 1;設 b 進程優(yōu)先級為 5,到達時間為 0,cpu 處理時間為 6;設 c 進程優(yōu)先級為 4,到達時間為 2,cpu 處理時間為 2;開始運行進程,首先運行 0 時刻到達的優(yōu)先級最高的進程 b設定進程 a、b、c運行結束后,進程 b 的優(yōu)先級變?yōu)?4,cpu 使用時間為 2,此時進程 b 和 c 優(yōu)先級相同,系統(tǒng)仍然調用進程 b;進程 b 在運行還是進程 b再次運行進程 b 以后,b 的優(yōu)先級掉為 3,而且進程 b 還差 2 個時間單位才能運行結束,此時 c 為優(yōu)先級最高的進程,系統(tǒng)調用進程 c因為進程 c 的 cpu 需要時間僅為 2 個時間單位,所以進程 c 運行結束,finished,c 被移除就緒序列;調度進程 c然后系統(tǒng)重新調用進程 b,b 運行結束;最后系統(tǒng)調度優(yōu)先級最低的進程 a,結束進程調度過程,隊列空。進程 c 結束進程 b 回歸調度進程 a進程 b 結束先來先服務算法: 2#include#includeusing namespace std;/FCFSstruct processchar name10;double arrivetime;/到到時間 double servetime; /服務時間 double starttime;/開始時間 double finnishtime;/完成時間 double circletime;/周轉時間 double dcircletime;/帶權周轉時間 a100;/用結構體存放各進程的相關信息int main()int i,j,k,n;process temp;cout>n;cout>ai.name>>ai.arrivetime>>ai.servetime; for(i=0;i<n;i+)for(j=0;j<i;j+)if(ai.arrivetime<aj.arrivetime)temp=ai;ai=aj;aj=temp;/按照 FCFS 算法對進程進行排序cout<<"nFCFS 進程調度順序為:n"for(k=0;k<n;k+)cout<<" "<<ak.name;cout<<endl;a0.starttime=a0.arrivetime;a0.finnishtime=a0.servetime+a0.starttime;a0.circletime=a0.finnishtime-a0.arrivetime;a0.dcircletime=a0.circletime/a0.servetime;/計算第一個進程的相關信息for(i=1;i<n;i+)ai.starttime=ai-1.servetime+ai-1.starttime;ai.finnishtime=ai.servetime+ai.starttime;ai.circletime=ai.finnishtime-ai.arrivetime;ai.dcircletime=ai.circletime/ai.servetime;/計算其他進程的相關信息cout<<"n 進程調度列表:n"cout<<"名稱"<<setw(10)<<"到達時間"<<setw(10)<<"服務時間"<<setw(10)<<"開始時間"<<setw(10)<<"完成時間"<<setw(10)<<"周轉時間"<<setw(14)<<"帶權周轉時間n"for(i=0;i<n;i+)cout<<ai.name<<setw(10)<<ai.arrivetime<<setw(10)<<ai.servetime<<setw(10)<<ai.starttime<<setw(10)<<ai.finnishtime<<setw(10)<<ai.circletime<<setw(14)<<ai.dcircletime<<endl; return 0;實驗結果及其解釋:周轉時間=完成時間-到達時間帶權周轉時間=周轉時間/服務時間很明顯地觀察到先到達的進程先開始運行,直到該進程結束運行后才調度下一個進程。進程調度順序為 D、C、A、B ,實現了 First Come First Served。五、實驗體會或對改進實驗的建議本次實驗做的是進程調度算法中的優(yōu)先度高者調度算法和先來先服務算法。其中按優(yōu)先級高的調度算法采用的是動態(tài)優(yōu)先級,即優(yōu)先級在進程創(chuàng)建之初被賦予,然后其值隨著進程的推進而減少,有較好的調度性能。而 FCFS 則是將新進入內存的進程放入隊列的末尾,按先來先服務的原則等待調度。在做 FCFS 的時候,在虛擬機上出了點問題,所以直接用 win8 下的 dev 解決了。通過這兩個實驗對比著加深了對按優(yōu)先度高者調度算法和先來先服務算法的理解和掌握。六、參考資料計算機操作系統(tǒng)修訂版 湯子瀛主編 西安電子科技大學出版社

注意事項

本文(南昌大學操作系統(tǒng)實驗報告)為本站會員(1**)主動上傳,裝配圖網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對上載內容本身不做任何修改或編輯。 若此文所含內容侵犯了您的版權或隱私,請立即通知裝配圖網(點擊聯(lián)系客服),我們立即給予刪除!

溫馨提示:如果因為網速或其他原因下載失敗請重新下載,重復下載不扣分。




關于我們 - 網站聲明 - 網站地圖 - 資源地圖 - 友情鏈接 - 網站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網版權所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對上載內容本身不做任何修改或編輯。若文檔所含內容侵犯了您的版權或隱私,請立即通知裝配圖網,我們立即給予刪除!