cpu優先順序排程演算法和時間片演算法模擬程式

2021-04-08 19:08:39 字數 1983 閱讀 1804

//system shedule algorithm

//include the priority first algorithm and the time slice algorithm

//version 2.0

//author:chillycreator

#include

#include

#include

using namespace std;

class process

//gettors and settors

string getname()

int getpri()

int getneedtime()

int getcputime()

int getstate()

process* getnext()

void setstate(int state)

void setcputime(int time)

void setneedtime(int time)

void setpri(int pri)

void setnextprocess(process* next)

void print()

tail = temp; }

//user test

void test2(int n)

tail = temp; }

public:

//testn is for the various of tests. 1 is using the default test. 2 is using the user test.

system(int testn,int num)

//delete a process

void deleteprocess(process* a)

void toqueueend(process* a)

//put the process to the end of the queue

void toqueuehead(process* a)

//find parent

process* findp(process* a)

//when the process is sheduled into the cpu

void use(process* pro,int runtime,int depriority)

else

}

//find the highest priority

process* findhighest()

}

return first; }

// the priority first algorithm

void fp()

} }

//the time slice algorithm

void ts(int runtime)

} };

//test

int main()

time++;

cout <而void ft()演算法中這樣呼叫:

// the priority first algorithm

void fp()

if(fir != null)

oldtimer++;

}

}

這樣改動後就可以讓程序隨時間的增加而優先順序提高。當乙個程序在佇列中很長一段時間後,程序就會出現老化情況。為了防止老化(就是很難再得到利用)的發生,過一段時間後就會檢測程序。當發現長時間沒有用到的程序時,優先順序會公升高。

不過void findold(int runt)

並不嚴謹。可能會出現所以程序都提高優先順序的情況。所以還要進行優化。

另外在上一次的**中有可能會出現程序優先順序為負數的情況。可以這樣修改類process

void setpri(int pri)

Linux優先順序時間片排程

程序的優先順序有2種度量方法,一種是nice值,一種是實時優先順序 rtprio nice值的範圍是 20 19,值越大優先順序越低,也就是說nice值為 20的程序優先順序最大。實時優先順序 rtprio 的範圍是0 99,與nice值的定義相反,實時優先順序是值越大優先順序越高。實時程序都是一些...

排程演算法(時間片輪轉 優先順序排程 多級反饋佇列)

排程演算法 1 時間片輪轉排程演算法 rr 2 優先順序排程演算法 3 多級反饋佇列排程演算法 tips 各種排程演算法的學習思路 1.演算法思想 2.演算法規則 3.這種排程演算法是用於作業排程還是程序排程?4.搶占式?非搶占式?5.優點和缺點 6.是否會導致飢餓 1 演算法思想 公平地 輪流地為...

時間片輪轉演算法和優先順序排程演算法 C語言模擬實現

一 目的和要求 程序排程是處理機管理的核心內容。本實驗要求用高階語言編寫模擬程序排程程式,以便加深理解有關程序控制快 程序佇列等概念,並體會和了解優先數演算法和時間片輪轉演算法的具體實施辦法。二 實驗內容 1.設計程序控制塊pcb的結構,通常應包括如下資訊 程序名 程序優先數 或輪轉時間片數 程序已...