任务的划分与封装

关键任务的划分处理

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

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

紧迫任务的划分处理

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

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

数据处理任务的划分处理

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

功能聚合任务的划分处理

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

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

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

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

不好意思水了一篇

最新文章

  1. 【转】C# GET 和 SET作用
  2. LINQ LINQ Operators and Lambda Expression - Syntax & Examples
  3. August 8th 2016, Week 33rd Monday
  4. Iconfont矢量图标平台全面升级
  5. 使用Maven搭建Struts2+Spring3+Hibernate4的整合开发环境
  6. hibernate.cfg.xml文件的说明
  7. LeetCode--判断二叉树是否对称
  8. 改变UITableViewCell按下去的颜色
  9. 基于visual Studio2013解决C语言竞赛题之0509杨辉三角
  10. Jquery清除:hover事件
  11. 1、手把手教你Extjs5(一)搭建ExtJS5环境
  12. 一个DOM元素同时拥有多个类名时的样式产生冲突时 属性取决于css样式表中后读取到的属性
  13. quartus2中FPGA管脚分配保存方法(转)
  14. yii2 源码分析 model类分析 (五)
  15. AOP注解使用详解
  16. 知其然而所以然:Operating System 概述和学习图
  17. installers PHPManager
  18. 2-3 vue配置介绍
  19. 怎样写SQL语句可以提高数据库的性能
  20. vue 的过滤器

热门文章

  1. Java笔记_成员方法传参机制
  2. CCF 201912-2 回收站选址
  3. Linux 第七节(LVM,网卡配置)
  4. 基于Vue项目+django写一个登录的页面
  5. docker-compose任务编排
  6. 尝试window10系统下使用appuim获取ios元素
  7. Unity打开两个同样的工程,使用mklink.bat来进行同步
  8. NetBeans的一些快捷键
  9. 建筑CAD软件如何设置当前默认层高?
  10. JavaScript的原型和原型链