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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

高响应比优先调度算法的模拟(非抢占式C++)

發布時間:2023/12/10 c/c++ 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 高响应比优先调度算法的模拟(非抢占式C++) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

設置參數

設置了四個作業進行實驗,可以在init()函數中動態修改

根據計算,根據高響應比優先調度算法,得出作業的調度流程圖

運行程序,得出程序運行結果

通過對比可以發現,程序運行正確,并且程序還可以輸出,每一秒運行的狀態,參數包括正在運行的進程名,開始運行時間,及當前就緒隊列中的進程名以及它的響應時間

流程圖

?源程序

#include<iostream>using namespace std;const int N = 20; int h[N], hh, tt = -1;//用數組模擬隊列,就緒隊列, 存放的是進程的下標 struct Process {string name;//作業名int arriveTime;//到達時間int runTime;//運行時間bool st = false;//是否已經運行完畢, false為沒運行完int startTime = 0x3f3f3f3f;//開始運行時間int endTime = 0x3f3f3f3f;//結束運行時間 double rP = 1;//響應比 }process[N];//N個作業 void init() {//初始化四個作業 process[1].arriveTime = 0, process[1].runTime = 4, process[1].name = "process 1";process[2].arriveTime = 2, process[2].runTime = 2, process[2].name = "process 2";process[3].arriveTime = 1, process[3].runTime = 3, process[3].name = "process 3";process[4].arriveTime = 4, process[4].runTime = 1, process[4].name = "process 4"; }void arriveCheck(int syTime)//每秒鐘都check一下有沒有新進程來 {for(int i = 1; i <= 4; i ++)if(!process[i].st && process[i].arriveTime <= syTime)//當作業到達,進入就緒隊列{h[++ tt] = i; process[i].st = true;//標記已經到達 } }void print(int i, int t)//打印每秒的輸出 {cout << "當前時間是 " << i << " 正在運行的進程是 " << process[t].name << " 開始運行時間為 " << process[t].startTime << endl;if(tt >= hh){cout << "當前就緒隊列中的進程為 ";for(int j = hh; j <= tt; j ++)cout << process[h[j]].name << " " << "它的響應比為" << process[h[j]].rP << " ";cout << endl << endl;}else cout << "當前就緒隊列為空" << endl << endl; } void printResult()//打印最終結果 {cout << "高響應比優先調度算法已經全部運行完畢" << endl;cout << "作業名 " << "到達時間 " << "開始運行時間 " << "結束運行時間 " << "周轉時間 " << endl;double sum = 0;//計算平均周轉時間 for(int i = 1; i <= 4; i ++){int t = process[i].endTime - process[i].arriveTime;//周轉時間sum += t; cout << process[i].name << " " << process[i].arriveTime << " " << process[i].startTime << " " << process[i].endTime << " " << t << endl;}cout << "平均周轉時間為 " << sum / 4 << endl; }void update_Rp(int syTime)//每秒鐘都更新一次響應比Rp {for(int j = hh; j <= tt; j ++) {double Rj = 1 + (syTime - process[h[j]].arriveTime) / (double)process[h[j]].runTime;process[h[j]].rP = Rj; } }int main() {init();int syTime = 0;//系統時間 int t = 0;//當前正在運行的進程int n = 4;//總作業數 while(n){arriveCheck(syTime);if(!t)//初始化,第一個進入的作業 {t = h[hh ++];process[t].startTime = syTime;//開始運行時間 process[t].st = true;} update_Rp(syTime);print(syTime, t);//顯示信息 if(process[t].runTime <= 0)//當前進程做完,調入就緒序列的下一個{process[t].endTime = syTime;//上個作業結束運行時間if(tt > hh)//就緒隊列中有兩個以上的作業,排序后,調用高響應比的那個 {int i = hh;//響應比最高的作業的下標for(int j = hh + 1; j <= tt; j ++)//找到響應比最高的作業的下標 響應比計算公式 = 1 + 等待時間/運行時間 {double Ri = 1 + (syTime - process[h[i]].arriveTime) / (double)process[h[i]].runTime;//當前作業的響應比 = 1 + 等待時間/運行時間 double Rj = 1 + (syTime - process[h[j]].arriveTime) / (double)process[h[j]].runTime;//當前作業的響應比 = 1 + 等待時間/運行時間 process[h[i]].rP = Ri;process[h[j]].rP = Rj;if(Ri < Rj) i = j;}t = h[i];//當前作業在process中的下標 if(i == tt) tt --;//利用覆蓋法,把該作業從就緒隊列中刪除,因為它已經在做了 else{for(int j = i + 1; j <= tt; j ++) h[j - 1] = h[j];tt --;}}else t = h[hh ++];//后備隊列中只有一個作業時直接調度 process[t].startTime = syTime;//該作業開始運行時間 n --; }syTime ++;process[t].runTime --;}printResult();return 0; }

