作業系統之 處理機(1)處理機排程

2021-07-24 22:14:43 字數 1894 閱讀 2898

(長程排程/作業排程)排程物件是作業,決定作業何時裝入記憶體,為其建立程序、分配資源,放入就緒佇列中。

主要用於多批道處理系統

(記憶體排程)將暫時無法執行的程序從記憶體調到外存,合適時將外存的就緒程序調入記憶體執行。

實際為儲存器管理中的對換功能,見後續...

(短程排程/程序排程)排程物件是程序,決定就緒佇列中的哪個程序可以獲得處理基機。

多批道、分時實時系統都需要配備。

很少作為主呼叫演算法,通常與其他排程演算法結合使用,如按優先順序設定多個就緒佇列,每個佇列中應用fcfs演算法。

執行時間越短優先順序越高

缺點:1.無法準確估計時間2.長作業等待時間過長(飢餓)3.未考慮作業緊迫程度不同

對於fcfs優先順序為等待時間,對於sjf優先順序為執行時間,而psa根據作業緊迫程度,外部賦予相應優先順序,保證緊迫作業優先執行。

綜合考慮等待時間與執行時間

優先權=(等待時間+要求服務時間)/要求服務時間

等待時間與要求服務時間之和就是系統對該作業的響應時間。

1.儲存處理機的現場資訊 2.按某種演算法選取程序 3.把處理機分配給程序。

非搶占式:

一旦處理機分配給程序,就讓其一直執行,直到程序完成或發生阻塞。

搶占式:

暫停某個正在執行的程序,將處理機重新分配給其他程序.

搶占原則

1.優先權原則:新程序優先順序比原程序高

2.短程序優先原則:短程序可搶占長程序的處理機(執行時間差距明顯時)。

3.時間片原則:程序按時間片輪轉執行時,乙個程序的時間片用完後停止該程序的執行,重新進行排程

1.設定多個就緒佇列,賦予每個佇列不同的優先順序。

不同佇列中的程序賦予時間片大小不同,優先順序越高時間片越短,時間片依次翻倍

2.每個佇列採用先來先服務演算法,新來的程序放入所在佇列的隊尾。

若某程序在乙個時間片內未完成,則將其插入到下一佇列的隊尾。

最後乙個佇列的程序採用rr(輪轉排程)方式執行。

3.按佇列優先順序執行,先排程最高優先順序佇列中的程序,第i級佇列空閒時才排程第i+1級佇列。

正在處理第i級佇列中的某程序時,若有更高優先順序的程序到來,則將正在執行的程序插入佇列i的末尾,將處理機給新來的高優先順序程序。

4.資源需求

5.優先順序:錯過開始截止時間的後果嚴重程度

非搶占式:

1.非搶占式輪轉排程演算法

2.非搶占式優先順序排程演算法

搶占式:

1.基於時鐘中斷的搶占式優先順序排程演算法:在時鐘中斷到來時才進行搶占

2.立即搶占的優先順序排程演算法:只要外部中斷發生,立即搶占

非搶占式排程用於非週期實時任務

根據任務的開始截至時間確定任務的優先順序,截至時間越早優先順序越高

搶占式排程方式用於週期實時任務

將每個程序的每次迴圈看作是乙個小程序,保證滿足每個小程序的最早開始時間。

可以提前執行乙個小程序,但其他小程序的開始截至時間到來時,需要中斷搶奪處理機給該小程序。

程序的鬆弛程度(最晚執行時間)=完成截至時間-執行所需時間

把程序按照鬆弛程度排序,鬆弛度越低優先順序越高,按優先順序先後執行

週期任務採用搶占排程方式,思路同edf,以小程序的鬆弛度為優先順序。

形成原因

不同程序共享臨界資源,若低優先順序程序先執行並在臨界區時高優先順序程序到來並進入臨界區,因為臨界資源低優先順序程序占用,高優先順序程序無法執行而被阻塞,反而是第優先順序程序先執行完畢。

解決方法

1.簡單方法:當程序進入臨界區後,處理機就不允許被搶占。

適用於臨界區長度較短,數量不多的情況。

2.實用方法:當高優先順序程序a要進入臨界區去使用資源時,若該資源正在被低優先順序程序b使用,則阻塞程序a,同時讓程序b繼承程序a的優先順序,並保持到程序b退出臨界區。

避免了優先順序高於b但低於a的程序來延緩程序b退出臨界區的時間。

作業系統之處理機排程

1.處理機即計算機的處理器,簡單理解就是cpu,多處理機指多核,即多個cpu同時工作,隨著工藝的提高,多個cpu可以整合在一塊晶元上,比如兩核,四核處理器。2.作業和程序的區別 1 作業是乙個比程式更加廣泛的概念,包含程式 資料和作業說明書 2 程序包含pcb 程式和資料集合 所以程式是程序的一部分...

3 1處理機排程

多道程式環境下,動態的把處理機分配給就緒佇列中的乙個程序使之執行。提高處理機的利用率 改善系統效能,很大程度上取決於處理機排程的效能。2.1高階排程 high level scheduling 又稱作業排程或長程排程 long term scheduling 接納排程 admission sched...

03 處理機排程

程序排程 排程演算法評價指標 排程演算法 當有一堆任務要處理,但由於資源有限,這些事務無法同時處理。這就需要確定某種規則來決定處理這些任務的順序,這就是 排程 研究的問題。在多道程式系統中,程序的數量往往是多於處理機的個數的,這樣不可能同時並行地處理各個程序。處理機排程,就是從就緒佇列中按照一定的演...