线程(或任务)将通过使用大量的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和Linux线程优先级等价
- 4. Android的线程优先级
- 5. 线程内线程的优先级
- 6. Linux APIC中断优先级
- 7. 更改线程优先级
- 8. 在Linux中增加线程的优先级
- 9. 通过了解线程的优先级来设置线程的优先级
- 10. 具有动态项目优先级的优先级队列
- 11. Java中的高优先级线程
- 12. 如何增加pthread中的线程优先级?
- 13. 使用Boost在Linux中设置线程优先级
- 14. 优先级队列中的优先级
- 15. .NET Backgroundworker对象的线程优先级
- 16. 线程消息之间的优先级?
- 17. 降低Task.Factory.StartNew线程的优先级
- 18. NSOperationQueue VS并行线程的优先级
- 19. 为什么新线程中getPriority的优先级与调用线程中的优先级不同?
- 20. Linux线程优先级,行为不正常
- 21. 如何获得Windows Kernel中的线程优先级?
- 22. OS X中的低优先级I/O
- 23. 具有动态优先级的MSMQ
- 24. Linux的 - 当较高优先级任务是较低忙优先级的线程未被调度
- 25. 线程池中的C#低线程优先级
- 26. Linux中的新进程从父进程的优先级继承
- 27. 是nice()用来改变线程优先级还是进程优先级?
- 28. java运算符优先级y = x +(x = 10);
- 29. PHP:运算符优先级
- 30. JavaScript运算符优先级
完全公平调度程序(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