程式實現了作業排程演算法中的fcfs演算法和sjf演算法.
fcfs演算法:優先考慮系統中等待時間長的作業 ,而不管該作業所需執行時間長短.說的通俗點 , 哪個作業先提交 , 哪個作業先進記憶體.這是對作業排程而言 , 同樣 , fcfs演算法也可以用於程序排程 , 此時 誰先進記憶體的誰先上cpu.
那麼這樣一來就會出現這樣的問題 : 如果乙個作業所需執行時間很長(長作業) , 並且它先提交給系統 . 那麼該作業就要長時間的占用cpu , 而之後來到的短作業 , 即便它占用cpu的時間很短也上不了cpu.在單位時間內 , cpu上執行的作業數會變少.系統吞吐量降低.
為了解決這種情況 , 採用sjf演算法. sjf演算法優先考慮短作業 , 即:不管作業的提交時間 , 作業服務時間短的先上cpu . 這樣一來,系統吞吐量提高了.
這套**基於鍊錶 , 鍊錶的乙個節點模擬乙個作業說明書.
fcfs和sjf兩套演算法是由void listsort2(linklist &l) 和 void listsort(linklist &l)模擬的.
#include#includeusing namespace std;
typedef struct lnode_jcb
lnode_jcb , *linklist;
int main()
void createlist_l(linklist &l , int n)}/*
void listsort(linklist &l , linklist &u)
else
}}*/
void listsort(linklist &l) //單鏈表排序 基於先來先服務演算法排序
q = q->next;
} p = p->next;
} } void listsort2(linklist &l) //單鏈表排序 基於短作業優先演算法排序
q = q->next;
} p = p->next;
} } void simulate_cpu_dispatch(linklist &l)
else
}}void fcfs(linklist &l , int n)
}void sjf(linklist &l , int n)
}
效果圖:
模擬磁碟排程演算法 c
測試結果 流程圖 實現 include include define inf 999999typedef struct seqlist sstf演算法 void sstf int n,seqlist l,int temp l k time false sum min printf d t t d t...
模擬 作業排程方案
最近做了這道題作業排程方案,附上鏈結 這道題文字很多,不易讀 我們現在要利用m臺機器加工n個工件,每個工件都有m道工序,每道工序都在不同的指定的機器上完成。每個工件的每道工序都有指定的加工時間。每個工件的每個工序稱為乙個操作,我們用記號j k表示乙個操作,其中j為1到n中的某個數字,為工件號 k為1...
作業排程模擬程式
1.實驗目的 1 加深對作業排程演算法的理解 2 進行程式設計的訓練。2 實驗要求 用高階語言編寫乙個或多個作業排程的模擬程式。單道批處理系統的作業排程程式。作業一投入執行,它就占有計算機的一切資源直到作業完成為止,因此排程作業時不必考慮它所需要的資源是否得到滿足,它所執行的時間等因素。作業排程演算...