操作系统(十四)进程调度的时机、调度方式
2.2.2 進程調(diào)度的時機、調(diào)度方式
2.2.2.1 進程調(diào)度的時機
? 進程調(diào)度(低級調(diào)度)就是按照某種算法從就緒隊列中選擇一個進程為其分配處理機。需要進程調(diào)度的時機有以下兩種情況:當前進程主動放棄處理機,當前進程被動放棄處理機。
??當前進程主動放棄處理機:進程正常終止;運行過程中發(fā)生異常而終止;進程主動請求阻塞(如 等待I/O)
? 當前進程被動放棄處理機:分給進程的時間片用完、有更緊急的事需要處理(如 I/O中斷)、有更高優(yōu)先級的進程進入就緒隊列
? 禁止進行進程調(diào)度和切換的時機有:1. 在處理中斷的過程中。中斷處理過程復雜,與硬件密切相關(guān),很難做到在中斷處理過程中進行進程切換。2. 進程在操作系統(tǒng)內(nèi)核程序臨界區(qū)中。3. 在原子操作過程中(原語),因為原子操作不可中斷。
? 需要留意的是進程在操作系統(tǒng)內(nèi)核程序臨界區(qū)中時不可以進行進程切換,但是進程在臨界區(qū)的時候可以進行進程切換。這里解釋一下臨界區(qū):臨界區(qū)是用來訪問臨界資源的代碼塊,臨界資源是在一個時間內(nèi)僅允許一個進程訪問的資源。內(nèi)核程序臨界區(qū)是指訪問內(nèi)核程序資源的代碼。因為內(nèi)核程序臨界資源一般是比較重要的,如果在這里進行進程切換就可能會導致一些進程遲遲訪問不到資源而等待時間過長餓死。
2.2.2.2 進程調(diào)度的方式
? 搶占式:允許調(diào)度程序根據(jù)某種原則去暫停某個正在執(zhí)行的進程,將已分配給該進程的處理機重新分配給另一進程。
? 非搶占式:一旦把處理機分配給某進程后,不管它要運行多長時間,一直讓它運行下去,決不會因為時鐘中斷等原因而搶占正在運行進程的處理機,也不允許其它進程搶占已經(jīng)分配給它的處理機。直至該進程完成,自愿釋放處理機,或發(fā)生某事件而被阻塞時,才再把處理機分配給其他進程。
總結(jié)
以上是生活随笔為你收集整理的操作系统(十四)进程调度的时机、调度方式的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 操作系统(十三)处理机调度的概念、层次
- 下一篇: 操作系统(十五)调度算法的评价指标