操作系统(RTOS)的任务划分原则1

一、ucos中任务优先级分配原则

ucos是一个可剥夺性内核的操作系统。所以每一个任务都必须有一个优先级。ucos操作系统中任务的优先级使用一个8位整型数据来表示的。比如我们的0,1,2,3这些数,UCOS任务优先级的取值范围为 0 - OS_LOWEST_PRIO之间,数字越小,优先级越大。
静态优先级
这个优先级被分配以后,它在任务的运行过程中,或者说在这个系统的运行过程中,它的优先级就不能变了,比如说,我们把这个优先级分配为2,那这个任务在运行过程中就一直为2,没办法变成其他的优先级。
动态优先级
在任务的运行过程中,它本身是2这个优先级,但是在运行过程中,它还可以变成3,变成4,变成n这个数,那这个过程就被称为动态优先级,也就是说这个优先级在系统的运行过程中,会出现一个可以变化的过程,ucos是一个支持动态优先级的一个系统,也就是说,我们的ucos可以在系统运行的过程中,来更改一个任务的优先级,这点我们需要注意。
对任务优先级分配首先需要做的有哪些事情呢?
假设系统中有1,2,3,4,5,这5个任务,第一个任务对我们开关的输入信号进行扫描,第二个任务处理我们的按键,第三个任务处理我们的串口通信,第四个任务进行我们的系统逻辑处理,比如我们的开关量输出,第五个任务运行我们的LCD屏显示,假设我们对这5个任务分配优先级怎么分配呢?
第一个我们必须把前3个任务的分配优先级要比后两个要高,为什么呢?因为从逻辑上来说,我们是首先进行开关量扫描,进行按键处理,进行串口通信,接下来,才进行逻辑处理,因为在逻辑处理当中,我们有可能用到开关量扫描,按键处理,和串口等等这些信息,所以说我们分配优先级的时候前3个任务的分配优先级要比后两个要高,对于这个输出和LCD屏显示,我们来看看这两个怎么处理,首先一般来说LCD屏显示是一个比较缓慢的过程,因为LCD屏显示是一个慢速的设备,那第四个逻辑处理和开关量输出运行速度比较快,那我们就把第四个的优先级要比第五个的高一点。
那也就是说,对于一个任务,它运行的时间越短,分配的优先级越高,这是为什么呢?非常简单,因为我们刚刚说了ucos是一个可剥夺性内核,也就是说,如果有高任务在运行,那么这个低任务它是没办法运行的,那如果这个任务占用的时间比较少,我们就把它放到一个较高的任务上,那它就能很快的执行完毕,这样我们的CPU就可以较快的执行一些其他的任务了,这个是我们在使用优先级分配的一个问题,优先级的分配不是那么容易的,我们对一个比较好的操作系统要好好来考虑这个优先级的分配,如果优先级的分配的不好,就可能出现——优先级反转。
任务优先级分配的原则
  1、对于实时性要求高的任务应该分配较高的优先级。
  比如我们刚刚举例的串口运行任务,我们都知道当串口接收到一个数据以后,它需要在一定的时间内把这个数据处理完,并且返回到上位机,上位机是不可能一直等待这个数据的,所以说我们对这个串口的执行它就有一个时间的要求,也就是实时性要求较高,那对于这个任务,我们就要分配一个较高的优先级。
  2、对于运行速度较快的任务应该分配较高的优先级。
  3、任务在逻辑之前的要分配较高的优先级。
就是我们刚刚说的,我们首先是扫描开路,扫描按键,接下来我们才能进行逻辑的处理。所以说我们的扫描开路,扫描按键要比逻辑处理的优先级要高,否则的话,我们还没有进行开关量扫描,已经开始处理逻辑了,这个时候,就发生了一个错误。

二、多任务划分原则

谈几点多任务的划分原则:任务划分是必须清楚的认识到任务的性质和特点然后根据具体的特点对人物的优先级、堆栈等运行属性进行划分
1、设备依赖性原则:无论是通信,还是采集亦或是控制类任务都对设备具有不同程度的依赖性,同时因为外部设备的特点不同将导致任务的属性也发生变化,比如通信任务一般情况下外部设备的运行速率比主控芯片较低,所以在任务的执行周期,和任务的运行时间需要调整。“输入输出设备的速度差别是任务“并发运行的基础”。所以通常将不同输入输出设备划分为不同的任务独立运行。
2、关键任务:关键性,一个系统中必有其关键功能,可以是一个也可以是多个,对于关键性任务划分的原则是使其功能独立,优先级较高,通过信号量或则消息与其他人物进行通信,简化关键任务的体积,尽可能的与其他任务剥离。
3、紧迫任务:紧迫性:是指一些具有较高的实时性要求的任务,严格地执行周期。大多数紧迫任务都由异步事件触发,这些异步事件一般能够引发某种中断,所以将任务安排在ISR中较为合适,
4、数据处理任务:通常一个系统必定会有大量的数据计算,这种数据计算通常会耗费大量的CPU时间,所以处理不当将会严重影响其他任务的实时性,比如如果一个任务具有较高的优先级,而且任务重含有大量的数据计算模块,将会长时间的占有CPU,严重影响其他任务的运行。
5、功能聚合任务:功能密切的任务封装为一个任务,节省通信时间,功能密切一般分为数据关系密切和时序关系密切。
6、同等触发任务:触发条件相同的任务划分为一个任务。

  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值