免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3079 | 回复: 2
打印 上一主题 下一主题

请教一个关于线程调度的问题。 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-12-16 20:53 |只看该作者 |倒序浏览
大家好,请教个问题, 就是 时钟中断的粒度会随着运行的线程总数的改变而改变吗?  一个线程在user space 满负荷运行和 100个线程在user space 满负荷运行,对于整个系统而言,总的上下文切换数是不是大致一致的? 发生时钟中断,一定会导致上下文切换吗?  目前主流计算机的时钟中断的粒度大概是多少? 有无源代码可引用?  问题有点多,望高手相助,谢谢!

论坛徽章:
0
2 [报告]
发表于 2010-12-17 14:34 |只看该作者
俺也想知道,帮顶

论坛徽章:
0
3 [报告]
发表于 2010-12-24 10:24 |只看该作者
只要中断不被锁掉,一般来说它的粒度和用户态的程序是无关的。

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


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

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP