排程的時機、切換、過程:程序排程和切換程式是作業系統核心程式
1、 現代作業系統中,不能進行程序的排程與切換的情況有以下
1.1、 在處理中斷過程中:中斷處理過程複雜,很難做到程序切換,而中斷處理屬於系統工作一部分,邏輯上不屬於某乙個程序
1.2、 程序在作業系統核心程式臨界區:進入臨界區後,需要獨佔式訪問共享資料,理論上需要加鎖,防止其他程式進入。解鎖前不應切換到其他程序執行,以加快共享資料的釋放
1.3、 其他需要完全遮蔽中斷的原子操作:如加鎖、解鎖、中斷現場保護,恢復原子操作等。原子操作過程中,連中斷都要遮蔽,更不應該進行程序排程和切換
2、 應該進行程序排程與切換的情況有:
2.1發生引起排程的條件:當前程序無法繼續執行下去時,可以馬上進行排程與切換。非剝奪排程
2.2當中斷處理程式結束或者自陷處理結束後,返回被中斷程序的使用者態程式執行現場前,若置上強求排程標誌,即可馬上進行程序排程與切換。剝奪方式的排程
3、程序排程方式:
3.1、非剝奪排程方式:當程序正在處理機上執行時,即使有某個更為重要的程序進入就緒佇列,仍然讓正在執行的程序繼續執行,直到該程序完成或發生某種事件而進入阻塞狀態才把資源讓出。不能用於分時作業系統和大多數實時系統
3.2、剝奪排程方式:當乙個程序正在處理機上執行時,若有某個更為重要或緊迫的程序需要使用處理機時,則立即停止正在執行的程序,將處理機分配給更為緊迫的程序:有優先權、短程序優先和時間片原則。
程序排程的時機切換與過程排程方式
程序排程和切換程式是作業系統核心程式。請求排程的事件發生後,才可能執行程序排程程式,排程了新的就緒程序後,才會進行程序的切換。理論上這三件事情應該順序執行,但在實際設計中,作業系統核心程式執行時,若某時發生了程序排程的因素,則不一定能夠馬上進行排程與切換。不能進行程序的排程與切換的情況有以下情況 1...
程序排程的時機 切換與過程 方式
程序排程 低階排程 就是按照某種演算法從就緒佇列中選擇乙個程序為其分配處理機 例題 臨界資源 時間段內只允許乙個程序使用的資源。各程序需要互斥地訪問臨界資源。臨界區 訪問臨界資源的那段 非剝奪排程方式,又稱非搶占方式。即,只允許程序主動放棄處理機。在執行過程中即便有更緊迫的任務到達,當前程序依然會繼...
八 程序排程的時機 切換與過程,排程方式
1.程序在作業系統核心程式臨界區不能進行排程與切換,但若說成程序處於臨界區時不能進行處理機排程是錯誤的。2.臨界資源 乙個時間段內只允許乙個程序使用的資源,各程序需要互斥的訪問臨界資源。臨界區 訪問臨界資源的那段 1.狹義的程序排程 與 程序切換 的區別 狹義的程序排程指的是從就緒佇列中選中乙個要執...