




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、實驗一、進度調動實驗報告匯總實驗一、進度調動實驗報告匯總17/17實驗一、進度調動實驗報告匯總廣東技術師范學院實驗報告學院:計算機科學學專業:計算機科學與班級:成績:院技術(師范)姓名:學號:組別:組員:實驗地點:實驗日期:指導教師署名:預習狀況操作狀況考勤狀況數據辦理狀況實驗名稱:實驗一、進度調動實驗一、實驗目的用高級語言編寫和調試一個進度調動程序,以加深對進度的見解及進度調動算法的理解二、實驗種類綜合性實驗。綜合高級語言編程、進度調動模型、進度調動算法及數據構造等多方面的知識三、實驗內容和步驟1編寫并調試一個模擬的進度調動程序,采納“最高優先數優先”調動算法對五個進度進行調動?!白罡邇炏葦?/p>
2、優先”調動算法的基本思想是把CPU分派給就緒行列中優先數最高的進度。靜態優先數是在創立進度時確立的,并在整個進度運轉時期不再改變。動向優先數是指進度的優先數在創立進度時可以給定一個初始值,而且可以按必然原則改正優先數。比方:在進度獲取一次CPU后就將其優先數減少1?;蛟S,進度等候的時間超出某一時限時增添其優先數的值,等等該題依據老師給的代碼用VisualC+運轉,結果以及分析以下:結果分析:依據上述輸入的三個進度的信息可以獲取:優先級最高的是進度最初調動進度cc的狀態為運轉態,需要履行的時間為10目前就緒行列狀態為:進度cc先級比較高,處于就緒行列前面,而進度bb先級是三者中最低的,因此處于就
3、緒行列的最后。而此時這兩個進度的狀態都為就緒態。結果分析:當進度cc了一個時間片今后而它已占用CPU時間已達到所需要的運轉時間,則將它的優先級減1今后,再將三個進度按優先級的大小擺列,從中選擇優先級大的進度進入運轉狀態,則該次進入運轉態的是進度aa依據這類方式向來運轉下去:直到:結果分析:當進度bb的CPU占用時間等于它需要的履行時間時,進度bb度完成。則這時進度調動中還有兩個進度:進度aa進度cc結果分析:當調動進度中只剩下進度aa程cc這時依據進度優先級的大小,進度入運轉態。當進度aa調動時,進度調動程序中直剩下進度cc這時進度cc進入運轉態,而目前就緒行列將為空。直到:結果分析:當進度i
4、的CPU占用時間等于所需要的履行時間時,進度cc調動完成,則這時進度調動中已經沒有需要調動的進度了,則整個進度調動完成。2、編寫并調試一個模擬的進度調動程序,采納“輪轉法”調動算法對五個進度進行調動。輪轉法可以是簡單輪轉法、可變時間片輪轉法,或多行列輪轉法。簡單輪轉法的基本思想是:全部就緒進度按FCFS排成一個行列,老是把辦理機分配給隊首的進度,各進度占用CPU的時間片同樣。假如運轉進度用完它的時間片后還為完成,就把它送回到就緒行列的尾端,把辦理機從頭分派給隊首的進度。直至全部的進程運轉完成。將老師給的源程序改正成簡單的時間片輪轉法流程圖以下:開始初始化PCB,輸入進度信息各進度按FCFS原則
5、排隊等候調動全部行列都為空就緒行列首進度投入運轉時間片到,運轉進度已占用CPU時間+1運轉進度已占用CPU時間已達到所需的運轉時間插入新的進度把運轉進度插入到下一個行列的隊尾時間片輪轉法#include#include#include#definegetpch(type)(type*)malloc(sizeof(type)#defineNULL0#defineTIME2/時間片長度/進度完成,撤消該進度typedefstructpcb/進度管理塊charname10;/進度名字charstate;/進度狀態intqueue;/進度所在的行列intntime;/進度需要運轉的時間intrtime
6、;/進度已經運轉的時間intetime;/進度在本行列可運轉的時間片structpcb*link;PCB;PCB*ready=NULL,*pinsert=NULL,*pfend=NULL,*p=NULL;/*就緒隊列,進度插入地點的變量*/intgeti()/使用戶僅能輸入整數charch;inti=0;fflush(stdin);ch=getchar();while(ch=n)printf(tf輸入不可以為空.請從頭輸入n);fflush(stdin);ch=getchar();while(ch!=n)if(ch9|chlink|(ps-link-queue-ps-queue)1)pinse
7、rt=ps;elsewhile(ps-link&ps-link-queue!=(pfend-queue+2)ps=ps-link;pinsert=ps;voidinsert()/插入進度if(!ready)ready=p;pfend=p;pinsert=p;elseif(ready-queue=1)/第一行列存在p-link=pfend-link;pfend-link=p;pfend=p;findpos();Elsep-link=ready;ready=p;findpos();voidinput()/*成立進度控制塊函數*/inti,num;printf(n請輸入進度的個數:);num=get
8、i();for(i=0;iname);printf(n輸入進度運轉時間:);p-ntime=geti();printf(n);p-rtime=0;p-state=w;p-queue=1;p-etime=TIME;p-link=NULL;insert();/*調用insert函數*/voiddisp(PCB*pr)/*成立進度現實函數,用于顯示目行進度*/printf(nnametstatetqueuetntimetrtimet在行列可逗留時間tn);printf(|%st,pr-name);printf(|%ct,pr-state);printf(|%dt,pr-queue);printf(|
9、%dt,pr-ntime);printf(|%dt,pr-rtime);printf(|%dt,pr-etime);printf(n);voidcheck()/*成立進度查察函數*/PCB*pr;printf(n*目前正在運轉的進度是:%s,ready-name);/*顯示目前運轉的進程*/disp(ready);pr=ready-link;printf(n*目前就緒行列狀態為:n);/*顯示就緒行列狀態*/while(pr!=NULL)disp(pr);pr=pr-link;voidsort()/調整進度行列if(!ready-link|ready-queuelink-queue)retur
10、n;p=ready-link;ready-link=pinsert-link;pinsert-link=ready;pinsert=ready;ready=p;if(ready&ready-queue=pinsert-queue)findpos();voidaddnew()/增添新的進度if(ready-queue!=1)(ready-queue)+;ready-etime*=2;ready-state=w;sort();/*調用sort函數*/input();elseinput();voiddestroy()/*成立進度撤掉函數(進度運轉結束,撤掉進度)*/printf(n進度%s已完成.n
11、,ready-name);p=ready;ready=ready-link;free(p);if(ready&ready-queue=pinsert-queue)findpos();voidrunning()/*成立進度就緒函數(進度運轉時間到,置就緒狀態)*/(ready-rtime)+;ready-etime-;if(ready-rtime=ready-ntime)destroy();return;elseif(ready-etime=0)inttime=2;(ready-queue)+;for(inti=2;i!=ready-queue;+i)time*=2;ready-etime=ti
12、me;ready-state=w;sort();/*調用sort函數*/voidmain()charch;input();while(ready!=NULL)printf(nTheexecutename:%sn,ready-name);ready-state=R;check();running();printf(n按i鍵增添新進度按其余隨意鍵連續運轉.);fflush(stdin);ch=getchar();if(ch=i|ch=I)addnew();printf(nn進度已經完成n);getchar();運轉結果以下:依據題意輸入五個進度按隨意鍵連續四、實驗問題及原由(1)本次試驗,思路設計不難在這個多級反應的實驗中,我采納了用一條實質上的鏈表行列來模擬多個邏輯上的行列,經過保護幾個鏈表的狀態信息來找到每個進度運轉完后應當插入的地方,還有一個標記位Fend用來表示新插入的行列的地點。(2)在成立優先數就緒行列時主要運用,鏈表插入模型??墒且驗榇祟}是從成立、到完成一個就緒對列,因此必然分多種狀況討論。五、實
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 設施設備維護管理制度
- 設計食堂進出管理制度
- 診所人員培訓管理制度
- 診所熬藥日常管理制度
- 試劑耗材節約管理制度
- 財務資金規范管理制度
- 財富管理平臺管理制度
- 貨物搬運裝卸管理制度
- 貨物配送薪酬管理制度
- 貨車安全培訓管理制度
- 學校傳染病防控培養課件
- 深圳市光明區智慧城市專項規劃
- GB/T 19598-2025地理標志產品質量要求安溪鐵觀音
- 施工現場安全防護標準化圖集
- 城區建筑垃圾處理資源再利用設備采購 投標方案(技術方案)
- 國家教育考試保密安全培訓
- 《國際商事調解》課件
- T-ZJICA 1101-2024 算力中心智慧物業服務規范
- 罐車卸車安全操作規程
- DG-TG08-12-2024 普通中小學建設標準
- 招牌字施工合同
評論
0/150
提交評論