總結

以上是生活随笔為你收集整理的高响应比优先调度算法的模拟(非抢占式C++)的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 好吊日在线| 亚洲自拍激情 | 国产黄a三级三级看三级 | 久久久www免费人成人片 | 欧美成人午夜 | 无毛av| 色女人影院| 天天综合欧美 | av网址网站 | 久久精品欧美 | 久热这里只有精品在线 | 亚洲爆乳无码精品aaa片蜜桃 | 精品久久久蜜桃 | 怡红院久久 | sese视频在线观看 | 日本在线一区二区三区 | 国产经典久久 | 国产精品国产精品国产 | 久久久无码人妻精品无码 | 久久激情av | 日本午夜一级 | 中国女人一级片 | 竹菊影视一区二区三区 | 深爱婷婷网| 国产成人精品无码免费看在线 | 欧美少妇喷水 | 2019国产在线| 色秀av| 一级黄大片 | 国产成人免费观看 | 成人性做爰aaa片免费看不忠 | 国产黄色小说 | 亚洲天堂av一区二区三区 | 最近中文字幕在线mv视频在线 | 亚洲不卡一区二区三区 | 精品人妻一区二区三区四区久久 | 亚洲永久精品一区 | 中文字幕一区二区三区人妻四季 | 国内自拍偷拍视频 | 午夜激情在线观看视频 | 亚洲成人基地 | 欧美日韩精品一区 | 最新av网址在线观看 | 亚洲欧洲精品成人久久奇米网 | 波多野结衣一区二区三区在线 | 伊人久久大香线蕉综合网站 | 黄色一级免费视频 | av在线毛片 | 500福利视频导航 | 亚洲天堂久久 | 动漫av网站免费观看 | 丁香六月色婷婷 | 五月天一区二区三区 | 三叶草欧洲码在线 | 黄色成年人 | 国产偷v国产偷v亚洲高清 | 亚洲国产一区在线观看 | 爱爱免费网址 | 少妇婷婷 | 亚洲经典在线 | 看污片网站 | 91av在线视频播放 | 素人一区| 亚洲涩情 | 精品国产污污免费网站入口 | 成年免费视频黄网站在线观看 | 欧美熟妇另类久久久久久多毛 | 日韩亚洲在线观看 | 欧美第一网站 | 免费av不卡 | 成人黄色片网站 | 九色.com| 亚洲精品无人区 | 日韩视频在线免费 | 久久久久久久一区二区 | 美女网站免费观看视频 | 999在线视频 | 精品在线免费播放 | 密臀av| 91免费小视频 | 成人午夜视频网站 | 狠狠的日| 一级片免费观看视频 | 黄色aa网站| 极品少妇一区二区 | 日本高清视频一区 | 亚洲第一大网站 | 91色国产| 精品一区二区三区免费毛片爱 | 奇米影视亚洲 | 乱色熟女综合一区二区三区 | 自拍偷拍999 | 欧美专区一区 | 久久中文字幕无码 | 波多野结衣视频在线 | 欧美老熟妇乱xxxxx | 九一在线视频 | 精品日韩av | 国产精品国产三级国产专播品爱网 |