5323|9

70

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

windows/linux下线程调度问题 [复制链接]

如题
操作系统为每个线程分配了一些时间片,操作系统是根据什么分配时间片大小的?

操作系统的调度程序是什么时候触发的,或者是在什么条件下调度程序开始执行?

最新回复

不同操作系统的调度机制不同,对于wince,是基于时间片的优先级调度,优先级高的先执行,此时低的被阻塞,相同优先级线程,通过时间片来调度!  详情 回复 发表于 2009-10-30 11:37
点赞 关注

回复
举报

62

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
"操作系统为每个线程分配了一些时间片,操作系统是根据什么分配时间片大小的? "

时间片的大小是可以设置的。 一般有一个默认值.
 
 

回复

83

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
时间片的大小是内核内部设定的

基于时间片轮转调度算法,在时间片用完的时候,会触发调度函数

另外,进程/线程主动放弃CPU时,也会触发调度函数
 
 
 

回复

78

帖子

0

TA的资源

一粒金砂(初级)

4
 
学习了
 
 
 

回复

78

帖子

0

TA的资源

一粒金砂(初级)

5
 
这个问题很关注
 
 
 

回复

70

帖子

0

TA的资源

一粒金砂(初级)

6
 
说实话,很感兴趣,但在应用中没接触到
 
 
 

回复

83

帖子

0

TA的资源

一粒金砂(初级)

7
 
希望高手指点
 
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

8
 
linux时间片和进程调度在2.60以后发生了很大的变化,加入了很多优秀的算法,大致的说,时间片是由内核在创建每个任务的时候根据任务的优先级给的,优先级高的给的多,优先级低的给的少,当然,2.60以后又有了新的情况,就是判断阻塞行进程和io消耗型进程,两种方式对资源的利用率不同内核会有相应的算法去搞定,会达到一个相对利用率很高的平衡,调度程序就是进程调度程序,这里有个优先级算法,这是进程调度的核心,实时系统和非实时系统的区别就在这里体现,操作系统内部有个systick的时间片,就是单位时间,每次时间到了都调用中断,然后判断当前进程时间片是否用完,是否有优先级更高的进程在排队,然后要么跑新进程,要么仍旧跑老进程,,然后继续跑程序,大致过程就是这样,具体的估计这个版面都写不下了,看书去吧,还有,这些都是linux的,windows的具体调度算法没人知道,只有问微软了。
 
 
 

回复

81

帖子

0

TA的资源

一粒金砂(初级)

9
 
在WINce OAL里面,可以通过设置dwDefaultThreadQuantum,来设定每个线程默认的时间片大小,一般为100毫秒。也可以为单个线程设置时间片,CeSetThreadQuantum,也可以CeGetThreadQuantum获取某个线程的时间片。
DWORD CeGetThreadQuantum(
  HANDLE hThread
);
返回值就是时间片大小,单位是毫秒
BOOL CeSetThreadQuantum(
  HANDLE hThread,
  DWORD dwTime
);
设置线程时间片大小
 
 
 

回复

85

帖子

0

TA的资源

一粒金砂(初级)

10
 
不同操作系统的调度机制不同,对于wince,是基于时间片的优先级调度,优先级高的先执行,此时低的被阻塞,相同优先级线程,通过时间片来调度!
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表