zoukankan      html  css  js  c++  java
  • 【RTOS】《基于嵌入式实时操作系统的程序设计技术》——任务的划分与封装

    任务的划分与封装

            关键任务的划分处理

            对于某些对于系统的正常运作至关重要,少执行一次会对系统产生较大影响的功能,我们倾向于将它从原有任务中剥离出来,称为关键任务,用一个独立任务或者ISR(如外部中断)执行,由于关键任务的核心地位,关键任务一般需要与其他任务进行通信,而一般情况下,我们会创建一个单独的消息分发任务,由外部中断与消息分发任务通信,再由消息分发任务与其他任务通信,注意消息分发任务的优先级要高于所有操作任务,而对于uCOSii,消息发送函数OSMboxPost(),具有广播功能,发送一条消息就可以使所有等待该消息的任务进入就绪态

            如采用单独创建关键任务的方法,必须确保关键任务由足够高的优先级和查询频率

            紧迫任务的划分处理

            紧迫任务具有很高的实时性要求,由于大多数紧迫任务是由异步事件触发的,最优的手段依旧是将其安排在ISR里,注意对于紧迫任务,要尽可能精简,将 “不那么紧迫” 的部分剥离另外封装

            对于又关键又紧迫的任务,按紧迫任务处理

            数据处理任务的划分处理

            数据处理任务一般是用户应用程序中耗时最多的部分,对于为不同功能服务的单元,应将这些单元划分包装成不同的任务,对于耗时较多的任务,通常安排较低的优先级

            功能聚合任务的划分处理

            对于关系密切的若干功能,何以合成一个任务

            触发条件相同的任务划分处理

            对于若干功能又相同事件触发的任务,可以将他们合成一个任务避免冲突

            顺序操作任务之间没有并发性,合成一个任务

     不好意思水了一篇

  • 相关阅读:
    MySQL sys Schema 简单介绍-2
    dubbo服务+Spring事务+AOP动态数据源切换 出错
    sql 查询优化
    spring事务-说说Propagation及其实现原理
    Redis 分布式锁
    三、操作符
    二、一切皆是对象
    一、对象导论
    SpringMVC工作原理
    数据库性能优化策略
  • 原文地址:https://www.cnblogs.com/ZYQS/p/15114861.html
Copyright © 2011-2022 走看看