程序排程(低階排程),就是按照某種演算法從就緒佇列中選擇乙個程序為其分配處理機
例題:
臨界資源:時間段內只允許乙個程序使用的資源。各程序需要互斥地訪問臨界資源。
臨界區:訪問臨界資源的那段**
非剝奪排程方式,又稱非搶占方式。即,只允許程序主動放棄處理機。在執行過程中即便有更緊迫的任務到達,當前程序依然會繼續使用處理機,直到該程序終止或主動要求進入阻塞態。
實現簡單,系統開銷小但是無法及時處理緊急任務,適合於早期的批處理系統
剝奪排程方式,又稱搶占方式。當乙個程序正在處理機上執行時,如果有乙個更重要或更緊迫的程序需要使用處理機,則立即暫停正在執行的程序,將處理機分配給更重要緊迫的那個程序。
可以優先處理更緊急的程序,也可實現讓各程序按時間片輪流執行的功能(通過時鐘中斷)。適合於分時作業系統、實時作業系統
「狹義的程序排程」與「程序切換」的區別:
狹義的程序排程指的是從就緒佇列中選中乙個要執行的程序。(這個程序可以是剛剛被暫停執行的程序,也可能是另乙個程序,後一種情況就需要程序切換)
程序切換是指乙個程序讓出處理機,由另乙個程序占用處理機的過程。
廣義的程序排程包含了選擇乙個程序和程序切換兩個步驟。
程序切換的過程主要完成了:
1.對原來執行程序各種資料的儲存
2.對新的程序各種資料的恢復
(如:程式計數器、程式狀態字、各種資料暫存器等處理機現場資訊,這些資訊一般儲存在程序控制塊)
注意:程序切換是有代價的,因此如果過於頻繁的進行程序排程、切換,必然會使整個系統的效率降低,使系統大部分時間都花在了程序切換上,而真正用於執行程序的時間減少。
程序排程的時機切換與過程排程方式
程序排程和切換程式是作業系統核心程式。請求排程的事件發生後,才可能執行程序排程程式,排程了新的就緒程序後,才會進行程序的切換。理論上這三件事情應該順序執行,但在實際設計中,作業系統核心程式執行時,若某時發生了程序排程的因素,則不一定能夠馬上進行排程與切換。不能進行程序的排程與切換的情況有以下情況 1...
八 程序排程的時機 切換與過程,排程方式
1.程序在作業系統核心程式臨界區不能進行排程與切換,但若說成程序處於臨界區時不能進行處理機排程是錯誤的。2.臨界資源 乙個時間段內只允許乙個程序使用的資源,各程序需要互斥的訪問臨界資源。臨界區 訪問臨界資源的那段 1.狹義的程序排程 與 程序切換 的區別 狹義的程序排程指的是從就緒佇列中選中乙個要執...
12 程序排程的時機 切換與過程 方式
注意 臨界資源 乙個時間段內只允許乙個程序使用的資源。各程序需要互斥地訪問臨界資源。臨界區 訪問臨界資源的那段 只允許程序主動放棄處理機。在執行過程中即便有更緊迫的任務到達,當前程序依然會繼續使用處理機,直到該程序終止或主動要求進入阻塞態。當乙個程序正在處理機上執行時,如果有乙個更重要或更緊迫的程序...