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

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

最新文章

  1. Andriod 自定义控件之创建可以复用的组合控件
  2. python中几个常见的黑盒子之“字典dict” 与 “集合set”
  3. node.js基础 1之基本概念常识
  4. Spark源码系列(八)Spark Streaming实例分析
  5. (PowerShell) Managing Windows Registry
  6. Oracle学习笔记1: 表与约束
  7. 关于C#匿名方法
  8. HTML+CSS D08浮动
  9. App Store Review Guideline(带翻译)
  10. Linux学习之Linux目录及文件系统
  11. 深入浅出数据结构C语言版(16)——插入排序
  12. 关于jquery ajax跨域请求获取response headers问题
  13. 展开被 SpringBoot 玩的日子 《 二 》 WEB 开发
  14. James 3.1服务器的安装与搭建
  15. git初学 常用命令
  16. PHP中的static的理解
  17. CCMotionStreak(一)
  18. Java throw throws try...catch区别
  19. luogu P1809 过河问题_NOI导刊2011提高(01)
  20. Hibernate_day04--HQL多表查询_Hibernate检索策略

热门文章

  1. A. Banana (2017 ACM-ICPC 亚洲区(乌鲁木齐赛区)网络赛)
  2. 用jquery的animate动画函数做的网页效果
  3. Android课程设计第六天欢迎界面(跳转)
  4. Database UVA - 1592
  5. AJPFX关于Set接口学习笔记及总结
  6. 如何优化APK的大小
  7. 在项目中运用精益 - Five Why
  8. IOStableviewsectionSet
  9. Database coalesce
  10. asp.net mvc 5 微信接入VB版 - 获取AccessToken