日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

计算机操作系统---高响应比调度算法,操作系统最高响应比优先调度算法实验报告...

發布時間:2023/12/10 windows 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 计算机操作系统---高响应比调度算法,操作系统最高响应比优先调度算法实验报告... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

《操作系統最高響應比優先調度算法實驗報告》由會員分享,可在線閱讀,更多相關《操作系統最高響應比優先調度算法實驗報告(10頁珍藏版)》請在人人文庫網上搜索。

1、進程調度模擬設計最高響應比優先調度算法實驗報告一、實驗題目與要求1、實驗題目:加深對作業概念的理解。深入了解批處理系統如何組織作業、管理作業和調度作業。2、實驗要求:編寫程序完成批處理系統中的作業調度,要求采用響應比高者優先的作業調度算法。實現具體包括:首先確定作業控制塊的內容和組成方式;然后完成作業調度;最后編寫主函數,對所做工作進行測試。二、總的設計思想及語言環境、工具1、總的設計思想:最高響應比優先法(HRRN)是對FCFS方式和SJF 方式的一種綜合平衡。HRRN調度策略同時考慮每個作業的等待時間長短和估計需要的執行時間長短,從中選出響應比最高的作業投入執行。 響應比R定義如下: R=。

2、(W+T)/T=1+W/T 其中T為該作業估計需要的執行時間,W為作業在后備狀態隊列中的等待時間。 每當要進行作業調度時,系統計算每個作業的響應比,選擇其中R最大者投入執行。這樣,即使是長作業,隨著它等待時間的增加,W/T也就隨著增加,也就有機會獲得調度執行。這種算法是介于FCFS和SJF 之間的一種折中算法。由于長作業也有機會投入運行,在同一時間內處理的作業數顯然要少于SJF 法,從而采用HRRN 方式時其吞吐量將小于采用SJF 法時的吞吐量。另外,由于每次調度前要計算響應比,系統開銷也要相應增加。2、語言環境:計算機基本配置要求:操作系統:WIN 98/2000/XP/2003 等Wind。

3、ows平臺內存:256MB及以上主存64KB(Memory)(以KB為單位分配)開發語言:Visual C+ 6.03、工具:Windows平臺Visual C+ 6.0 三、數據結構與模塊說明(功能與框圖)作業調度的實現主要有兩個問題:一個是如何將系統中的作業組織起來;另一個是如何進行作業調度。為了將系統中的作業組織起來,需要為每個進入系統的作業建立檔案以記錄和作業相關的信息,例如,作業名、作業所需資源、作業執行時間、作業進入系統的時間、作業信息在存儲器中的位置、指向下一個作業控制塊的指針等信息。這個記錄作業相關信息的數據塊稱為作業控制塊(JCB ),并將系統中等待作業調度的作業控制塊組織成。

4、一個隊列,這個隊列稱為后備隊列。當進行作業調度時,從后備隊列中查找選擇作業。由于實驗中沒有實際作業,作業控制塊中的信息內容只使用了實驗中需要的數據。作業控制塊中首先應該包括作業名;其次是作業所需資源(內存大小、打印機的數量和磁帶機的數量);采用響應比高者優先作業調度算法,為了計算響應比,還需要有作業的估計執行時間、作業在系統中的等待時間;另外,指向下一個作業控制塊的指針必不可少。實驗中,作業控制塊及隊列的數據結構定義如下:struct task string name; /*作業號*/int arrTime; /* 作業到達時間*/int serTime; /*作業要求服務時間*/int wa。

5、iTime; /*等待時間*/int begTime; /*開始運行時間*/int finTime; /*結束運行時間*/int turTime; /*周轉時間*/int wTuTime; /*帶權周轉時間*/int priority;/*優先權*/int finish;/*是否已經完成*/JCB10;存放作業控制塊的區域:#define n 10JCB jobtable10;int jobcount;將作業控制塊組織成一個隊列,實驗中采用靜態鏈表的方式模擬作業的后備隊列,作業隊列頭指針定義為:int *head;實驗中,內存采用可移動的動態分區管理方法,即只要內存空閑區總和比作業大就可以滿足。

6、作業對內存的需求;對打印機和磁帶機這兩種獨占設備采用靜態分配法,即作業執行前必須獲得所需資源,并且執行完才歸還。采用響應比高者優先調度算法進行調度時,必須計算出系統中所有滿足必要條件作業的響應比,從中選擇響應比最高的一個作業裝入主存儲器分配資源。由于是實驗,所以就將作業控制塊出隊,并輸出作業名代替裝入處存儲器,同時修改系統的資源數量。最高響應比優先調度算法的作業調度程序流程圖(如下)四、參考源程序:#include#include#include#include#include#includetypedef char string10; /* /定義string為含有10個字符元素的字符數組類。

