计算机系统调度算法代码,常见的调度算法总结
調度算法是指:根據系統的資源分配策略所規定的資源分配算法。
一、FCFS——先來先服務和短作業(進程)優先調度算法
1. 先來先服務調度算法。
先來先服務(FCFS)調度算法是一種最簡單的調度算法,該算法既可用于作業調度, 也可用于進程調度。FCFS算法比較有利于長作業(進程),而不利于短作業(進程)。由此可知,本算法適合于CPU繁忙型作業, 而不利于I/O繁忙型的作業(進程)。
2. 短作業(進程)優先調度算法。
短作業(進程)優先調度算法(SJ/PF)是指對短作業或短進程優先調度的算法,該算法既可用于作業調度, 也可用于進程調度。但其對長作業不利;不能保證緊迫性作業(進程)被及時處理;作業的長短只是被估算出來的。
二、FPF高優先權優先調度算法
1. 優先權調度算法的類型。
為了照顧緊迫性作業,使之進入系統后便獲得優先處理,引入了最高優先權優先(FPF)調度算法。 此算法常被用在批處理系統中,作為作業調度算法,也作為多種操作系統中的進程調度,還可以用于實時系統中。當其用于作業調度, 將后備隊列中若干個優先權最高的作業裝入內存。當其用于進程調度時,把處理機分配給就緒隊列中優先權最高的進程,此時, 又可以進一步把該算法分成以下兩種:
1)非搶占式優先權算法
2)搶占式優先權調度算法(高性能計算機操作系統)
2. 優先權類型 。
對于最高優先權優先調度算法,其核心在于:它是使用靜態優先權還是動態優先權, 以及如何確定進程的優先權。
3.動態優先權
高響應比優先調度算法為了彌補短作業優先算法的不足,我們引入動態優先權,使作業的優先等級隨著等待時間的增加而以速率a提高。 該優先權變化規律可描述為:優先權=(等待時間+要求服務時間)/要求服務時間;即 =(響應時間)/要求服務時間
三、基于時間片的輪轉調度算法
1.時間片輪轉法。
時間片輪轉法一般用于進程調度,每次調度,把CPU分配隊首進程,并令其執行一個時間片。 當執行的時間片用完時,由一個記時器發出一個時鐘中斷請求,該進程被停止,并被送往就緒隊列末尾;依次循環。
2. 多級反饋隊列調度算法
多級反饋隊列調度算法多級反饋隊列調度算法,不必事先知道各種進程所需要執行的時間,它是目前被公認的一種較好的進程調度算法。 其實施過程如下:
1) 設置多個就緒隊列,并為各個隊列賦予不同的優先級。在優先權越高的隊列中, 為每個進程所規定的執行時間片就越小。
2) 當一個新進程進入內存后,首先放入第一隊列的末尾,按FCFS原則排隊等候調度。 如果他能在一個時間片中完成,便可撤離;如果未完成,就轉入第二隊列的末尾,在同樣等待調度…… 如此下去,當一個長作業(進程)從第一隊列依次將到第n隊列(最后隊列)后,便按第n隊列時間片輪轉運行。
3) 僅當第一隊列空閑時,調度程序才調度第二隊列中的進程運行;
僅當第1到第( i-1 )隊列空時, 才會調度第i隊列中的進程運行,并執行相應的時間片輪轉。
4) 如果處理機正在處理第i隊列中某進程,又有新進程進入優先權較高的隊列, 則此新隊列搶占正在運行的處理機,并把正在運行的進程放在第i隊列的隊尾。
總結
以上是生活随笔為你收集整理的计算机系统调度算法代码,常见的调度算法总结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java 爬楼梯算法_动态规划-爬楼梯问
- 下一篇: 安装显卡后计算机无法启动,Win10更新