優先順序排程演算法

2021-07-09 04:19:17 字數 1231 閱讀 2796

#include#include#includetypedef struct node pcb;

pcb*ready=null,*run=null,*finish=null;/*定義三個佇列,就緒佇列,執行佇列和完成佇列*/

int num;

void getfirst(); /*從就緒佇列取得第乙個節點*/

void output(); /*輸出佇列資訊*/

void insertprio(pcb*in);/*建立優先順序佇列,規定優先數越小,優先順序越高*/

void inserttime(pcb*in);/*時間片佇列*/

void insertfinish(pcb*in);/*時間片佇列*/

void priocreate(); /*優先順序輸入函式*/

//void timecreate(); /*時間片輸入函式*/

void priority(); /*按照優先順序排程*/

//void roundrun(); /*時間片輪轉排程*/

void main()

/*取得第乙個就緒佇列節點*/

void getfirst()

}void output()/*輸出佇列資訊*/

p=finish;

while(p!=null)

p=run;

while(p!=null)

}/*建立優先順序佇列,規定優先數越小,優先順序越低*/

void insertprio(pcb*in)

/*查到合適的位置進行插入*/

else

else

if(fst->next==null)/*已經搜尋到隊尾,則其優先級數最小,將其插入到隊尾即可*/

else/*插入到佇列中*/

} }}

void insertfinish(pcb*in)/*將程序插入到完成佇列尾部*/

else

in->next=fst->next;

fst->next=in; }}

void priocreate()/*優先順序排程輸入函式*/

}void priority()/*按照優先順序排程,每次執行乙個時間片*/

else/*將程序狀態置為w,入就緒佇列*/

}flag=1;

getfirst();/*繼續取就緒佇列隊頭程序進入執行佇列*/

}}

十五 優先順序排程演算法

演算法 將處理機分配給就緒佇列中優先順序最高的程序 優先順序 靜態優先順序 在程序建立時確立,確定後執行期間保持不變。確立依據有 程序的型別 程序對資源的需求 使用者申請的優先順序 優點 簡單 缺點 不能動態反映程序特點,系統排程效能差 動態優先順序 程序在開始建立時,根據某種原則確定乙個優先順序後...

Hadoop Mapreduce優先順序排程

作業提交到的佇列 mapreduce.job.queuename 作業優先順序 mapreduce.job.priority pig版本 set mapreduce.job.queuename root.etl.distcp set mapreduce.job.priority high hive版...

優先順序排程演算法和高響應比優先排程演算法

優先順序排程演算法是基於作業的緊迫程度,由外部賦予作業相應的優先順序,排程演算法是根據該優先順序進行排程的。這樣就可以保證緊迫性作業優先執行。高響應比優先排程演算法則是既考慮了作業等待的時間,又考慮了作業執行時間的排程演算法,因此既照顧了短作業,又不致使長作業的等待時間過長,從而改善了處理機的排程能...