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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

高响应比优先调度算法和短作业优先调度算法

發布時間:2023/12/10 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 高响应比优先调度算法和短作业优先调度算法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

動態優先權是指在創建進程時所賦予的優先權,是可以隨進程的推進或隨其等待時間的增加而改變的,以便獲得更好的調度性能。引入動態優先權,并使作業的優先權隨其等待時間的增長,其優先權以速率a提高。優先權的變化規律可描述為:

優先權=(等待時間+要求服務時間)/要求服務時間

本實驗模擬了高響應比優先調度算法。
假如系統中現有3個作業,分別為A、B、C,它們的作業大小、需要磁帶機數、需要打印機數,在外存上等待的時間以及估計需要執行時間分別是:
A 5 2 1 3 10
B 3 3 2 4 6
C 7 1 2 2 14
按高響應比優先算法,假如要選一個作業,你認為選擇哪個作業進行調度? B

1.打開“Microsoft Visual C++ 6.0”,輸入相關代碼后,對程序行進編譯運行后,將前述的三個作業A、B、C的相關數據依次輸入,得到運行結果:

2.將程序改為短作業優先算法,給出程序修改位置以及所改代碼:
修改位置

if(jobtable[p].length<=memory&&jobtable[p].tape<=tape&&jobtable[p].printer<=printer){xk=(float)(jobtable[p].waittime+jobtable[p].runtime)/jobtable[p].runtime;if(q==0||xk>k) { k=xk;q=p;t=s;}}

所改代碼

if(jobtable[p].length<=memory&&jobtable[p].tape<=tape&&jobtable[p].printer<=printer){xk=(float)(jobtable[p].runtime);if(q==0||xk<jobtable[p+1].runtime) { k=xk;q=p;t=s;}}

3.短作業優先算法中輸入相同的三個作業A、B、C的相關數據,得到運行結果:

——————————————————————————————————————————————————————————————————————————————————————
附上高響應比優先調度算法:

#include"string.h" #define n 10 typedef struct jcb {char name[4]; int length; int printer; int tape; int runtime; int waittime; int next; }JCB; int head; int tape,printer; long memory; JCB jobtable[n]; int jobcount=0; shedule(){float xk,k;int p,q,s,t;do{p=head;q=s=-1;k=0;while(p!=-1){if(jobtable[p].length<=memory&&jobtable[p].tape<=tape&&jobtable[p].printer<=printer){xk=(float)(jobtable[p].waittime+jobtable[p].runtime)/jobtable[p].runtime;if(q==0||xk>k) { k=xk;q=p;t=s;}}s=p;p=jobtable[p].next; } if(q!=-1){if(t==-1) head=jobtable[head].next;elsejobtable[t].next=jobtable[q].next; memory=memory-jobtable[q].length;tape=tape-jobtable[q].tape; printer=printer-jobtable[q].printer; printf("選中的作業的作業名: %s\n",jobtable[q].name);}} while(q!=-1); } void main(){char name[4];int size,tcount,pcount,wtime,rtime; int p;memory=65536; tape=4;printer=2;head=-1;printf("請輸入作業相關數據(以作業大小為負數停止輸入):\n");printf("輸入作業名 作業大小 磁帶機數 打印機數 等待時間 估計運行時間\n");scanf("%s %d %d %d %d %d",name,&size,&tcount,&pcount,&wtime,&rtime);while(size!=-1){if(jobcount<n)p=jobcount;else{printf("無法在創建作業\n");break;}jobcount++;strcpy(jobtable[p].name,name);jobtable[p].length=size;jobtable[p].printer=pcount;jobtable[p].tape=tcount;jobtable[p].runtime=rtime;jobtable[p].waittime=wtime;jobtable[p].next=head; head=p; printf("輸入作業名 作業大小 磁帶機數 打印機數 等待時間 估計運行時間\n");scanf("%s %d %d %d %d %d",name,&size,&tcount,&pcount,&wtime,&rtime);}shedule(); return; }

附上短作業優先調度算法:

#include"string.h" #define n 10 typedef struct jcb {char name[4]; int length; int printer; int tape; int runtime; int waittime; int next; }JCB; int head; int tape,printer; long memory; JCB jobtable[n]; int jobcount=0; shedule(){float xk,k;int p,q,s,t;do{p=head;q=s=-1;k=0;while(p!=-1){if(jobtable[p].length<=memory&&jobtable[p].tape<=tape&&jobtable[p].printer<=printer){xk=(float)(jobtable[p].runtime);if(q==0||xk<jobtable[p+1].runtime) { k=xk;q=p;t=s;}}s=p;p=jobtable[p].next; } if(q!=-1){if(t==-1) head=jobtable[head].next;elsejobtable[t].next=jobtable[q].next; memory=memory-jobtable[q].length;tape=tape-jobtable[q].tape; printer=printer-jobtable[q].printer; printf("選中的作業的作業名: %s\n",jobtable[q].name);}} while(q!=-1); } void main(){char name[4];int size,tcount,pcount,wtime,rtime; int p;memory=65536; tape=4;printer=2;head=-1;printf("請輸入作業相關數據(以作業大小為負數停止輸入):\n");printf("輸入作業名 作業大小 磁帶機數 打印機數 等待時間 估計運行時間\n");scanf("%s %d %d %d %d %d",name,&size,&tcount,&pcount,&wtime,&rtime);while(size!=-1){if(jobcount<n)p=jobcount;else{printf("無法在創建作業\n");break;}jobcount++;strcpy(jobtable[p].name,name);jobtable[p].length=size;jobtable[p].printer=pcount;jobtable[p].tape=tcount;jobtable[p].runtime=rtime;jobtable[p].waittime=wtime;jobtable[p].next=head; head=p; printf("輸入作業名 作業大小 磁帶機數 打印機數 等待時間 估計運行時間\n");scanf("%s %d %d %d %d %d",name,&size,&tcount,&pcount,&wtime,&rtime);}shedule(); return; }

生活從來都不容易啊,當你覺得挺容易的時候,一定是有人在替你承擔屬于你的那份不容易 。-- 致父母 ????

總結

以上是生活随笔為你收集整理的高响应比优先调度算法和短作业优先调度算法的全部內容,希望文章能夠幫你解決所遇到的問題。

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