計算機操作系統(tǒng)進程調(diào)度實驗報告.doc
《計算機操作系統(tǒng)進程調(diào)度實驗報告.doc》由會員分享,可在線閱讀,更多相關(guān)《計算機操作系統(tǒng)進程調(diào)度實驗報告.doc(16頁珍藏版)》請在匯文網(wǎng)上搜索。
1、. .操作系統(tǒng)實驗題:設(shè)計一假設(shè)干并發(fā)進程的進程調(diào)度程序一、 實驗?zāi)康臒o論是批處理系統(tǒng)、分時系統(tǒng)還是實時系統(tǒng),用戶進程數(shù)一般都大于處理機數(shù),這將導(dǎo)致用戶進程互相爭奪處理機。這就要求進程調(diào)度程序按一定的策略,動態(tài)地把處理及分配給處于就緒隊列中的某一進程,以使之執(zhí)行。進程調(diào)度是處理機管理的核心容。本實驗要求采用最高優(yōu)先數(shù)優(yōu)先的調(diào)度算法即把處理機分配給優(yōu)先數(shù)最高的進程和先來先效勞算法編寫和調(diào)試一個簡單的進程調(diào)度程序。通過本實驗可以加深理解有關(guān)進程控制塊、進程隊列的概念。并體會了優(yōu)先數(shù)和先來先效勞調(diào)度算法的具體實施方法。二、 實驗要求用高級語言編寫和調(diào)試一個進程調(diào)度程序,以加深對進程的概念及進程調(diào)度算
2、法的理解 三、 實驗容進程調(diào)度算法:采用最高優(yōu)先數(shù)優(yōu)先的調(diào)度算法即把處理機分配給優(yōu)先數(shù)最高的進程和先來先效勞算法將用戶作業(yè)和就緒進程按提交順序或變?yōu)榫途w狀態(tài)的先后排成隊列,并按照先來先效勞的方式進展調(diào)度處理。 每個進程有一個進程控制塊 PCB表示。進程控制塊可以包含如下信息:進程名、優(yōu)先數(shù)、到達時間、需要運行時間、已用CPU時間、進程狀態(tài)等等。 進程的優(yōu)先數(shù)及需要的運行時間可以事先人為地指定也可以由隨機數(shù)產(chǎn)生。進程的到達時間為進程輸入的時間。 進程的運行時間以時間片為單位進展計算。 每個進程的狀態(tài)可以是就緒 WWait、運行RRun、或完成FFinish三種狀態(tài)之一。 就緒進程獲得 CPU后都
3、只能運行一個時間片。用已占用CPU時間加1來表示。 如果運行一個時間片后,進程的已占用 CPU時間已到達所需要的運行時間,那么撤消該進程,如果運行一個時間片后進程的已占用CPU時間還未達所需要的運行時間,也就是進程還需要繼續(xù)運行,此時應(yīng)將進程的優(yōu)先數(shù)減1即降低一級,然后把它插入就緒隊列等待CPU。每進展一次調(diào)度程序都打印一次運行進程、就緒隊列、以及各個進程的 PCB,以便進展檢查。 重復(fù)以上過程,直到所要進程都完成為止。四、 實驗算法流程調(diào)度算法的流程圖如下 :五、 實驗程序清單#include stdio.h #include #include #define getpch(type) (t
4、ype*)malloc(sizeof(type) #define NULL 0 struct pcb /* 定義進程控制塊PCB */ char name10; char state; int super; int ntime; int rtime; struct pcb* link; *ready=NULL,*p; typedef struct pcb PCB; char sort() /* 建立對進程進展優(yōu)先級排列函數(shù)*/ PCB *first, *second; int insert=0; if(ready=NULL)|(p-super)(ready-super) /*優(yōu)先級最大者,插入
5、隊首*/ p-link=ready; ready=p; else /* 進程比擬優(yōu)先級,插入適當(dāng)?shù)奈恢弥?/ first=ready; second=first-link; while(second!=NULL) if(p-super)(second-super) /*假設(shè)插入進程比當(dāng)前進程優(yōu)先數(shù)大,*/ /*插入到當(dāng)前進程前面*/ p-link=second; first-link=p; second=NULL; insert=1; else /* 插入進程優(yōu)先數(shù)最低,那么插入到隊尾*/ first=first-link; second=second-link; if(insert=0) f
6、irst-link=p; char input() /* 建立進程控制塊函數(shù)*/ int i,num; /clrscr(); /*清屏*/ printf(n 請輸入被調(diào)度的進程數(shù)目:); scanf(%d,&num); for(i=0;iname); printf(n 輸入進程優(yōu)先數(shù):); scanf(%d,&p-super); printf(n 輸入進程運行時間:); scanf(%d,&p-ntime); printf(n); p-rtime=0;p-state=w; p-link=NULL; sort(); /* 調(diào)用sort函數(shù)*/ int space() int l=0; PCB*
- 1.請仔細(xì)閱讀文檔,確保文檔完整性,對于不預(yù)覽、不比對內(nèi)容而直接下載帶來的問題本站不予受理。
- 2.下載的文檔,不會出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請點此認(rèn)領(lǐng)!既往收益都?xì)w您。
下載文檔到電腦,查找使用更方便
10 積分
下載 | 加入VIP,下載共享資源 |
- 配套講稿:
如PPT文件的首頁顯示word圖標(biāo),表示該PPT已包含配套word講稿。雙擊word圖標(biāo)可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計者僅對作品中獨創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- 計算機 操作系統(tǒng) 進程 調(diào)度 實驗 報告