请教一个关于线程调度的问题。

发布于 2022-09-17 22:21:08 字数 214 浏览 9 评论 2

大家好,请教个问题, 就是 时钟中断的粒度会随着运行的线程总数的改变而改变吗?  一个线程在user space 满负荷运行和 100个线程在user space 满负荷运行,对于整个系统而言,总的上下文切换数是不是大致一致的? 发生时钟中断,一定会导致上下文切换吗?  目前主流计算机的时钟中断的粒度大概是多少? 有无源代码可引用?  问题有点多,望高手相助,谢谢!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

半城柳色半声笛 2022-09-19 08:53:27

只要中断不被锁掉,一般来说它的粒度和用户态的程序是无关的。

至于一个线程和100个线程满负荷在用户态运行,不知道你说的开销指什么?
1. 如果是时间中断抢占的开销,那么应该是一样的。
2. 如果是指一次线程切换,那看是什么系统,不同的系统中实现不一样。
3. 总切换时间因系统而言,如果是抢先式系统,100个满负荷可能就是最高的那个在运行;
   而对于分时系统,总效果肯定会下降。所以多线程更多的是用于大多数时候阻塞在I/O上的
   场景,对于纯计算的程序,在同一个CPU上一个线程一直跑总体效率是最高的。

时钟中断是上下文切换的两大点之一,但并不一定非要产生切换,有可能结束之后还返回到原来的线程
继续执行。
粒度大概是多少不太好讲,和你具体的应用有关,许多系统中定时处理都会通过时钟中断来产生。源代码
Linux、BSD等系统都是开源的,很容易看到;VxWorks等嵌入式系统早期的代码在网上也可以找到。

雪若未夕 2022-09-19 01:03:36

俺也想知道,帮顶

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文