930 likes | 1.32k Views
Linux Kernel Process Scheduling. 9662541 張文軒 9665510 許晉榮 9665531 林奕翔. 什麼是 Scheduling??. 簡單來說就是安排 Process 執行的順序. 那幹嘛要安排順序呢 ?. 要可以讓很多很多程式一起執行 要讓所有程 Process 都可以運作順暢 反應快速 不能讓 Process 插隊來 插隊去 要讓大家都公平 雖然要公平 但事情也事有輕重緩急. Linux process scheduling 用了什麼方法 ?. 就三個字 優先權.
E N D
Linux Kernel Process Scheduling
9662541 張文軒 9665510 許晉榮 9665531 林奕翔
要可以讓很多很多程式一起執行 要讓所有程Process都可以運作順暢 反應快速 不能讓Process插隊來 插隊去 要讓大家都公平 雖然要公平 但事情也事有輕重緩急
就三個字 優先權
Process preemption Heuristic algorithm
Scheduler v2.4 User mode User mode Kernel mode Scheduler v2.6 Kernel mode Kernel mode Process A Process B User mode User mode Scheduler v2.4 Scheduler v2.6
情非得已 大局為重
當然Process要是個可以執行 • TASK_RUNNING 要有暗號 TIF_NEED_RESCHED
老大來了 高優先權的Process 位子佔用得太久了 Exceeds time quantum
三個字 趕流行
那時間要分多少段? 一段又要多長?
太短會怎樣? 會很累 太長又會怎樣 會等很久
可以算出base time quantum Base time quantum = if static priority < 120 (140-static priority)*20 if static priority >= 120 (140-static priority)*5
當然有,而且這才是scheduler做scheduling真正的依據當然有,而且這才是scheduler做scheduling真正的依據 Dynamic priority = Max(100, min(static priority – bonus+5, 139))
dynamic priority<= 3*static priority/4 + 28 • Bonus -5 >= static priority/4 -28 static priority/4 -28 is called interactive delta
一般來說,process可以分成 Interactive process Batch process Real-time process CPU-bound or IO-bound process 要是可以適當的判斷,對於scheduling會有幫助
什麼是active process list? 那什麼又是expired process list?
在說明之前,先來說說kernel 2.4和2.6排程方法上的差異吧!