首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >操作系统调度算法

操作系统调度算法
EN

Stack Overflow用户
提问于 2009-03-31 15:57:55
回答 5查看 3.4K关注 0票数 3

对于支持10K并发线程、I/O繁重但CPU使用率低的应用程序,最好的调度算法是什么?链接到论文是赞赏的。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2009-03-31 16:08:17

你为什么不使用SCHED_RR呢?您自己说过:低CPU使用率。当您希望执行一些繁重的I/O时,您甚至可以优化该进程,以便您的调度频率低于其他进程。

不过,总的来说,为什么不让操作系统做它最擅长的事情,而只是担心写出高效的代码呢?操作系统将知道您正在进行阻塞I/O调用,并将您的线程/任务放入等待队列中,然后选择另一个任务来运行。你不需要担心这些细节。

票数 4
EN

Stack Overflow用户

发布于 2009-03-31 17:11:21

实际上,我相信任何调度机制都不会完美地处理这个数量的线程,因为内核中的管理表将变得非常大。

如果可能,我建议在你选择的操作系统上重写应用程序,使用异步I/O,select()或类似的东西。

票数 1
EN

Stack Overflow用户

发布于 2009-04-01 05:24:26

为此,您可能需要使用SCHED_RR。你可能会有兴趣阅读这个关于difference between SCHED_FIFO and SCHED_RR的问题。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/701721

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档