我们以前在将这个操作系统在进行多任务切换的时候,说过这样的概念操作系统怎么进行多任务切换呢?
首先它把这个时间进行分片,就是划分为1片1片的,比如说这个时间都以10毫秒划分为1个片,在第一个10毫秒中执行一个任务,在第二个10毫秒中执行另外一个任务,在第三个10毫秒中执行另外一个任务,这样的话,我们就进行了一个多任务的切换,多任务在切换的过程中,必须要使用的一个就是时钟节拍,时钟节拍实际上是一个定时器,这个定时器它定时的来切换我们的各个任务,比如这个任务执行10毫秒,那操作系统怎么知道执行10毫秒的时间有没有到达,或者说当这个任务主动放弃CPU的时候,那操作系统怎么知道你主动放弃了CPU,所以,在这里就要用到时钟节拍了。
时钟节拍实际上就是一个硬件定时器,就是由硬件给我们提供一个定时器,它定时一定的时间,比如说,我们定时1毫秒,那也就是说每隔1毫秒我来检查一下当前的这个任务状态,那比如说,在某一个时钟节拍中,我发现这个任务它的定时时间到了,它的执行时间到了,那我就让它执行下一个任务,把这个任务的执行权剥夺掉,然后执行下一个任务,或者说,在某一个时钟节拍中这个任务主动放弃了CPU,那这个时候,我也去执行下一个任务,这就是我们时钟节拍的作用。一个操作系统必须要有一个时钟节拍,为什么呢?
因为这个时间,还有任务状态的判断都与这个时钟节拍有关系。那接下来这个问题出现了,我们使用到的这个时钟节拍,并且我们知道时钟节拍是由硬件定时器提供的,那这个定时时间多长比较合适呢?我们定时1毫秒,还是10毫秒,还是100毫秒好,一般来说,我们来看看定时1毫秒和100毫秒有什么不同。
首先我们来看看定时1毫秒,定时1毫秒也就是说,每隔1毫秒,我们的CPU会来检查一下各个任务的状态,那CPU在检查这个任务的状态的时候,那我们可以看看,它在检查这个任务的状态的时候执行的代码对于我们任务来说,它是一个无用功,因为你在检查任务的状态的时候,这样的代码对于我们任务来说根本没有任何作用,所以说,我们可以看到,当你1毫秒中断一次,也就是每秒钟检查1000次,而我这个100毫秒,每秒钟只检查10次,那也就是说,你检查1000次,和检查10次,显然检查1000次做的无用功显然要远远大于检查10次,那我们从这可以看到,检查时间越短,那CPU做的无用功也就越多。
但是,我们看一下另外一个问题,假设我还是1毫秒进行一次时钟节拍,定时器定时1毫秒,假设在这个时刻,这个任务放弃了执行权,也就是说这个任务说,我不需要执行了,那从它放弃到我们CPU发现了这个最大时间间隔是1毫秒,为什么呢?
因为我们定时器定时的时间是1毫秒,那对于定时100毫秒呢,我们看一下,从这个任务放弃CPU使用,到操作系统发现了它的最大时间是100毫秒,那很显然,这个1毫秒要比100毫秒的实时性要好,所以我们可以看到如果定时器定时的时间越短,它的实时性越好,但是CPU做的无用功越多,同样,定时的时间越长,虽然CPU做的无用功越少,但是,它的实时性越差。那对于一个系统,我们的时钟节拍设置为多少合适呢?
一般来说,我们设置的时钟节拍在10-100毫秒之间是比较好的,当然,随着我们CPU时钟的提高,比如我们说我们这个CPU跑的时钟频率比较高,都跑到了100多M,比如128M,400M这样的频率,那这个时候,我们可以设置到1000赫兹,就是1毫秒这样的时间,一般来说,设置为1毫秒已经是实时性比较好了,那如果你设置为微秒级的话,那这个时候,CPU做的无用功就相当相当多了,那这个时候,我们的实时性也不会提升到多好。所以,一般来说,我们设置的时钟节拍在10-100毫秒之间。当然如果CPU的频率比较高,你可以设置到1000赫兹。
原文链接:http://www.maiziedu.com/wiki/iot/ucosclock/
相关推荐
UCOSLLL 时钟节拍 嵌入式基础知识
基于UCOS-II的多任务与系统时钟课程设计
ucosii 获取和更改系统节拍
uCOS-II系统详细解析(中文资料)
ucOS系统实验源码,配套使用开发板STM32F407ZGT6,值得参考学习。
嵌入式系统ucosii ,平台s3c44b0 学习的好资料。
讲述ucos实时嵌入式操作系统,讲的言简意赅,不错的学习资料,需要的伙伴们请拿走,谢谢!
ucos系统源码学习,及移植方法介绍,嵌入式实时操作系统ucos原理及应用
ucos-II的VC版本,可以在VC6.0下编译通过
uCOSII系统uCOSII系统uCOSII系统uCOSII系统uCOSII系统
搭建uCOS系统,实现ucGUI的系统构建。
自己写的一个类ucos嵌入式操作系统,针对ucosii的不足进行了提高,经过测试在性能不变的情况下,功能更强大了。
ucos中断和时钟.ppt
基于arm9和ucos的数字时钟 它具有以下特点: • 时钟数据采用BCD编码或二进制表示; • 能够对闰年的年、月、日进行自动处理; • 具有告警功能,当系统处于关机状态时,能产生告警中断; • 具有独立的电源输入; ...
uCOS-II源码详解.pdf
基于Samsung6410的Ucos系统
非常好的UCOS操作系统学习资料
本文主要介绍了基于基于MC9S12XS128 的UC/OS系统移植,参照 UCOS系统基于其他芯片的移植实例,完成硬件的制作和软件设计后对整个控制系统进行调 试, 先阐述了调试的策略, 再分别就现有调试工具条件下的脱机和调试...
ucos实现单片机上的时钟系统,并可以显示图像