實驗二-實驗報告(進(jìn)程管理)_第1頁
實驗二-實驗報告(進(jìn)程管理)_第2頁
實驗二-實驗報告(進(jìn)程管理)_第3頁
實驗二-實驗報告(進(jìn)程管理)_第4頁
實驗二-實驗報告(進(jìn)程管理)_第5頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上實驗二 模擬實現(xiàn)進(jìn)程管理組長:李和林 軟件1402組員分工一、 實驗?zāi)康?. 理解進(jìn)程的概念,明確進(jìn)程和程序的區(qū)別。2. 理解并發(fā)執(zhí)行的實質(zhì)。3. 掌握進(jìn)程的創(chuàng)建,睡眠,撤銷等進(jìn)程控制方法。二、 實驗內(nèi)容用C語言,JAVA語言,C+語言編寫程序,模擬實現(xiàn)創(chuàng)建新的進(jìn)程;查看運(yùn)行進(jìn)程,換出某個進(jìn)程;殺死運(yùn)行進(jìn)程。三、 實驗準(zhǔn)備1. 進(jìn)程的定義進(jìn)程是程序在一個數(shù)據(jù)集合上的運(yùn)行過程,是系統(tǒng)資源分配和調(diào)度的一個獨(dú)立單位。一個程序在不同的數(shù)據(jù)集合上運(yùn)行,乃至一個程序在同樣數(shù)據(jù)集合上的多次運(yùn)行都是不同的進(jìn)程。2. 進(jìn)程的狀態(tài)通常情況下,一個進(jìn)程必須具有就緒,執(zhí)行和阻塞三種基本情況。

2、1) 就緒狀態(tài)當(dāng)進(jìn)程已分配到除處理器外的所有必要資源后,只要再獲得處理器就可以立即執(zhí)行,這時進(jìn)程的狀態(tài)就為就緒狀態(tài)。在一個系統(tǒng)里,可以有多個進(jìn)程同時處于就緒狀態(tài),通常把這些就緒進(jìn)程排成一個或多個隊列,稱為就緒隊列。2) 執(zhí)行狀態(tài)處于就緒狀態(tài)的進(jìn)程一旦獲得處理器,就可以運(yùn)行,進(jìn)程狀態(tài)也就處于執(zhí)行狀態(tài),在單處理器系統(tǒng)中,只能有一個進(jìn)程處于執(zhí)行狀態(tài),在多處理器系統(tǒng)中,則可能有多個進(jìn)程處于執(zhí)行狀態(tài)3) 阻塞狀態(tài)正在執(zhí)行的進(jìn)程因為發(fā)生某些事件而暫停運(yùn)行,這種受阻暫停的狀態(tài)稱為阻塞狀態(tài),也可稱為等待狀態(tài)。通常將處于阻塞狀態(tài)的進(jìn)程拍成一個隊列,稱為阻塞隊列,在有些系統(tǒng)中,也會按阻塞原因的不同將阻塞狀態(tài)的進(jìn)程

3、排成多個隊列。3. 進(jìn)程狀態(tài)之間的轉(zhuǎn)換接納完成中斷調(diào)度阻塞執(zhí)行終止就緒新進(jìn)程I/O請求I/O完成4. 進(jìn)程控制塊1) 進(jìn)程控制塊的作用進(jìn)程控制塊是進(jìn)程實體的重要組成部分,主要包含下述四個方面的信息:a) 進(jìn)程標(biāo)示信息b) 說明信息c) 現(xiàn)場信息d) 管理信息5. 進(jìn)程控制塊的組織方式1) 鏈接方式2) 索引方式6. 進(jìn)程控制原語1) 創(chuàng)建原語2) 撤銷原語3) 阻塞原語4) 喚醒原語7. 程序代碼#include #includeusing namespace std;void clrscr();void create();void run( );void exchange( );/喚出voi

4、d kill( );void wakeUp( );/喚醒struct process_typeint pid;int priority;/優(yōu)先次序int size;int state;/狀態(tài)char info10;struct process_type internalMemory20;int amount=0,hangUp=0,pid,flag=0;/數(shù)目,掛起 void main( )int n;int a;n=1;clrscr( );while(n=1)coutn*;coutn* 進(jìn)程演示系統(tǒng) *;coutn*;coutn 1.創(chuàng)建新的進(jìn)程 2.查看運(yùn)行進(jìn)程 ;coutn 3.換出某個進(jìn)

5、程 4.殺死運(yùn)行進(jìn)程 ;coutn 5.喚醒某個進(jìn)程 6.退出系統(tǒng) ;coutn*endl; couta;switch(a)case 1:create( );break;case 2:run( );break;case 3:exchange();/換出break;case 4:kill();break;case 5:wakeUp();break;case 6:exit(0);default:n=0;void create() /創(chuàng)建進(jìn)程int i=0;if (amount=20)cout 內(nèi)存已滿,請先結(jié)束或換出進(jìn)程;elsefor (i=0;i20;i+)if (internalMemory

6、i.state=0)break;cout請輸入新進(jìn)程的pid: internalMemory i .pid;cout請輸入新進(jìn)程的優(yōu)先級: internalMemoryamount.priority;cout請輸入新進(jìn)程的大小: internalMemoryamount.size;cout請輸入新進(jìn)程的內(nèi)容: internalM;internalMemoryi.state=1;amount+;void clrscr()/清除內(nèi)存空間for (int i=0;i19;i+)internalMemoryi.pid=0;internalMemoryi.priority

7、=0;internalMemoryi.size=0;internalMemoryi.state=0;amount=0;void run()for (int i=0;i20;i+)if (internalMemoryi.state=1)cout當(dāng)前內(nèi)存中的進(jìn)程:nendl;cout當(dāng)前運(yùn)行的進(jìn)程: ;coutinternalMemoryi.pidendl;cout當(dāng)前運(yùn)行進(jìn)程的優(yōu)先級: ;coutinternalMemoryi.priorityendl;cout當(dāng)前運(yùn)行進(jìn)程占用的空間大小: ;coutinternalMemoryi.size;void exchange( )/喚出優(yōu)先級最小的進(jìn)程

8、if (!amount)cout當(dāng)前沒有運(yùn)行進(jìn)程n;return;coutpid;for (int i=0;i20;i+)if (pid=internalMemoryi.pid)if (internalMemoryi.state=1)internalMemoryi.state=2;hangUp+;coutn已經(jīng)成功換出進(jìn)程n;else if (internalMemoryi.state=0)coutn要換出的進(jìn)程不存在;elsecoutn要換出的進(jìn)程已被掛起n;flag=1;break;if (flag=0)coutn要換出的進(jìn)程不存在;void kill( )if (!amount)cout

9、當(dāng)前沒有運(yùn)行進(jìn)程n;return;coutpid;for (int i=0;i20;i+)if (pid=internalMemoryi.pid)if (internalMemoryi.state=1)internalMemoryi.state=0;amount-;cout此進(jìn)程被殺死pid;else if (internalMemoryi.state=0)coutn要?dú)⑺赖倪M(jìn)程不存在n;elsecoutn要?dú)⑺赖倪M(jìn)程已被掛起n;flag=1;break;if (!flag)coutn要?dú)⑺赖倪M(jìn)程不存在n;void wakeUp()if (!amount)cout當(dāng)前沒有運(yùn)行進(jìn)程endl;return;if (!hangUp)cout當(dāng)前沒有掛起進(jìn)程;return;coutpid;for (int i=0;i20;i+)if (pid=internalMemoryi.pid)flag=0;if (internalMemoryi.state=2)internalMemoryi.sta

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論