進程管理模擬實驗報告_第1頁
進程管理模擬實驗報告_第2頁
進程管理模擬實驗報告_第3頁
進程管理模擬實驗報告_第4頁
進程管理模擬實驗報告_第5頁
已閱讀5頁,還剩7頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、實驗三進程管理模擬實驗閱讀后面的C語言實例,修改程序,使其優先數在運行期間可以變化(動態優先數)。例如 當某進程被時間片中斷次數增加到一定數目時,提高其優先權。設計思路:首先在進程控制塊中增加一個記錄進程被中斷的次數的整形變量sum;然后在初始化函數中 對它初始化賦值為0;然后在block()函數中在每個進程被中斷后sum進行加1操作,再顯 示該被中斷進程被中斷的次數;然后再find()函數中設計當某個進程被中斷的次數達到3時 修改該進程的優先權,并把該優先權設計為最高!然后再由find()函數返回被選中的進程的 進程號!然后通過原來的相關代碼來執行它相應的操作(其他部分代碼不用變動)!進程控

2、制塊實現的關鍵代碼:進程控制塊struct F,-低就緝態等借奮 完成態 。下一個等饕進程的進拄號.int id; F,-低就緝態等借奮 完成態 。下一個等饕進程的進拄號.char status; 進程狀態,.int nextwr; 等畚鏈指曾 int priority: 進建,禿數 int sum;/記錄進程中斷次數 pcb3;/共3個進程生成進程控制塊for (j=B;j3;j+)pcbj.id=j; 進程號pcbj.status=J:r,;進程初始狀態為高就緒狀態pcbj.nextwr=NIL;pcbj.suiir0; 中斷次數初值為9printf(n進程 初 的優先藪?scanFCd,

3、);pcbj.pririty=i;進程優先級uaid ack(int se)int w;int i;i=(se=fi)?1:2;.printFf進程常。甲清sMi時被阻塞nl,exe+1 ,i);.pcbexe.status=W ;當刖進程瑟用塞pcbeXe.sum+;/前進程中斷次數加1printF(,矽,em+1 ,pcbExe -sum);pcbexe.nextwr=NTL; J空瀏為隊列的首個進程號.塞隊列第一個進程if J空瀏為隊列的首個進程號.塞隊列第一個進程semse-firstwr=exe;/當前進窿美閥墓隊列票-elsewhile(pcbw .nextwr*=NIL)/尋找隊

4、列的最后一個進程u w=pcbw.nextwr;pcbw.nextwr=exe;/將阻塞進程掛到隊列尾部在3個進程中按就緒狀態及其優先數選出進程。返回選出的進程號。int find()int j,pd=NIL,w=MAXPRI;for (j=0j3;j+) /選擇高就緒狀態優先級最高的進程if(pcbj.sum=3)pcbj.priority=0;pcbj.sum=0;printf(進程d中斷次數達到3次,該進程優先權最高nj+1);w=pcbj.priority;pd=j;elseif (pcbj.status=r) & (pcbj.priorityw)w=pcbj.priority;pd=

5、j;if (pd=NIL) /沒有高就緒狀態的進程,尋找低就緒狀態的進程。for (j=0;j3;j+)if(pcbj.sum=3)pcbj.priority=0;pcbj.sum=0;printf(進程d中斷次數達到3次,該進程優先權最高nj+1);w=pcbj.priority;pd=j;elseif (pcbj.status=,t,) & (pcbj.priorityw)w=pcbj.priority;pd=j;return (pd);程序運行結果:火火火火火ZR與富占每毋典熱火火火火火一與富占厚毋一M四焙右竣髀營梟軍IHWJW出 H 馳軍。t兇政坦ffiar火火火火火一與富占典熱M四焙

6、右竣髀度梟軍 上辛思出晶也 T兇畛坦ffiBTl麗gj觀驅 最很:u.劇Z兇畛空肉HTZSim火史植煨旅2兇V羅乩的囊州 密躇曲斜普火躥5 娜克出艱田了內噓出 EZfTTTX/COCOUZSM匝z很兇z很兇艷 煨 旅 兇翌瞄弗盡史耳悲耳史 圈*混籍備好月好 度底蛤煽烈藏烈 雁田了艄出噂出蜉出T Z Z X/心 Z z4tHT4zM觀觀就腳觀烈W拒觀觀映觀映V ltlbl-h-tl T itliblibl v Wtlbl-h-t tl-h-tlsix!S3 MC:vc6.0+4-Debugxinde.exe2 為 數 次1時進行S2執請在-呈窄頂申正 正布nTI 2 2 1 2 12 2 22l

7、l.llt./l 2 1 1 t./ 2 2 t./ 1 1 2 1 2 t./ 1 1 t./ 1 =5.程程程2程程程程=5.程程程程進程程 1=6.程程程w=6程程=7程程一程 2莊片一 進81進進進進S1進進進進V進進時進Is2進進進時進進時進Is 1進K進Is2進進時進進時進f醒sl執 喚請在哄A在普正蕾正一醒s.、Ts:-_&: : 普在請是到拙在 循申正申史正得耕正 2 2 1 1 :I次蕾O 算時進行時進次行用,行 才J2Y : 數進次該1S E的, 斷次態緒1就S2區入到在M在M 得正遇亍正進亍 , ,$5r- ?!斷印-一贏 鬻中窘中洗2=1Q陟蚩1蕾喝醒.賽到資尊點 匱程

8、a得至!崩-正在臨果區1 帖蔑補進程2薛浪就緒態 睡唇得到邑正在臨界區a 阿間丘g哺,一進程逾么就緒態 樁程1止在孑丸行 m2 =11 倒虛2正在執行 1=10 聞釋2循環計慕次數=5 圈程2己經完所 履岳正在執行 s2=12 |g3g計算次數壬s2=13 gg3g計算次數岌 -何片.樁程3止在執行;12=14 |g3g計算次數=至;i2=lb M尊3循環計募次數=S 唇性己經完成 最后結果:sl=10,s2=15Press any key to cont in Lie零2-正在臨界區2 折,進程誠汰就緒態零2-正在臨界區2 折,進程誠汰就緒態零2-正在臨界區2 折,進程誠汰就緒態總結及進一步改善建議:該實驗綜合用了進程調度,進程控制,進程同步,進程調度算法等相應知識。進程調度程序 負責為各個進程分配處理機;時間片中斷處理程序模擬

溫馨提示

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

評論

0/150

提交評論