Scheduler的工作是決定在哪一個時間點上要執行哪一個Process,決定的方法取決於Scheduler所選用的演算法,演算法的部分會在明天介紹。Scheduler依照排序的頻繁程度,分為三種:
short-term發生的頻率非常頻繁,可能每秒會做個十次以上,最基本的觸發是Time Sharing的timer(確保一定時間一定會被interrupt)、使用者去呼叫system call、或者在執行時遇到了要等待的I/O。目的是找到所有process平均等待時間最短的schedule。
Medium-Term scheduler控制Process要存在主main memory或secondary memeory之中,他的行為有兩件事情
Medium-Term scheduler跟virtual memory是結合在一起的,virtual memory的概念很簡單,因為記憶體的大小往往比硬碟來的小很多,virtual memeory是將硬碟的空間拿來當memeory使用,因此才會有一個虛擬(virtual)的單字出現。
Long-term scheduler控制的是這台電腦上面有多少個程式在記憶體裡面,如果太少支程式在跑很有可能會全部一起卡在I/O,CPU都在idle的狀態,反過來說如果有太多程式在記憶體裡面,還是互相在爭取memeory的資源,還是一樣會是I/O bound。Long-term sheduler怎麼去選process會對效能影響很大,最大的目的就是讓CPU的執行時間和IO重疊,最好兩個需要的時間是相同的。
不過上面有關Long-term scheduler說的事情都已經是過去式了,因為現在的記憶體非常的大,Long-term sheduler基本上已經不需要了,使用者launch後就直接load到memory,在由medium-tern一塊去處理。