當計算機系統是多道程式設計系統時,通常就會有多個程序或執行緒同時競爭cpu。只要有兩個或更多的程序處於就緒狀態,這種情形就會發生。如果只有乙個cpu可用,那麼就必須選擇下乙個要執行的程序。作業系統核心使用一種稱為程序切換(process switch),有時稱為上下文切換(context switch)的較高形式的異常控制流來實現多工,完成程序切換的工作的這一部分稱為排程程式(scheduler),該程式使用的演算法稱為排程演算法(scheduling algorithm).
排程的基本準則包括cpu利用率、系統吞吐量、周轉時間、等待時間、響應時間等。
系統吞吐量表示單位時間內cpu完成作業的數量。
周轉時間為作業完成時刻減去作業到達的時刻。
等待時間是指程序處於等待處理器狀態的時間之和,等待時間越長,使用者滿意度越低。
響應時間是指從使用者提交到系統首次產生響應所用的時間。
典型的排程演算法包括:先來先服務排程演算法(fcfs)、短作業優先排程演算法(sif)、優先順序排程演算法、高響應比排程演算法、時間片輪轉演算法、多級反饋佇列排程演算法。其中短作業優先排程演算法的平均等待時間、平均周轉時間最少。既有利於短作業又兼顧長作業的排程方式是最高響應比優先排程演算法。
作業系統排程演算法
include include include include using namespace std const int maxnum 101 typedef struct information node struct node1 此結構體用於優先順序演算法的搶占式 int priority i...
作業系統排程演算法
在作業系統中存在多種排程演算法,其中有的排程演算法適用於作業排程,有的排程演算法適用於程序排程,有的排程演算法兩者都適用。下面介紹幾種常用的排程演算法。fcfs排程演算法是一種最簡單的排程演算法,該排程演算法既可以用於作業排程也可以用於程序排程。在作業排程中,演算法每次從後備作業佇列中選擇最先進入該...
作業系統 排程演算法
fcfs是最簡單的排程演算法,既可以用於作業排程,也可以用於程序排程,系統將按照作業到達的先後次序來進行排程。sjf演算法是以作業的長短來計算優先順序,作業越短,優先順序越高。作業的長短是以作業所要求的執行時間來衡量的。可以分別用於作業排程和程序排程。缺點 必須預知作業的執行時間 對長作業很不利,長...