線程(或任務)將通過使用大量的cpu來損失動態優先級,並通過使用更少的CPU來獲得優先級。這些優先級究竟是如何爲n個線程計算的(使用正常調度策略SCHED_OTHER)?Linux 2.6.x中計算的線程動態優先級如何?
6
A
回答
1
從this
引述的Linux 2.6.8.1調度獎勵I/O密集型任務,並通過添加或從一個任務的靜態 優先減去懲罰 CPU密集型任務。調整後的優先級稱爲任務的動態優先級, ,可通過任務的prio變量(例如,p-> prio,其中p 是任務)訪問。如果某個任務是交互式的(調度程序的用於綁定I/O 的術語),則會提高其優先級。如果它是一個CPU豬,它會得到一個 罰款。在Linux 2.6.8.1調度程序中,最大優先級獎勵爲 5,最大優先級懲罰爲5.由於調度程序使用 獎金和罰金,因此對任務的靜態優先級的調整值爲 。一個溫和的具有-2的好CPU值的CPU可能具有0的動態優先級,這與既不是CPU也不是I/O 豬的任務相同。
我覺得這是一個公平的解釋。根據它是CPU綁定線程還是I/O綁定線程來計算優先級。關於你在問題中提到的內容,gain priority by using less of CPU
通過互動(I/O綁定)而變得更加重要。我希望這個摘錄回答您的查詢...
相關問題
- 1. 線程優先級
- 2. 流程優先與線程優先級
- 3. 如何在Windows NT中獲得線程的動態優先級?
- 4. Windows和Linux線程優先級等價
- 5. 如何增加Linux中的QT Gui線程優先級
- 6. 如何指定線程優先級?
- 7. Android的線程優先級
- 8. 線程優先級的Android
- 9. 基於Excel中的優先級計算
- 10. 線程內線程的優先級
- 11. Linux APIC中斷優先級
- 12. 更改線程優先級
- 13. 在Linux中更改線程優先級和調度程序
- 14. 在Linux中增加線程的優先級
- 15. 通過了解線程的優先級來設置線程的優先級
- 16. 具有動態項目優先級的優先級隊列
- 17. Java中的高優先級線程
- 18. 如何增加pthread中的線程優先級?
- 19. 使用Boost在Linux中設置線程優先級
- 20. 線程 - 優先級突發事件與優先級
- 21. 使用accept()(Linux)的Boost線程的性能/優先級
- 22. ANTLR4中的動態運算符優先級和關聯性?
- 23. 用運算符優先級計算一個進程
- 24. 在最大優先級線程之前,最低優先級線程是如何執行的?
- 25. 優先級隊列中的優先級
- 26. 線程消息之間的優先級?
- 27. 線程的延遲優先級更改
- 28. 降低Task.Factory.StartNew線程的優先級
- 29. NSOperationQueue VS並行線程的優先級
- 30. ThreadPoolExecutor和Android的線程優先級
完全公平調度程序(CFS),又名SCHED_NORMAL或SCHED_OTHER,記錄在這裏[https://github.com/torvalds/linux/blob/master/Documentation/ scheduler/sched-design-CFS.txt)並在[here](https://github.com/torvalds/linux/blob/master/kernel/sched/fair.c)中實現。 – indiv 2014-08-30 01:04:34