为什么内核需要那么复杂的调度算法,需要不断更新新算法
内核调度算法总在研究和发展中,有什么用呢?
现在服务器很便宜,一般都是多个服务器完成以一个繁忙的应用,极少一个服务器上部署多个繁忙的应用.
至于客户端,更不可能有很多繁忙的应用在跑
所以我就不明白,既然应用和进程那么少,何苦还要那么复杂的算法,一个核心跑一个应用,也就很少几个进程,所以经典的分时、优先级调度算法就够了,不需要那么复杂的算法,没有 那么多繁忙的线程线程需要调度
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(9)
{:2_171:}
考虑的因素太多了吧 这个算法不只是为了特定的环境而做的
一个系统400多个进程/线程,算不算多?
回复 1# fbwww
充分利用资源呗
如果400多个线程/进程都很繁忙,而cpu核心只有很少的几个,那系统肯定应付不来,你的调度算法再牛逼也没用,因为CPU资源就那么多,这样的系统只有拆分
如果400多个线程/进程只有2、3个总在忙碌中, 我想也不需要很复杂的调度算法,也不可能在这400多个线程/进程中去公平
我觉得,一个CPU核心不应该跑太多的忙碌的线程/进程,就一个CPU,你干嘛要划分那么多线程/进程呢?线程/进程多绝对不代表效率高或者速度快,除非是完全不同的应用,那你就要考虑这几个CPU是否应付得过来
太通用的东西绝对不可能对每个场景都很适用,不如针对自己的应用场景来优化调度算法
你参与过上百号人做出来的系统就知道了
并不是每个开发人员都nb的一塌糊涂,
并且没有进度压力的在哪儿精雕细琢
没有最好,只有更好呗。 而且体系结构也不是一成不变,也要适应变化吧。
就是一个不断优化的问题。就是用最佳的算法使得资源利用效率最高。进程调度有很多互相矛盾的目标,比如THROUGTHPUT 和响应时间等。如何同时满足这些目标本身就是一个很复杂的问题。。。
照lz的意思,啥虚拟内存啊,硬盘CACHE啊都不用搞了。不够就加内存呗。。。。
回复 10# accessory
口说无凭,能否举个实例,哪个内核版本的调度算法解决了什么实际问题,或者在哪些方面有显著改善?