满足以下几个指标将会使软件设计比较简洁高效。

  • 满足实时性指标
  • 任务数目合理
  • 简化软件系统
  • 降低资源需求
  1. 设备依赖性划分:主要是对于一些输入输出设备进行划分,输入输出设备分为主动型和被动性。主动型有一个尽可能短的中断服务程序和一个与之关联的任务组成;被动性任务由于不能主动触发,必须有其他任务通过通信机制向该设备发出请求,激活该设备的相关任务。此类任务有键盘任务、显示任务、数据采集任务、控制输出任务和通信任务等。
  2. 发现关键功能,将其最关键部分剥离出来,用一个独立任务(或ISR)完成,剩余的部分用另外一个任务去实现,两者之间采用通信机制进行沟通。(关键任务是指:此任务对系统影响较大,如果少执行一次都会对系统造成重大影响)
  3. 发现紧迫任务,将其最紧迫部分剥离出来,用一个独立的高优先级的任务(或ISR)完成,剩余的部分用另外一个任务去实现,两者之间采用通信机制进行沟通。(紧迫性任务是指:此任务必须在规定时间内得到运权,并在规定时间之内执行完毕)
  4. 对于又关健又紧迫的功能,按紧迫功能处理。
  5. 将耗时较多的数据处理功能划分出来,封装为低优先级任务。(例如各种数据处理单元)
  6. 将关系密切的若干功能组合为一个任务,达到功能聚合的效果,省去任务之间负责的通行数据。
  7. 将相同事件触发的若干功能组合成为一个任务,从而免除事件分方法机制。
  8. 将若干周期相同的功能组合成为一个任务,避免一个时间事件触发几个任务,免除时间事件分发机制。
  9. 将若干按固定顺序执行的功能组合为一个任务,从而免除同步接力通信的麻烦。

uC/OSii之任务划分的更多相关文章

  1. uC/OS-II 内存管理

    UC/OS-II  内存管理 1. 简介    uC/OS-II 不使用ANSI编译器的malloc(), free(),因为内存碎片,很可能获取不到一块连续的内存, 这在嵌入式系统中是很危险的.同时 ...

  2. uC/OS-II中includes块

    /*************************************************************************************************** ...

  3. uC/OS-II实现TEST.MAK块

    ################################################################################                     ...

  4. uC/OS-II全局变量定义

    /*************************************************************************************************** ...

  5. uC/OS-II测试(TEST)块

    /*************************************************************************************************** ...

  6. uC/OS-II时间(OS_time)块

    /*************************************************************************************************** ...

  7. uC/OS-II信号(OS_sem)块

    /*************************************************************************************************** ...

  8. uC/OS-II任务(OS_task)块

    /*************************************************************************************************** ...

  9. uC/OS-II队列(OS_q)块

    /*************************************************************************************************** ...

随机推荐

  1. SSM报错:No converter found for return value of type: class java.util.ArrayList at org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodProcessor.writeWithMessageConverter

    我使用的是SSM框架,是在编写测试RESTFUL接口的时候出现, @RequestMapping(value = "/selectAll", method = RequestMet ...

  2. 【Ajax】接收后台数据在html页面显示

    Java代码 PrintWriter out=response.getWriter(); //向客户端发送字符数据 response.setContentType("text/text&qu ...

  3. Codeforces Round #395 (Div. 2) A

    Description Comrade Dujikov is busy choosing artists for Timofey's birthday and is recieving calls f ...

  4. 洛谷 P4585 [FJOI2015]火星商店问题

    (勿看,仅作笔记) bzoj权限题... https://www.luogu.org/problemnew/show/P4585 对于特殊商品,直接可持久化trie处理一下即可 剩下的,想了一段时间c ...

  5. JavaScript-获取当前元素的相关元素或节点--方法总结

    1.获取当前元素中的第一个子节点 document.getElementById("uu").firstChild 2.获取当前元素中的第一个子元素 document.getEle ...

  6. CodeForces - 816C Karen and Game(简单模拟)

    Problem Description On the way to school, Karen became fixated on the puzzle game on her phone! The ...

  7. Eclipse显示空白符,及使用google代码格式化

    启动Eclipse,打开Preferences对话框.菜单“window”-“Preferences”. 找到Text Editors,勾选show whitespace characters,如图: ...

  8. C#方法拓展

    作用: “扩展方法使您能够向现有类型“添加”方法,而无需创建新的派生类型.重新编译或以其他方式修改原始类型.” 要求: 1.拓展方法必须是在一个非嵌套.非泛型的静态类中定义.2.他至少有一个参数.3. ...

  9. Java报表之JFreeChart

    一.JFreeChart简介 JFreeChart是JAVA平台上的一个开放的图表绘制类库.它完全使用JAVA语言编写,是为applications,servlets以及JSP等使用所设计. JFre ...

  10. Java多态学习笔记

    面向对象三大特性:封装,继承和多态.其中,封装,继承都比较通俗易懂,唯有多态令我甚是头疼.经过仔细研究之后,终于搞懂了一点,特来做一个分享.独乐乐不如众乐乐. 何为多态?多态的本质是:一个程序中同名的 ...