2.7進程調度的時機,切換與過程,方式

一,處理機調度的時機:

1,什麼時候需要進程調度?

1)當前運行進程主動放棄處理機:進程正常終止,運行過程發生堵塞,進程主動請求堵塞(等待I/O)

2)當前運行進程被動放棄處理機:分配給進程的時間片用完了 ,有更緊急的事需要處理(如I/O中斷),有更高優先級的進程進入就緒隊列

2,什麼時候不能進行進程調度?

1)在處理中斷的過程:中斷處理過程複雜,與硬件密切相關,很難做到在中斷處理過程進行進程切換

2)進程在操作系統內核程序臨界區中

3)在原子操作過程中(源語):原子操作不可中斷,要一氣呵成(如修改pcb中的進程狀態,並把pcb放到相應的隊列)

 

二,切換與過程:

1,“狹義的調度”與“切換“的區別是什麼?

1)狹義的進程調度:從就緒隊列選一個要運行的進程(這個進程可以是剛剛被暫停的進程,也可以是另一個進程)

2)進程切換:指一個進程讓出處理機,由另外一個進程佔用處理機的過程

3)廣義的進程調度:包含了選擇一個進程和進程切換兩個步驟

 

2,進程切換過程需要做什麼?

1)對原來運行的進程各種數據進行保存

2)對新的進程各種數據的恢復

 

3,注意:

進程切換是有代價的,因此如果過於頻繁的進行進程調度,切換,必然會使得整個系統效率降低,使得系統大部分時間都花在線程切換上,而導致真正執行進程的時間減少

 

三,方式:

1,非剝奪調度方式(非搶佔式)

只允許進程主動放棄處理機。在運行過程中即便有更緊急的任務到達,當前進程依然會繼續使用處理機,直到該進程終止或者主動要求進入堵塞態。

特點:實現簡單,系統開銷小但無法及時處理緊急任務,使用與早期的批處理系統

2,剝奪調度方式(搶佔式)

當一個進程在處理機上執行時,如果有一個更重要或更緊迫的進程需要處理機,則立即暫停執行進程,將處理機分配給更緊急的進程

特點:可以優先處理緊急的進程,也可以實現讓各個進程按時間片輪流執行的功能。更適用於分時操作系統,實時操作系統

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章