OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2672|回复: 2

刚刚接触ucos,想问一下“时间片”这个概念,不知道我这样理解对不对

[复制链接]

33

主题

52

帖子

0

精华

高级会员

Rank: 4

积分
507
金钱
507
注册时间
2016-8-15
在线时间
79 小时
发表于 2017-2-17 11:35:50 | 显示全部楼层 |阅读模式
时间片,我的理解就是,比如时间片为5ms,那么系统中每个任务就是无限循环的每次执行5ms吗?
比如说现在有5个任务,那么就是第一个任务执行5ms,然后保存堆栈,退出来,再让第二个任务执行5ms,然后保存堆栈退出来,然后第三个。。。第四个。。。第五个。。。?那这样的话我是不是可以理解为,这还是一个大的单任务?无非就是这个单任务无限循环的将每个程序模块都能有时间去执行?

这样的话,在这5ms内执行一个任务时,其他任务是没有运行的吧?就是说每个5ms内只有一个任务在运行?

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

21

主题

387

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1043
金钱
1043
注册时间
2016-9-8
在线时间
213 小时
发表于 2017-2-17 11:42:02 | 显示全部楼层
和上位机的多线程编程一个道理,某一时刻只有一个线程在工作。调度器协调不同的任务抢占执行,只不过是避免了顺序执行任务的必要的延时。其实你可以把裸机的每个中断都看出uc的多线程。
shop60994719.taobao.com
回复 支持 反对

使用道具 举报

17

主题

344

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1280
金钱
1280
注册时间
2013-12-14
在线时间
567 小时
发表于 2017-2-17 12:05:53 | 显示全部楼层
不熟悉RTOS,但是时间片在裸机中,也有应用,比如时间触发+状态机的模式。
说一下我的理解。
这个5ms应该指的是任务调度的周期,而不是每个任务运行的时间。
可抢占内核的话,每隔5ms,就去检查,是否有更高的优先级任务就绪,有的话,就保存当前任务的现场,然后恢复更高优先级的现场,然后跳到高优先级的任务执行。
在裸机中,划分好时间片以后,要进行状态切换,我感觉也类似于任务调度,但是由于裸机是共享堆栈,所以每个状态的运行时间要尽可能的短。
半导体->模拟电路->数字电路->单片机->汇编->C->操作系统->java
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-12 11:13

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表