7、型*/struct task string name; /*作業號*/int arrTime; /* 作業到達時間*/int serTime; /*作業要求服務時間*/int waiTime; /*等待時間*/int begTime; /*開始運行時間*/int finTime; /*結束運行時間*/int turTime; /*周轉時間*/int wTuTime; /*帶權周轉時間*/int priority;/*優先權*/int finish;/*是否已經完成*/JCB10;int num; void input()int i;system(cls);printf(n請輸入作業數量: );。

8、scanf(%d, &num);for(i=0;iJCBcurrent.priority )current=j;/* 找出到達時間在上一個作業完成之前,優先權高的作業*/else /* 如果作業是在上一個作業完成之后到達*/if(JCBj.arrTimeJCBcurrent.priority)current=j; /*找出服務時間比較短的一個*/return current;/*返回當前作業*/void runing(int i, int times, int pre, int staTime, int endTime)if(times=0)JCBi.begTime=JCBi.arrTime;。

9、JCBi.finTime=JCBi.begTime+JCBi.serTime; JCBi.turTime=JCBi.serTime;JCBi.wTuTime=1.0;staTime=JCBi.begTime;elseif(JCBi.arrTimeJCBpre.finTime) JCBi.begTime=JCBi.arrTime; elseJCBi.begTime=JCBpre.finTime; JCBi.finTime=JCBi.begTime+JCBi.serTime;JCBi.turTime=JCBi.finTime-JCBi.arrTime; JCBi.wTuTime=JCBi.turT。

10、ime/JCBi.serTime;if(times=num-1)endTime=JCBi.finTime;JCBi.finish=1;void print(int i,int times)if(times=0)printf( 名稱 到達時間 服務時間 開始時間 完成時間 周轉時間 帶權周轉時間n);printf(%9s%9d%9d%9d%9d%9d%9dn,JCBi.name,JCBi.arrTime,JCBi.serTime,JCBi.begTime,JCBi.finTime,JCBi.turTime,JCBi.wTuTime);void check( )int i;int staTime,。

11、 endTime, sumTurTime=0.0, sumWTuTime=0.0, aveTurTime, aveWTuTime;int current=0, times=0, pre=0; JCBpre.finTime=0; for(i=0; inum; i+)JCBi.finish=0;staTime, endTime,sumTurTime=0.0, sumWTuTime=0.0, aveTurTime, aveWTuTime;current=0; times=0; pre=0;JCBpre.finTime=0; printf(-n);for(i=0; inum; i+)JCBi.fini。

12、sh=0; staTime, endTime,sumTurTime=0.0, sumWTuTime=0.0, aveTurTime, aveWTuTime;current=0; times=0; pre=0;JCBpre.finTime=0; printf(n- HRRN -n);for(times=0; timesnum; times+)current=HRN(pre);runing(current, times, pre, staTime, endTime);print(current, times);pre=current;for(i=0; inum; i+) sumTurTime+=J。

13、CBi.turTime;sumWTuTime+=JCBi.wTuTime;aveTurTime=sumTurTime/num;aveWTuTime=sumWTuTime/num;printf(計與平均值) %9d%9d%9d%9dn,NULL,sumTurTime,aveTurTime,aveWTuTime);printf(-n);void main()char again;do system(cls); /*清屏*/ printf(please input 4 groups of datas:n);input();check();printf(Continue.(Y/N): );doagai。

14、n = getch();while(again!=Y & again!=y & again!=N & again!=n);while(again=Y | again=y);五、 運行結果與運行情況六、運行結果分析:從運行結果得到調度序列結果為:X1X2X3X1到達時間最早,服務時間也最短,其響應比最高;X2到達時間為22,但因X1早到達,所以開始時間為22,其服務時間為12,所以響應比X1小;X3到達時間最遲,其響應比最小,所以在最后。七、自我評價與總結:本次課程設計題目較為簡單,主要是對優先級和最高響應比這兩個算法的理解和對進程調度的功能以及進程調度算法有深入的理解。在這次的課程設計中,讓我感覺較為不滿意的地方是,在課程設計開始之前我對于最高響應比優先法理解不熟悉,導致了響應比的計算錯誤,從而加大了完成代碼的時間量。對于這次出現的這個問題,使我有了對程序設計的嚴謹性,課本基礎知識的理解程度上有了更深刻的認識,也讓我明白到了基礎知識的重要性。完成此次課程實際之后,我對進程調度模擬設計的各種算法有了更進一步的理解,也加深了我對于C+面向對象方面的掌握,在編寫程序中所遇到的問題讓我有了對操作系統有了迫切要更深層次的掌握,并操作系統這門課程實在是很重要的一門課程。

總結

以上是生活随笔為你收集整理的计算机操作系统---高响应比调度算法,操作系统最高响应比优先调度算法实验报告...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。