操作系統(tǒng)實驗報告--實驗一--進程管理(共10頁).doc
《操作系統(tǒng)實驗報告--實驗一--進程管理(共10頁).doc》由會員分享,可在線閱讀,更多相關(guān)《操作系統(tǒng)實驗報告--實驗一--進程管理(共10頁).doc(10頁珍藏版)》請在匯文網(wǎng)上搜索。
1、精選優(yōu)質(zhì)文檔-傾情為你奉上實驗一 進程管理一、目的進程調(diào)度是處理機管理的核心內(nèi)容。本實驗要求編寫和調(diào)試一個簡單的進程調(diào)度程序。通過本實驗加深理解有關(guān)進程控制塊、進程隊列的概念,并體會和了解進程調(diào)度算法的具體實施辦法。二、實驗內(nèi)容及要求1、設(shè)計進程控制塊PCB的結(jié)構(gòu)(PCB結(jié)構(gòu)通常包括以下信息:進程名(進程ID)、進程優(yōu)先數(shù)、輪轉(zhuǎn)時間片、進程所占用的CPU時間、進程的狀態(tài)、當(dāng)前隊列指針等??筛鶕?jù)實驗的不同,PCB結(jié)構(gòu)的內(nèi)容可以作適當(dāng)?shù)脑鰟h)。為了便于處理,程序中的某進程運行時間以時間片為單位計算。各進程的輪轉(zhuǎn)時間數(shù)以及進程需運行的時間片數(shù)的初始值均由用戶給定。2、系統(tǒng)資源(r1rw),共有w類,
2、每類數(shù)目為r1rw。隨 機產(chǎn)生n進程Pi(id,s(j,k),t),0<=i<=n,0<=j<=m,0<=k<=dt為總運行時間,在運行過程中,會隨機申請新的資源。3、每個進程可有三個狀態(tài)(即就緒狀態(tài)W、運行狀態(tài)R、等待或阻塞狀態(tài)B),并假設(shè)初始狀態(tài)為就緒狀態(tài)。建立進程就緒隊列。4、編制進程調(diào)度算法:時間片輪轉(zhuǎn)調(diào)度算法本程序用該算法對n個進程進行調(diào)度,進程每執(zhí)行一次,CPU時間片數(shù)加1,進程還需要的時間片數(shù)減1。在調(diào)度算法中,采用固定時間片(即:每執(zhí)行一次進程,該進程的執(zhí)行時間片數(shù)為已執(zhí)行了1個單位),這時,CPU時間片數(shù)加1,進程還需要的時間片數(shù)減1,并排
3、列到就緒隊列的尾上。三、實驗環(huán)境操作系統(tǒng)環(huán)境:Windows系統(tǒng)。編程語言:C#。四、實驗思路和設(shè)計1、程序流程圖對進程進行初始化,建立就緒隊列、阻塞隊列。Input()觸發(fā)時鐘,調(diào)用時間片輪轉(zhuǎn)調(diào)度算法。runFcfs()取就緒隊列的第一個進程,判斷其運行的時間片是否達到所需次數(shù)。如果達到,則釋放資源如果沒達到,則運行一個時間片。running()輸出就緒隊列和阻塞隊列的信息。outputall()就緒隊列為空?檢查阻塞隊列,對于當(dāng)前資源數(shù)目滿足阻塞隊列的進程,由阻塞轉(zhuǎn)入就緒隊列。testblock()檢查是否有新進程產(chǎn)生,如果有,則判斷系統(tǒng)資源是否夠用,如果夠用,則分配給該進程,插入就緒隊列
4、。如果不夠用,則插入阻塞隊列。testnew()顯示三類資源情況。rescore()結(jié)束開始是否2、主要程序代碼/PCB結(jié)構(gòu)體struct pcb public int id; /進程ID public int ra; /所需資源A的數(shù)量 public int rb; /所需資源B的數(shù)量 public int rc; /所需資源C的數(shù)量 public int ntime; /所需的時間片個數(shù) public int rtime; /已經(jīng)運行的時間片個數(shù) public char state; /進程狀態(tài),W(等待)、R(運行)、B(阻塞) /public int next; ArrayList h
5、ready = new ArrayList(); ArrayList hblock = new ArrayList(); Random random = new Random(); /ArrayList p = new ArrayList(); int m, n, r, a,a1, b,b1, c,c1, h = 0, i = 1, time1Inteval;/m為要模擬的進程個數(shù),n為初始化進程個數(shù) /r為可隨機產(chǎn)生的進程數(shù)(r=m-n) /a,b,c分別為A,B,C三類資源的總量 /i為進城計數(shù),i=1n /h為運行的時間片次數(shù),time1Inteval為時間片大小(毫秒)/對進程進行初始
6、化,建立就緒數(shù)組、阻塞數(shù)組。public void input()/對進程進行初始化,建立就緒隊列、阻塞隊列 m = int.Parse(textBox4.Text); n = int.Parse(textBox5.Text); a = int.Parse(textBox6.Text); b = int.Parse(textBox7.Text); c = int.Parse(textBox8.Text); a1 = a; b1 = b; c1 = c; r = m - n; time1Inteval = int.Parse(textBox9.Text); timer1.Interval = t
- 1.請仔細閱讀文檔,確保文檔完整性,對于不預(yù)覽、不比對內(nèi)容而直接下載帶來的問題本站不予受理。
- 2.下載的文檔,不會出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請點此認(rèn)領(lǐng)!既往收益都歸您。
下載文檔到電腦,查找使用更方便
20 積分
下載 | 加入VIP,下載共享資源 |
- 配套講稿:
如PPT文件的首頁顯示word圖標(biāo),表示該PPT已包含配套word講稿。雙擊word圖標(biāo)可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計者僅對作品中獨創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- 操作系統(tǒng) 實驗 報告 進程 管理 10