程序排程負責動態的將cpu分配給各個程序。主要功能如下:
(1)記住程序狀態。
(2)決定哪個程序,什麼時候獲取cpu及其占用多長時間。
(3)把cpu分配給程序,即將選中程序的pcb中有關程序的相關資訊,如程式狀態暫存器、通用暫存器等內容送入cpu的相應的暫存器中,從而讓該程序占用cpu去執行。
(4)收回cpu。
啟動程序排程程式的各種時機:
(1)在一次外部中斷之後,該中斷改變了某個程序的狀態。
(2)在一次資訊呼叫之後,而該呼叫使現行程序暫時不能繼續執行。
(3)在一次錯誤處理之後,使現行程序在錯誤處理時被封鎖。
排程策略:
(1)分時系統呼叫策略
在分時系統中為了提高對互動作用的響應速度,使各程序在較短時間間隔內都有機會占用cpu,則需要比較頻繁地對cpu進行排程。這種排程方式增加了系統的開銷,降低了cpu實際使用效率。 如:為了保證及時響應,採用輪轉演算法分配cpu,即以迴圈方式依次給每個使用者服務請求乙個時間片,這也是「分時」的由來。這樣做的作用是防止使用者計算時間長的任務時壟斷cpu,妨礙對其他使用者服務請求的響應。使用平均的是使用cpu,但這時如果時間片過大,相應的平均響應時間增長;若時間片過短,則會增大個服務請求迴圈排隊的次數,因而也會增加平均響應時間,而且由於頻繁切換,系統開銷也增大了。因此,考慮到系統分時的主要目的。 應在滿足某種互動作用的響應速度前提下提高系統資源的使用效率。
(2)批處理系統排程策略
1.先來先服務演算法:
先來先服務演算法體現使用者公平。排程策略按照優先數分配cpu。優先數按照所有程序來到的時間戳確定。它優先考慮在系統中等待時間最長的執行緒,而不管該程序執行時間的長短。這種演算法一般是非搶占式排程演算法,也就是說,程序 一旦分配cpu,就直至執行結束。
2.最短作業優先排程演算法:
這種演算法總是優先排程要求執行時間最短的程序作為下一次服務的物件。它可以達到系統最大吞吐量。它的主要缺點是只照顧短程序。因此有可能乙個程序進入系統後,由於不斷有比它更短的程序進入系統而使該程序一直得不到時機執行。
3.響應比高者優先排程演算法:
這種演算法每次排程時,計算後備進度表中各程序的響應比,然後挑選響應比最高者投入執行。因此在系統中的程序只要等待足夠長的時間就有機會執行。該演算法考慮到等待時間又兼顧了短作業程序優先,是上述兩種演算法的折中。缺點是演算法比較複雜,每次排程都要計算一次後備程序佇列中各個程序的響應比。
(3)實時系統排程策略
對於實時系統要求cpu能及時響應,它主要用於實現特定的控制和服務功能。為每乙個程序設定乙個優先數,cpu排程時每次選擇就緒程序中優先數最大者,讓它占用cpu執行。
(4)通用系統排程策略
1.優先數演算法。
2.輪**。
3.時間片可變輪**與多佇列輪轉法。
程序排程演算法(程序排程策略)
程序排程演算法 排程演算法是指 根據系統的資源分配策略所規定的資源分配演算法。一 先來先服務和短作業 程序 優先排程演算法 1.先來先服務排程演算法。先來先服務 fcfs 排程演算法是一種最簡單的排程演算法,該演算法既可用於作業排程,也可用於程序排程。fcfs演算法比較有利於長作業 程序 而不利於短...
linux程序排程策略
linux程序排程策略 linux核心的三種主要排程策略 1,sched other 分時排程策略,2,sched fifo實時排程策略,先到先服務 3,sched rr實時排程策略,時間片輪轉 實時程序將得到優先呼叫,實時程序根據實時優先順序決定排程權值。分時程序則通過nice和counter值決...
linux程序排程策略
首先,可以通過以下兩個函式來獲得執行緒可以設定的最高和最低優先順序,函式中的策略即上述三種策略的巨集定義 int sched get priority max int policy int sched get priority min int policy sched other是不支援優先順序使用...