iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 16
1

Scheduler的工作是決定在哪一個時間點上要執行哪一個Process,決定的方法取決於Scheduler所選用的演算法,演算法的部分會在明天介紹。Scheduler依照排序的頻繁程度,分為三種:

  • Short-term(Run State): CPU要執行哪一個process的scheduler,為了time-sharing,所以非常的頻繁去做。
  • Long-term(Ready State): 決定Disk 要load哪個process到memory的 scheduler,基本上launch program這件事情是人為操作的,所以相對久很多
  • Medium-term(Wait State) : 因為Memory有限,會把部分disk拿來當memory用,當記憶體不足的時候需要把一些process丟回disk(virtual memory),這個來回的動作就叫做swapped in/out

Short-Term Scheduler

short-term發生的頻率非常頻繁,可能每秒會做個十次以上,最基本的觸發是Time Sharing的timer(確保一定時間一定會被interrupt)、使用者去呼叫system call、或者在執行時遇到了要等待的I/O。目的是找到所有process平均等待時間最短的schedule。

Medium-Term Scheduler

Medium-Term scheduler控制Process要存在主main memory或secondary memeory之中,他的行為有兩件事情

  • swap out -> 把process從main memeory搬離
  • swap in -> 把搬離的process重新搬回main memeory

Medium-Term scheduler跟virtual memory是結合在一起的,virtual memory的概念很簡單,因為記憶體的大小往往比硬碟來的小很多,virtual memeory是將硬碟的空間拿來當memeory使用,因此才會有一個虛擬(virtual)的單字出現。

Long-term sheduler

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一塊去處理。


上一篇
Day 15 - CPU Scheduling
下一篇
Day 17 - Scheduling Algorithm
系列文
非本科系也能懂和該懂得作業系統30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言