王道操作系统考研笔记——2.1.7 进程调度的时机、切换与过程、方式
文章目錄
- 2.1.7 進程調(diào)度的時機、切換與過程、方式
- 2.1.7.1 進程調(diào)度的時機
- 2.1.7.2 進程調(diào)度的方式
- 2.1.7.3 進程的切換和過程
- 2.1.7.4 小結(jié)
2.1.7 進程調(diào)度的時機、切換與過程、方式
知識總覽
2.1.7.1 進程調(diào)度的時機
進程調(diào)度(低級調(diào)度),就是按照某種算法從就緒隊列中選擇一個進程為其分配處理機。
需要注意的是一些表述的問題。
進程在操作系統(tǒng)內(nèi)核程序臨界區(qū)中不能進行調(diào)度和切換。√
進程處于臨界區(qū)不能進行處理機調(diào)度。×
這里兩個表述的差異就在于名詞:內(nèi)核程序臨界區(qū)和臨界區(qū)的區(qū)別。
臨界資源:一個時間段只允許一個進程使用的資源。各進程需要互斥地訪問臨界資源。
臨界區(qū):訪問臨界資源的那段代碼。
內(nèi)核程序臨界區(qū)一般是用來訪問某種內(nèi)核數(shù)據(jù)結(jié)構(gòu)的,比如進程的就緒隊列。這個時候一般來說快點訪問完快點結(jié)束。這涉及到封鎖表的問題,在數(shù)據(jù)庫中我們也曾經(jīng)談過這個上鎖的問題,實際上操作系統(tǒng)也有上鎖,也就是說,當(dāng)你的進程1在訪問內(nèi)核程序的臨界資源的時候,其他進程例如進程2無法同時訪問,因為該內(nèi)核程序臨界資源被進程1上鎖了,也就是說,此時如果你還去做進程的調(diào)度和切換,勢必會導(dǎo)致占用該資源時間過長,拖延了其他進程使用該資源的時間;如果不是內(nèi)核程序的臨界資源倒也無所謂,但是如果是內(nèi)核程序臨界區(qū)訪問的臨界資源不盡快釋放的話,極有可能影響到操作系統(tǒng)內(nèi)核的其他管理工作。因此在訪問內(nèi)核程序臨界區(qū)期間不能進行調(diào)度和切換。
而如果不是內(nèi)核程序,是普通的臨界區(qū)如打印機打印,那么在打印機打印完成之前,進程一直處于臨界區(qū)內(nèi),臨界資源不會解鎖。但打印機又是慢速設(shè)備,CPU幫操作系統(tǒng)把進程對應(yīng)的資源塞到打印機門口了,然后一直在等待打印完,這是不合理的,此時如果一直不允許進程調(diào)度的話就會導(dǎo)致CPU一直空閑。
普通臨界區(qū)訪問的臨界資源不會直接影響操作系統(tǒng)內(nèi)核的管理工作。因此在訪問普通臨界區(qū)時可以進行調(diào)度和切換。
回到前面講的進程調(diào)度的時機。有的系統(tǒng)中,只允許進程主動放棄處理機;有的系統(tǒng)中,進程可以主動放棄處理機,當(dāng)有更緊急的任務(wù)需要處理時,也會強行剝奪處理機(被動放棄)。由此我們引出了下一小節(jié):進程調(diào)度的方式。
2.1.7.2 進程調(diào)度的方式
進程調(diào)度的方式可以分為兩種:非剝奪調(diào)度方式和剝奪調(diào)度方式。
非剝奪調(diào)度方式,也稱為非搶占方式。即只允許進程主動放棄處理機。在運行過程中即便有更緊迫的任務(wù)到達,當(dāng)前進程依然會繼續(xù)使用處理機,直到該進程終止或主動要求進入阻塞態(tài)。
這種方式實現(xiàn)簡單,系統(tǒng)開銷小但是無法及時處理緊急任務(wù),適合早期的批處理系統(tǒng)。
剝奪調(diào)度方式,又稱為搶占方式。當(dāng)一個進程正在處理機上執(zhí)行時,如果有一個更重要或更緊迫的進程需要使用處理機,則立即暫停正在執(zhí)行的進程,將處理機分配給更重要緊迫的那個進程。
這種方式可以優(yōu)先處理更緊急的過程,也可以實現(xiàn)讓各進程按時間片輪流執(zhí)行的功能(通過時鐘中斷)。適合于分時操作系統(tǒng)、實時操作系統(tǒng)。
2.1.7.3 進程的切換和過程
這里需要知道的是兩個每次的區(qū)別:狹義進程調(diào)度和進程切換的區(qū)別。
狹義的進程調(diào)度指的是從就緒隊列中選中一個要運行的進程。這個進程可以是剛剛被暫停執(zhí)行的進程,也可能是另一個進程。
進程切換是指一個進程讓出處理機,由另一個進程占用處理機的過程。
廣義的進程調(diào)度包含了選擇一個進程和進程切換兩個步驟。
進程切換的過程主要完成了:
如:程序計數(shù)器、程序狀態(tài)字、各種數(shù)據(jù)寄存器等處理機現(xiàn)場信息,這些信息一般保存在進程控制塊。
注意:進程切換是有代價的,因此如果過于頻繁地進行進程調(diào)度、切換,比如會使整個系統(tǒng)的效率降低,使系統(tǒng)大部分時間都花在了進程切換上,而真正用于執(zhí)行過程的時間減少。
2.1.7.4 小結(jié)
該小節(jié)含有的知識較多,不是考試的重點,但是也需要理解。
總結(jié)
以上是生活随笔為你收集整理的王道操作系统考研笔记——2.1.7 进程调度的时机、切换与过程、方式的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 1.5.2 在IIS上配置ASP.NET
- 下一篇: 解决vista/win7安装window