1021 任务划分原则.ppt

  1. 1、本文档共45页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
1021 任务划分原则

第10章 嵌入式软件的编程与优化 多任务编程技术 10.2 多任务编程技术 任务划分原则 任务间通讯机制的选择 任务的细节设计 多任务软件系统设计实例 10.2.1 任务划分原则 嵌入式多任务软件系统的设计阶段: 系统功能框图 多任务流程图 例:数据采集系统的功能框图 10.2.1 任务划分原则 任务划分存在以下一对矛盾 如果划分的任务数太多,必然增加系统任务切换的开销 如果任务数太少,系统的并行度和实时性将降低 10.2.1 任务划分原则 任务划分的H.Gomma原则 (1) I/O依赖性原则 (Dependency on Input/Output Device) (2) 时间关键性的功能原则 (Time-Critical Functions-Hard Deadline) (3)大计算量的功能原则 (Heavy Computation Function) 10.2.1 任务划分原则 (4)功能内聚性原则 (Functional Relations) (5)时间内聚性原则 (Temporal Relations) (6)周期执行的功能原则 (Cyclic Executing Function) 核心思想:系统内功能的异步性 10.2.1 任务划分原则 1.I/O依赖性原则 如果变换依赖于I/O,则变换运行的速度常常受限于与它互操作的I/O设备的速度。在这种情况下,变换应该成为一个独立的任务 10.2.1 任务划分原则 按照I/O依赖性原则进行任务划分的方法 (1)在系统中创建与I/O设备类型数目相当的I/O任务,一个任务管理一类I/O设备(非一个任务管理一个I/O设备) 例:3个RS232、4个USB、2个以太网 (2)I/O任务只实现与设备相关的功能代码,任务中分离设备相关性 (3)I/O任务的执行只受限于I/O设备的速度,而不是处理器的速度 10.2.1 任务划分原则 2.时间关键性的功能原则 按照该原则进行任务划分的方法是: (1)将有时间关键性(即最后时间期限Deadline)的功能分离出来,组成独立运行的任务 (2)赋予这些任务高的优先级,以满足Deadline的要求 例:刀具切割机 10.2.1 任务划分原则 10.2.1 任务划分原则 3.大计算量的功能原则 按照该原则进行任务划分的方法是: (1)当计算功能占用CPU的时间较多时,捆绑计算功能成任务,赋予它们较低优先级运行,这样一方面消耗CPU的剩余时间,另一方面能被高优先级的任务抢占 (2)保持高优先级的任务是轻量级的 (3)多个计算任务可安排成相同优先级,按照时间片循环轮转 10.2.1 任务划分原则 10.2.1 任务划分原则 4.功能内聚性原则 按照该原则进行任务划分的方法是: (1)各紧密相关的功能,不要分别对应不同的任务 (2)将这些紧密相关的功能组,组成一个任务,使各功能共享资源或相同事件的驱动 10.2.1 任务划分原则 10.2.1 任务划分原则 5.时间内聚性原则 按照该原则进行任务划分的方法是: (1)将在同一时间内完成的各功能(即使是不相关的)组成功能组,形成一个任务 (2)功能组内的各功能是由相同的外部事件驱动的(如时钟等),这样每次任务接收到一个事件时,它们都可以同时执行 例:早晨起床以后刷牙、洗脸、吃早饭几项事情 10.2.1 任务划分原则 10.2.1 任务划分原则 6.周期执行的功能原则 按照该原则进行任务划分的方法是: (1)将在相同时间周期内执行的各项功能组织成一个任务 (2)频率高的任务赋予高的任务优先级 例:采集任务与显示任务 10.2.1 任务划分原则 10.2.2 任务间通讯机制的选择 详见7.2节 10.2.3 任务的细节设计 1.正确性 (1) 函数的可重入性 如果一个函数能被多个任务同时调用且不发生冲突,那么该函数是可重入的 要求用户编写的自定义函数+嵌入式操作系统提供的库函数均具有可重入性 详见7.1.10节 10.2.3 任务的细节设计 (2) ISR的编程规范 基本限制: 不能调用可能阻塞中断的系统服务 基本要求要求 短小、精简 详见7.3.6节 10.2.3 任务的细节设计 (3) 生存性 在多任务系统中要避免死锁、活锁、饥饿、优先级倒置的出现 10.2.3 任务的细节设计 死锁(Deadlock) 死锁是指任务相互占有其它任务所需资源而形成的“链”状

文档评论(0)

magui + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8140007116000003

1亿VIP精品文档

相关文档