系统节拍,求指教

[复制链接]
2761|23
 楼主| dj狂人 发表于 2014-4-5 16:18 | 显示全部楼层 |阅读模式
最近用MCU-51在学msOS,以前玩单片机都是大循环,最多也就用用中断,典型的裸奔。头一次接触系统架构式编程,注册什么的还好理解,就是弄不明白系统节拍是什么意思。有资料介绍说系统节拍是为提高效率,解决某些延时造成的资源浪费,可系统节拍下程序是怎么运行的呢。求详细讲解
 楼主| dj狂人 发表于 2014-4-5 16:25 | 显示全部楼层
自己顶一个
wangch_sh 发表于 2014-4-6 10:20 | 显示全部楼层
系统节拍就是一个固定的时间,给每个任务分配一个节拍时间,每个任务运行这么长时间,再转到下一个节拍,运行下一个任务。
 楼主| dj狂人 发表于 2014-4-6 12:06 | 显示全部楼层
那如果在下一个节拍到来之前这个任务还没完成呢
 楼主| dj狂人 发表于 2014-4-6 12:07 | 显示全部楼层
wangch_sh 发表于 2014-4-6 10:20
系统节拍就是一个固定的时间,给每个任务分配一个节拍时间,每个任务运行这么长时间,再转到下一个节拍,运 ...


那如果在下一个节拍到来之前这个任务还没完成呢
wangch_sh 发表于 2014-4-6 12:35 | 显示全部楼层
没完成转到下一个任务。要不然跟裸奔还有什么区别?
cool_coder 发表于 2014-4-6 15:23 | 显示全部楼层
系统节拍就是系统中的一个专用定时机制,它是完成系统延时服务和任务调度等核心功能的基础。
tiantianlianxi 发表于 2014-4-6 17:24 | 显示全部楼层
用中断设定一个固定的时间间隔,每隔一次进一次中断,你然后根据这个状态在主函数进行判断,执行相应的子函数就可以了
 楼主| dj狂人 发表于 2014-4-6 20:34 | 显示全部楼层
tiantianlianxi 发表于 2014-4-6 17:24
用中断设定一个固定的时间间隔,每隔一次进一次中断,你然后根据这个状态在主函数进行判断,执行相应的子函 ...

这个倒是知道,只是刚开始接触这些,好多东西绕不过来。我再研究研究,呵呵
 楼主| dj狂人 发表于 2014-4-7 09:54 | 显示全部楼层
wangch_sh 发表于 2014-4-6 12:35
没完成转到下一个任务。要不然跟裸奔还有什么区别?

如果放弃未完成任务的话,那不是在断点后面设置个标志位强行退出当前任务,因为中断发生执行完中断后回到断点的嘛,那这个这个标志位应该放哪呢,毕竟不知道程序执行到哪中断发生。我这样理解对吗
ningling_21 发表于 2014-4-7 10:24 | 显示全部楼层
dj狂人 发表于 2014-4-7 09:54
如果放弃未完成任务的话,那不是在断点后面设置个标志位强行退出当前任务,因为中断发生执行完中断后回到 ...

不是设置标志这么简单,还要保存当前任务的现场到堆栈,然后切换到下一个任务...
 楼主| dj狂人 发表于 2014-4-7 10:34 | 显示全部楼层
ningling_21 发表于 2014-4-7 10:24
不是设置标志这么简单,还要保存当前任务的现场到堆栈,然后切换到下一个任务... ...

“保存现场到堆栈,然后切换到下一个任务....”难道未完成的当前任务延后执行?
 楼主| dj狂人 发表于 2014-4-7 10:36 | 显示全部楼层
ningling_21 发表于 2014-4-7 10:24
不是设置标志这么简单,还要保存当前任务的现场到堆栈,然后切换到下一个任务... ...

可是一般要用到系统架构的,都是有多任务的要求,要是任务个数达上限或者有多任务未完成依然要延后吗
ningling_21 发表于 2014-4-7 10:42 | 显示全部楼层
dj狂人 发表于 2014-4-7 10:34
“保存现场到堆栈,然后切换到下一个任务....”难道未完成的当前任务延后执行? ...

NO,有些OS的各个任务是分成时间片的方式轮流执行,这次没执行完下次接着执行...
ningling_21 发表于 2014-4-7 10:44 | 显示全部楼层
dj狂人 发表于 2014-4-7 10:36
可是一般要用到系统架构的,都是有多任务的要求,要是任务个数达上限或者有多任务未完成依然要延后吗 ...

程序中的任务大多数不可能执行完,否则,如果都执行完岂不是陷入无限死循环了...
mailiang98 发表于 2014-4-7 10:50 | 显示全部楼层
就一计时单位而已
 楼主| dj狂人 发表于 2014-4-7 10:51 | 显示全部楼层
ningling_21 发表于 2014-4-7 10:42
NO,有些OS的各个任务是分成时间片的方式轮流执行,这次没执行完下次接着执行... ...

好吧,我再琢磨琢磨
 楼主| dj狂人 发表于 2014-4-7 10:56 | 显示全部楼层
mailiang98 发表于 2014-4-7 10:50
就一计时单位而已

呵呵,是计时单位,可我想知道这计时单位里消息机制、中断、大循环、任务切换之间的联系和整个架构系统的运转。哈,这方面是新手,多多指教
mailiang98 发表于 2014-4-7 11:03 | 显示全部楼层
本帖最后由 mailiang98 于 2014-4-7 11:06 编辑
dj狂人 发表于 2014-4-7 10:56
呵呵,是计时单位,可我想知道这计时单位里消息机制、中断、大循环、任务切换之间的联系和整个架构系统的 ...

那就别问人家了,别人讲个一天一夜也讲不完,图书馆找说系统本书看看,慢慢研究,不简单啊这个东西。但就一个时钟节拍来说,不就一个定时中断吗??消息机制、中断、大循环、任务切换这个就复杂了。
tang221986 发表于 2014-4-7 11:03 | 显示全部楼层
看场合,不是一定要用系统才高大上,有些应用必须要裸机的
您需要登录后才可以回帖 登录 | 注册

本版积分规则

15

主题

201

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部