程序排程的時機切換與過程排程方式

2021-10-16 05:00:19 字數 2236 閱讀 1549

程序排程和切換程式是作業系統核心程式。

請求排程的事件發生後,才可能執行程序排程程式,排程了新的就緒程序後,才會進行程序的切換。理論上這三件事情應該順序執行,但在實際設計中,作業系統核心程式執行時,若某時發生了程序排程的因素,則不一定能夠馬上進行排程與切換。

不能進行程序的排程與切換的情況有以下情況:

1)在處理中斷的過程中。中斷處理過程複雜,在實現上很難做到程序切換,而且中斷處理是系統工作的一部分,邏輯上不屬於某一程序,不應被剝奪處理機資源。

2)程序在作業系統核心程式臨界區中。進入臨界區後,需要獨佔地訪問共享資料,理論上必須加鎖,以防止其他並行程式進入,在解鎖前不應該切換其他程序執行,以加快該共享資料的釋放。

3)其他需要完全遮蔽中斷的原子操作過程中。如加鎖、解鎖、中斷現場保護、恢復等原子操作。在原子過程中,連中斷都要遮蔽,更不應該進行程序排程與切換。

若在上述過程中發生了引起排程的條件,則不能馬上進行排程和切換,應置系統的請求排程標誌,直到上述過程結束後才進行相應的排程與切換。

應該進行程序排程與切換情況

1)發生引起排程條件且當前程序無法繼續執行下去時,可以馬上進行排程與切換。若作業系統只在這種情況下進行程序排程,則是非剝奪排程。

2)中斷處理結果或自陷處理結束後,返回被中斷程序的使用者態程式執行現場前,若置上請求排程標誌,即可馬上進行程序排程與切換。若作業系統支援這種情況下的執行排程程式,則實現了剝奪方式的排程。

程序排程(低階排程):按照某種演算法從就緒佇列中選擇乙個程序為其分配處理機。

程序在作業系統核心程式臨界區中不能進行排程與切換

臨界資源:乙個時間段內只允許乙個程序使用的資源。各程序需要互斥地訪問臨界資源。

臨界區:訪問臨界資源的那段**。

核心程式臨界區一般是用來訪問某種核心資料結構的,比如程序的就緒佇列(由各就緒程序的pcb組成)

程序排程(低階排程),就是按照某種演算法從就緒佇列中選擇乙個程序為其分配處理機。

程序切換往往在排程完成後立即發生,它要求儲存原程序當前切換點的現場資訊,恢復被排程程序的現場資訊。現場切換時,作業系統核心將原程序的現場資訊推入當前程序的核心堆疊來儲存它們,並更新堆疊指標。核心完成從新程序的核心棧中裝入新程序的現場資訊、更新當前執行程序空間指標、重設pc暫存器等相關工作之後,開始執行新的程序。

程序排程方式:指當某個程序正在處理機上執行時,若有某個更為重要或緊迫的程序需要處理,即有優先權更高的程序進入就緒佇列,此時應如何分配處理機。

兩種程序排程方式:

1)非剝奪排程方式(非搶占方式):指當乙個程序正在處理機上執行時,即使有某個更為重要或緊迫的程序就緒佇列,仍然讓正在執行的程序繼續執行,直到該程序完成或發生某種事件而進入阻塞態時,才把處理機分配給更為重要或緊迫的程序。

在非剝奪排程方式下,一旦把cpu分配給乙個程序,該程序就會保持cpu直到終止或轉換到等待狀態。優點:實現簡單、系統開銷小,適用於大多數的批處理系統,但不能用於分時系統和大多數的實時系統。

2)剝奪排程方式(搶占方式):指當乙個程序正在處理機上執行時,若有某個更為重要或緊迫的程序需要使用處理機,則立即暫停正在執行的程序,將處理機分配給這個更為重要或緊迫的程序。

採用剝奪式排程,對提高系統吞吐率和響應效率都有明顯的好處。必須遵循一定的原則,有優先權、短程序優先、時間片原則等。

「狹義的程序呼叫」與「程序切換」的區別:

狹義的程序排程指的是從就緒佇列中選中乙個要執行的程序。(這個程序可以是剛剛被暫停執行的程序,也可能是另乙個程序,後一種情況就需要程序切換)

程序切換是指乙個程序讓出處理機的過程

廣義的程序排程包含了選擇乙個程序和程序切換兩個步驟。

程序切換的過程主要完成了

1)對原來執行程序各種資料的儲存

2)對新的程序各種資料的恢復

(如:程式計數器、程式狀態字、各種資料暫存器等處理機現場資訊,這些資訊一般儲存在程序控制塊)

注意:程序切換是有代價的,因此如果過於頻繁的進行程序排程、切換,必然會使整個系統的效率降低,使系統大部分時間都花在了程序切換上,而真正用於執行程序的時間減少。

八 程序排程的時機 切換與過程,排程方式

1.程序在作業系統核心程式臨界區不能進行排程與切換,但若說成程序處於臨界區時不能進行處理機排程是錯誤的。2.臨界資源 乙個時間段內只允許乙個程序使用的資源,各程序需要互斥的訪問臨界資源。臨界區 訪問臨界資源的那段 1.狹義的程序排程 與 程序切換 的區別 狹義的程序排程指的是從就緒佇列中選中乙個要執...

程序排程的時機 切換與過程 方式

程序排程 低階排程 就是按照某種演算法從就緒佇列中選擇乙個程序為其分配處理機 例題 臨界資源 時間段內只允許乙個程序使用的資源。各程序需要互斥地訪問臨界資源。臨界區 訪問臨界資源的那段 非剝奪排程方式,又稱非搶占方式。即,只允許程序主動放棄處理機。在執行過程中即便有更緊迫的任務到達,當前程序依然會繼...

程序排程時機跟蹤分析程序排程與程序切換的過程

張磊 程序的排程時機與程序的切換 作業系統原理中介紹了大量程序排程演算法,這些演算法從實現的角度看僅僅是從執行佇列中選擇乙個新程序,選擇的過程中運用了不同的策略而已。對於理解作業系統的工作機制,反而是程序的排程時機與程序的切換機制更為關鍵。程序排程的時機 下面是整個實驗過程 網易實驗樓環境 程序切換...