免费注册 查看新帖 |

Chinaunix

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

请教关于linux2.4下面的多线程调度时间问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-06-05 16:16 |只看该作者 |倒序浏览
请教关于linux2.4下面的多线程调度时间问题


linux2.4.19,pthread库.

程序中开了几个线程,几个线程内都执行while(1)操作。

请问:线程切换的时间是什么级别的?  是ms级?10ms?100ms?还是微秒级别的

论坛徽章:
0
2 [报告]
发表于 2007-06-05 16:17 |只看该作者
原帖由 cquptcqupt2 于 2007-6-5 16:16 发表
请教关于linux2.4下面的多线程调度时间问题


linux2.4.19,pthread库.

程序中开了几个线程,几个线程内都执行while(1)操作。

请问:线程切换的时间是什么级别的?  是ms级?10ms?100ms?还是微秒级别的


看你内核定义的HZ是多少来决定.

论坛徽章:
0
3 [报告]
发表于 2007-06-05 16:31 |只看该作者
2.4的内核是100HZ。

难道线程切换调度的周期是 10ms?

论坛徽章:
0
4 [报告]
发表于 2007-06-05 16:36 |只看该作者
原帖由 cquptcqupt2 于 2007-6-5 16:31 发表
2.4的内核是100HZ。

难道线程切换调度的周期是 10ms?



不是. 只能说切换周期不可能低于10ms.
因为10ms是它时钟周期的时间, 进程切换只有高于这个时间.

论坛徽章:
0
5 [报告]
发表于 2007-06-06 15:22 |只看该作者
假如说我现在有2个线程,分别是生产者和消费者

生产者线程满足条件后发送满足条件变量,用pthread_cond_signal触发消费者线程,然后消费者线程执行。

1.在这个过程中,线程应该切换必须大于10ms? 2.消费者完毕后,切换到生产者又要花费大于10ms?

3.由于生产者的频率很快达到40ms一次,这样切换时间不是一来一去花费了很多??

4.linux2.6 HZ为1.
  它在实时性,或者切换所花费时间上比linux2.4内核好几个数量级?

论坛徽章:
95
程序设计版块每日发帖之星
日期:2015-09-05 06:20:00程序设计版块每日发帖之星
日期:2015-09-17 06:20:00程序设计版块每日发帖之星
日期:2015-09-18 06:20:002015亚冠之阿尔艾因
日期:2015-09-18 10:35:08月度论坛发贴之星
日期:2015-09-30 22:25:002015亚冠之阿尔沙巴布
日期:2015-10-03 08:57:39程序设计版块每日发帖之星
日期:2015-10-05 06:20:00每日论坛发贴之星
日期:2015-10-05 06:20:002015年亚冠纪念徽章
日期:2015-10-06 10:06:482015亚冠之塔什干棉农
日期:2015-10-19 19:43:35程序设计版块每日发帖之星
日期:2015-10-21 06:20:00每日论坛发贴之星
日期:2015-09-14 06:20:00
6 [报告]
发表于 2007-06-06 15:33 |只看该作者
原帖由 cquptcqupt2 于 2007-6-6 15:22 发表
4.linux2.6 HZ为1.

linux 2.6 的 HZ 为 1000.

论坛徽章:
0
7 [报告]
发表于 2007-06-06 15:39 |只看该作者
楼上说得对。
能否指点下其它问题

论坛徽章:
0
8 [报告]
发表于 2007-06-06 15:46 |只看该作者
HZ只是timer的频率,你的都是while(1),没有抢占,时间片完了才能换个线程执行

论坛徽章:
0
9 [报告]
发表于 2007-06-06 15:48 |只看该作者

回复 5楼 cquptcqupt2 的帖子

它其实不是指切换需要花那么多时间, 而是说需要那么多时间才会进行一次切换. 即切换频率.

论坛徽章:
0
10 [报告]
发表于 2007-06-06 15:52 |只看该作者
原帖由 cquptcqupt2 于 2007-6-6 15:22 发表
假如说我现在有2个线程,分别是生产者和消费者

生产者线程满足条件后发送满足条件变量,用pthread_cond_signal触发消费者线程,然后消费者线程执行。

1.在这个过程中,线程应该切换必须大于10ms? 2.消费者完毕后,切换到生产者又要花费大于10ms?

3.由于生产者的频率很快达到40ms一次,这样切换时间不是一来一去花费了很多??

4.linux2.6 HZ为1.
  它在实时性,或者切换所花费时间上比linux2.4内核好几个数量级?  


我记得不太清楚了,所以不敢保证什么。
pthread_cond_signal只是说那个线程可以运行了,但是它并不是马上运行,有可能它的优先级是很高,pthread_cond_signal返回的时候内核直接去运行那个线程了

有一点很重要,切换可以认为不花时间,比起10毫秒,它可以忽略,
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP