-
非搶佔式
鎖定
- 中文名
- 非搶佔式
- 外文名
- Nonpreemptive
- 領 域
- 計算機操作系統
非搶佔式對比
搶佔式與非搶佔式的對比
非搶佔式(Nonpreemptive)
讓進程運行直到結束或阻塞的調度方式
容易實現
適合專用系統,不適合通用系統
搶佔式(Preemptive)
允許將邏輯上可繼續運行的在運行過程暫停的調度方式
可防止單一進程長時間獨佔CPU
系統開銷大(降低途徑:硬件實現進程切換,或擴充主存以貯存大部分程序)
非搶佔式區分
搶佔式與非搶佔式的區分
一個新創建的進程首先被放置在Ready隊列,它一直等待執行的機會。一旦內核調度器將CPU分配給它開始執行時,有四種可能:
(1)進程主動發起I/O請求,但I/O設備還沒有準備好,所以會發生I/O阻塞,進程進入Wait狀態。
(2)內核分配給進程的時間片已經耗盡了,進程進入Ready狀態,等待內核重新分配時間片後的執行機會。
(3)進程創建了子進程,並調用wait()等待子進程執行完畢,進程就重新進入Ready狀態等待阻塞結束。
(4)I/O設備可以在任意時刻發生中斷,CPU會停下當前正在執行的進程去處理中斷,因此進程進入Ready狀態。
區分一個多任務分時系統是搶佔式的還是非搶佔式的,則要看進程調度能否在(4)發生中斷,CPU停止當前手頭的工作(正在執行的進程),保存下當前工作的現場後,轉入中斷處理程序。如果在中斷處理程序的執行中能否發生調度,即中斷處理程序還沒有執行完,又切換到其他進程。這裏要説明的是,系統調用也是通過中斷機制來實現的。所以,也就是説要看系統調用的執行過程中,或者中斷處理程序的執行過程中能否發生調度(搶佔)。
[1]
- 參考資料
-
- 1. 進程調度 .CSDN[引用日期2015-01-23]
- 詞條統計
-
- 瀏覽次數:次
- 編輯次數:12次歷史版本
- 最近更新: a402729022