作業排程演算法 先到先服務(FCFS)

2021-08-29 01:45:11 字數 1161 閱讀 2622

關於先到先服務演算法,我這裡只陳述幾個要點:

1.為什麼縮寫是fcfs?

first-come first-served,先到先服務。

2.fcfs演算法中優先順序的評定標準?

優先順序根據等待時間來確定,等待時間越長,優先順序越高,越優先執行。

3.為什麼說等待時間越長fcfs演算法排程作業的優先順序越高?

這個問題開始挺糾結我的,不曉得大家有沒有糾結過,給大家做乙個比喻,當前乙個飯店處於爆滿狀態(處理機排程作業此時處於忙碌狀態),而此時還有好多顧客去吃飯(有好多新的作業進入排程佇列),先到的顧客肯定比後到的顧客已經等待的時間要長,因此一旦有位子自然先到的顧客先入座,就是這樣。

下面給出fcfs演算法的執行模擬:

#include using namespace std;

#define max(x, y) x >= y ? x : y

#define min(x, y) x <= y ? x : y

#define inf 0x3f3f3f3f

const int maxn = 105;//作業排程的最大數量

/*作業控制塊的資料結構*/

typedef struct job_control_block

jcb;

int font, rear; //排程佇列指標

jcb *queue[maxn]; //作業排程佇列

int number; //佇列中的作業數

long time; //模擬時鐘

/*新增輔助延時函式*/

void delay()

/*各引數初始化*/

void init()

/*作業執行器*/

void runningjob(jcb *job)

/*建立作業*/

void makejob(int num, jcb *job)

}/*作業排程函式*/

void runjob()

}int main()

return 0;

}

執行結果:

處理機排程 先來先服務排程(FCFS)

在多道程式系統中,排程的實質是一種資源分配。處理機排程是對處理機資源進行分配。處理排程演算法是指根據處理機分配策略所規定的的處理機分配演算法。此系列都是實現的非搶占的排程演算法。先來先服務排程 按照程序的先後進入次序進行排程 輸入 作業的數目,作業的到達時間與服務時間.輸出 作業的呼叫序列與其周轉時...

先到先服務 短作業 時間片輪轉演算法

首先說一下這三個演算法的思想吧 fcfs是最簡單的排程演算法,既可以用於作業排程 也可以用於程式排程,當作業排程中採用該演算法時,系統將按照作業到達的先後次序來進行排程,優先從後備佇列中,選擇乙個或多個位於佇列頭部的作業,把他們調入記憶體,分配所需資源 建立程序,然後放入 就緒佇列 直到該程序執行到...

7 1 作業排程演算法 先來先服務

輸入n n 0 個作業,輸入每個作業的名字,到達時間,服務時間,按照先來先服務演算法,計算每個作業的完成時間,周轉時間,帶權周轉時間 保留2位小數 輸入格式 第一行輸入作業數目,第二行輸入作業的名字,第三行輸入到達時間,第四行輸入服務時間。輸出格式 按照到達時間從小到大排序,第一行輸出作業的名字,第...