【RTOS】《基于嵌入式实时操作系统的程序设计技术》——任务的划分与封装
2024-10-22 04:49:07
任务的划分与封装
关键任务的划分处理
对于某些对于系统的正常运作至关重要,少执行一次会对系统产生较大影响的功能,我们倾向于将它从原有任务中剥离出来,称为关键任务,用一个独立任务或者ISR(如外部中断)执行,由于关键任务的核心地位,关键任务一般需要与其他任务进行通信,而一般情况下,我们会创建一个单独的消息分发任务,由外部中断与消息分发任务通信,再由消息分发任务与其他任务通信,注意消息分发任务的优先级要高于所有操作任务,而对于uCOSii,消息发送函数OSMboxPost(),具有广播功能,发送一条消息就可以使所有等待该消息的任务进入就绪态
如采用单独创建关键任务的方法,必须确保关键任务由足够高的优先级和查询频率
紧迫任务的划分处理
紧迫任务具有很高的实时性要求,由于大多数紧迫任务是由异步事件触发的,最优的手段依旧是将其安排在ISR里,注意对于紧迫任务,要尽可能精简,将 “不那么紧迫” 的部分剥离另外封装
对于又关键又紧迫的任务,按紧迫任务处理
数据处理任务的划分处理
数据处理任务一般是用户应用程序中耗时最多的部分,对于为不同功能服务的单元,应将这些单元划分包装成不同的任务,对于耗时较多的任务,通常安排较低的优先级
功能聚合任务的划分处理
对于关系密切的若干功能,何以合成一个任务
触发条件相同的任务划分处理
对于若干功能又相同事件触发的任务,可以将他们合成一个任务避免冲突
顺序操作任务之间没有并发性,合成一个任务
不好意思水了一篇
最新文章
- 【转】C# GET 和 SET作用
- LINQ LINQ Operators and Lambda Expression - Syntax &; Examples
- August 8th 2016, Week 33rd Monday
- Iconfont矢量图标平台全面升级
- 使用Maven搭建Struts2+Spring3+Hibernate4的整合开发环境
- hibernate.cfg.xml文件的说明
- LeetCode--判断二叉树是否对称
- 改变UITableViewCell按下去的颜色
- 基于visual Studio2013解决C语言竞赛题之0509杨辉三角
- Jquery清除:hover事件
- 1、手把手教你Extjs5(一)搭建ExtJS5环境
- 一个DOM元素同时拥有多个类名时的样式产生冲突时 属性取决于css样式表中后读取到的属性
- quartus2中FPGA管脚分配保存方法(转)
- yii2 源码分析 model类分析 (五)
- AOP注解使用详解
- 知其然而所以然:Operating System 概述和学习图
- installers PHPManager
- 2-3 vue配置介绍
- 怎样写SQL语句可以提高数据库的性能
- vue 的过滤器