調度
三個調度:
• 長程調度決定把后備隊列中的哪些作業調入內存,創建進程並加入相應的隊列中
• 中程調度按一定的算法將“外存”中已具備條件的進程換入內存中,而將內存中處於阻塞狀態的某些進程換出至外存
• 短程調度決定從就緒隊列中哪一個進程應先獲得處理器,並將處理機分配給選定的進程
長程調度是“作業-進程”之間的調度,中程調度是“掛起-激活”之間的調度,短程調度是“就緒-運行”之間的調度
長程調度(也叫高級調度、作業調度)
(1)長程調度決定哪一個程序何時可以進入到系統中處理
(2)決策1:何時創建一個新進程。由要求的系統並發度驅動。創建的進程越多,每個進程可以執行的時間百分比就越小
(3)決策2:加入哪一個新進程。基於簡單的先來先服務原則、基於管理的系統性能的工具等(優先級、期待執行時間和I/O需求)
(4)執行的頻率最低
中程調度(也叫中級調度)
(1)為提高系統吞吐量和內存利用率而引入的內外存對換功能(換出 時,進程為掛起狀態),主要涉及內存管理與擴充
(2)將進程的部分或全部加載到內存中
(3)換入決策基於管理多道程序並發程度的要求
(4)執行的頻率比長程調度要頻繁些
短程調度(也叫低級調度、進程調度)
(1)執行得最頻繁,要求在實現時達到高效率
(2)短程調度程序也稱作分派程序
(3)主要任務:按照某種策略和方法選取一個處於就緒狀態的進程占用處理機,包括
-保存處理機現場信息
-按某種算法選取進程
-把處理機分配給進程
(4)短程調度的三個基本機制:排隊器、分派器、上下文切換機制
引起進程調度的事件包括:
(1)時鍾中斷(例如時間片用完)
(2)I/O中斷
(3)操作系統調用
(4)信號(例如在信號量上的wait操作,使進程阻塞)
(5)搶占方式下,就緒隊列中出現某更高優先權的進程