處理機排程有三個層次:作業排程(高階排程)、中級排程、程序排程(低階排程)
作業排程:從外存上將處於後備狀態的作業中選乙個(或多個)作業,給他們分配記憶體、輸入/輸出裝置等必要的資源,並建立相應的程序,使他們獲得競爭處理機的權利(放到就緒佇列中等候)。每個作業只會被調入一次,調出一次。
中級排程:將記憶體中暫時不能執行的程序調出到外存上暫存(又稱「掛起」),等他們具有再次執行的條件的時候再次調回記憶體的就緒佇列中。
程序排程:按照某種方式和策略從就緒佇列中選乙個程序並將處理機分配給它。這是最基本的不可或缺的排程策略。
在以下情況下不能發生程序的排程和切換:
程序的排程和切換分兩類:剝奪式排程(搶占式)和非剝奪式排程
程序排程的幾種方法:
1、先來先服務 fcfs
不可剝奪,對長作業有利,不利於i/o繁忙的作業,用於批處理可還行,不適合分時和實時系統。
2、短作業優先 sjf
對短作業有利,但是可能造成長作業飢餓(很長時間得不到排程)。
完全沒有考慮作業的緊迫程度
作業的長短是根據使用者預估的,不一定準確,使用者總喜歡縮短自己的預估時間長度,因此不一定能真的短作業優先
另外,sjf的平均等待時間、平均周轉時間最短。
3、優先順序排程
可以有剝奪式的,也可以有非剝奪式的。
根據程序建立後優先順序是否可以改變分為靜態優先順序和動態優先順序。
4、高響應比優先排程
響應比=(等待時間+要求服務時間)/ 要求服務時間
這方法比較好,長作業和短作業都能夠得到排程,不至於產生飢餓,且短作業的優先順序相對較高。
5、時間片輪轉
常用於分時系統,時間片的大小對系統效能影響很大
6、多級反饋佇列排程演算法
結合了前幾個演算法的優點
搶占式的
設定了很多級別的就緒佇列,每一級就緒佇列內部採用時間片輪轉,且第二級佇列的時間片比第一級佇列的時間片長1倍
對終端型作業使用者:短作業優先
短批處理作業使用者:周轉時間較短
長批處理作業使用者:不會長期得不到執行,在前幾個佇列中可以得到部分執行
處理機排程
如果沒有處理機排程,則意味著必須等待當前程序執行完畢後下一程序才能執行,而程序常需等待外設的輸入,i o的速度相比處理機是非常慢的,因此這會對處理機資源造成嚴重浪費。引入排程後,可在執行程序等待輸入時把處理機排程給其他程序,從而提高處理機的利用率。作業排程 高階 在外存的作業中挑選乙個或多個作業,給...
處理機排程
多道程式系統中,程序的數量往往多於處理機的個數,程序爭用處理機的情況在所難免。處理機排程是對處理機進行分配,即從就緒佇列中按照一定的演算法選擇乙個程序並將處理機分配給它執行,以實現程序併發執行。乙個作業從提交到完成,經歷以下 排程 作業排程 從外存中選擇乙個或多個作業,分配記憶體 輸入 輸出等必要資...
處理機排程
又稱高階排程,其主要任務是按一定的原則從外存上處於後備狀態的作業中挑選乙個或多個作業,給它分配記憶體 輸入 輸出裝置等必要的資源,並建立相應的程序,以使它獲得競爭處理機的權利。記憶體與輔存之間的排程。每個作業只調入一次 調出一次。提高記憶體利用率和系統吞吐量。使暫時不能執行的程序,調至外存等待,把此...