簡述
方式 | 解釋 |
---|---|
短程調度 | 從準備隊列中選擇線程送到CPU執行 |
中程調度 | 從將外存中掛起的線程中選擇線程送到內存 |
長程調度 | 從外存中選擇一個任務(作業)送到內存中,爲之創建線程,並將這個線程加入準備隊列 |
簡單結構
短程調度
又叫低級調度,習慣上所說的進程調度指的就是短程調度,短程調度是指將準備隊列(Ready)中的進程調度到CPU中執行
中程調度
掛起有兩個隊列,就緒掛起和阻塞掛起
從內存的準備隊列中被掛起的線程會進入就緒掛起隊列
從內存的阻塞隊列中被掛起的線程會進入阻塞掛起隊列
在掛起狀態時,阻塞掛起隊列中的線程會繼續執行阻塞,如果直到阻塞完成還沒有被調入內存的話,他就會進入就緒掛起隊列
中程調度又稱中級調度, 是指掛起之間的調度,他是將在外存中被掛起的、還未執行完畢的進程調回內存,調回內存時會根據他的掛起類型,進入阻塞隊列或者準備隊列
長程調度
又叫高級調度,作業調度,隨着CPU的執行,就會一些線程被執行完,內存中線程數量減小,爲了讓CPU高效率運行,就要拿一些任務到內存中執行,有兩種方式
- 通過中程調度把外存中掛起的線程拿回內存執行
- 將外存中“想要執行的其他任務(作業)”拿到內存中,併爲其創建線程,等待執行
這第二種方法就是所謂的長程調度