嵌入式软件的编程与优化说课材料.ppt
《嵌入式软件的编程与优化说课材料.ppt》由会员分享,可在线阅读,更多相关《嵌入式软件的编程与优化说课材料.ppt(45页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、嵌入式软件的编程与优化10.2.1任务划分原则任务划分原则n嵌入式多任务软件系统的设计阶段:嵌入式多任务软件系统的设计阶段:系统功能框图系统功能框图多任务流程图多任务流程图例:数据采集系统的功能框图例:数据采集系统的功能框图转化为转化为 传感器1 传感器2 数据处理 显示 处理功能 子处理功能 数据 图图10-2数据采集系统功能框图数据采集系统功能框图 10.2.1任务划分原则任务划分原则n任务划分存在以下一对矛盾任务划分存在以下一对矛盾n如果划分的任务数太多,必然增加系统任务切换的如果划分的任务数太多,必然增加系统任务切换的开销开销n如果任务数太少,系统的并行度和实时性将降低如果任务数太少,
2、系统的并行度和实时性将降低10.2.1任务划分原则任务划分原则n任务划分的任务划分的H.Gomma原则原则n(1)I/O依赖性原则依赖性原则(DependencyonInput/OutputDevice)n(2)时间关键性的功能原则时间关键性的功能原则(Time-CriticalFunctions-HardDeadline)n(3)大计算量的功能原则大计算量的功能原则(HeavyComputationFunction)10.2.1任务划分原则任务划分原则n(4)功能内聚性原则功能内聚性原则(FunctionalRelations)n(5)时间内聚性原则时间内聚性原则(TemporalRelat
3、ions)n(6)周期执行的功能原则周期执行的功能原则(CyclicExecutingFunction)核心思想核心思想:系统内功能的异步性系统内功能的异步性10.2.1任务划分原则任务划分原则1I/O依赖性原则依赖性原则n如果变换依赖于如果变换依赖于I/O,则变换运行的速度常常受限于,则变换运行的速度常常受限于与它互操作的与它互操作的I/O设备的速度。在这种情况下,变换应设备的速度。在这种情况下,变换应该成为一个独立的任务该成为一个独立的任务图图10-3按照按照I/O依赖性原则进行任务划分依赖性原则进行任务划分 10.2.1 10.2.1 任务划分原则任务划分原则 n 按照按照I/OI/O依
4、赖性原则进行任务划分的方法依赖性原则进行任务划分的方法n(1)(1)在系统中创建与在系统中创建与I/OI/O设备类型数目相当的设备类型数目相当的I/OI/O任务,一个任务管理一类任务,一个任务管理一类I/OI/O设备(非一个任务管设备(非一个任务管理一个理一个I/OI/O设备)设备)例:例:3 3个个RS232RS232、4 4个个USBUSB、2 2个以太网个以太网n(2)I/O(2)I/O任务只实现与设备相关的功能代码,任务任务只实现与设备相关的功能代码,任务中分离设备相关性中分离设备相关性 n(3)I/O(3)I/O任务的执行只受限于任务的执行只受限于I/OI/O设备的速度,而设备的速度
5、,而不是处理器的速度不是处理器的速度 10.2.1任务划分原则任务划分原则2时间关键性的功能原则时间关键性的功能原则按照该原则进行任务划分的方法是按照该原则进行任务划分的方法是:n(1)将有时间关键性(即最后时间期限将有时间关键性(即最后时间期限Deadline)的功能分离出来,组成独立运行的任务)的功能分离出来,组成独立运行的任务n(2)赋予这些任务高的优先级,以满足赋予这些任务高的优先级,以满足Deadline的的要求要求例:刀具切割机例:刀具切割机10.2.1任务划分原则任务划分原则图图10-4按照时间关键性的功能原则进行任务划分按照时间关键性的功能原则进行任务划分10.2.1任务划分原
6、则任务划分原则3大计算量的功能原则大计算量的功能原则按照该原则进行任务划分的方法是按照该原则进行任务划分的方法是:n(1)当计算功能占用当计算功能占用CPU的时间较多时,捆绑计的时间较多时,捆绑计算功能成任务,赋予它们较低优先级运行,这样一算功能成任务,赋予它们较低优先级运行,这样一方面消耗方面消耗CPU的剩余时间,另一方面能被高优先的剩余时间,另一方面能被高优先级的任务抢占级的任务抢占n(2)保持高优先级的任务是轻量级的保持高优先级的任务是轻量级的n(3)多个计算任务可安排成相同优先级,按照时多个计算任务可安排成相同优先级,按照时间片循环轮转间片循环轮转10.2.1任务划分原则任务划分原则图
7、图10-5按照大计算量的功能原则进行任务划分按照大计算量的功能原则进行任务划分10.2.1任务划分原则任务划分原则4功能内聚性原则功能内聚性原则按照该原则进行任务划分的方法是按照该原则进行任务划分的方法是:n(1)各紧密相关的功能,不要分别对应不同的任各紧密相关的功能,不要分别对应不同的任务务n(2)将这些紧密相关的功能组,组成一个任务,将这些紧密相关的功能组,组成一个任务,使各功能共享资源或相同事件的驱动使各功能共享资源或相同事件的驱动10.2.1任务划分原则任务划分原则图图10-6按照功能内聚性原则进行任务划分按照功能内聚性原则进行任务划分意义:意义:减少系统的通讯开销减少系统的通讯开销保
8、证了任务级的功能内聚性保证了任务级的功能内聚性 10.2.1任务划分原则任务划分原则5时间内聚性原则时间内聚性原则按照该原则进行任务划分的方法是按照该原则进行任务划分的方法是:n(1)将在同一时间内完成的各功能将在同一时间内完成的各功能(即使是不相即使是不相关的关的)组成功能组,形成一个任务组成功能组,形成一个任务n(2)功能组内的各功能是由相同的外部事件驱动功能组内的各功能是由相同的外部事件驱动的(如时钟等),这样每次任务接收到一个事件的(如时钟等),这样每次任务接收到一个事件时,它们都可以同时执行时,它们都可以同时执行例:早晨起床以后刷牙、洗脸、吃早饭几项事情例:早晨起床以后刷牙、洗脸、吃
9、早饭几项事情10.2.1任务划分原则任务划分原则图图10-7按照时间内聚性原则进行任务划分按照时间内聚性原则进行任务划分意义:意义:减少系统用于任务间同步的资源开销减少系统用于任务间同步的资源开销达到了任务级的时间内聚性达到了任务级的时间内聚性10.2.1任务划分原则任务划分原则6周期执行的功能原则周期执行的功能原则按照该原则进行任务划分的方法是按照该原则进行任务划分的方法是:n(1)将在相同时间周期内执行的各项功能组织成将在相同时间周期内执行的各项功能组织成一个任务一个任务n(2)频率高的任务赋予高的任务优先级频率高的任务赋予高的任务优先级例:采集任务与显示任务例:采集任务与显示任务10.2
10、.1任务划分原则任务划分原则图图10-8按照周期执行的功能原则进行任务划分按照周期执行的功能原则进行任务划分10.2.2 10.2.2 任务间通讯机制的选择任务间通讯机制的选择 详见详见7.27.2节节10.2.3任务的细节设计任务的细节设计1正确性正确性n(1)函数的可重入性函数的可重入性n如果一个函数能被多个任务同时调用且不发生冲如果一个函数能被多个任务同时调用且不发生冲突,那么该函数是可重入的突,那么该函数是可重入的n要求用户编写的自定义函数嵌入式操作系统提要求用户编写的自定义函数嵌入式操作系统提供的库函数均具有可重入性供的库函数均具有可重入性n详见详见7.1.10节节10.2.3任务的
11、细节设计任务的细节设计n(2)ISR的编程规范的编程规范n基本限制:基本限制:不能调用可能阻塞中断的系统服务不能调用可能阻塞中断的系统服务n基本要求要求基本要求要求短小、精简短小、精简n详见详见7.3.6节节10.2.3任务的细节设计任务的细节设计n(3)生存性生存性在多任务系统中要避免死锁、活锁、饥饿、优先在多任务系统中要避免死锁、活锁、饥饿、优先级倒置的出现级倒置的出现10.2.3 10.2.3 任务的细节设计任务的细节设计 n 死锁(死锁(DeadlockDeadlock)n死锁是指任务相互占有其它任务所需资源而死锁是指任务相互占有其它任务所需资源而形成的形成的“链链”状结构状结构 例:
12、三角债例:三角债n避免死锁避免死锁:认真规划是关键认真规划是关键 在开始编码之前,通过图解多线程应用程序,在开始编码之前,通过图解多线程应用程序,通常可以预测死锁通常可以预测死锁C B A 甲 丙 乙 10.2.3任务的细节设计任务的细节设计n活锁(活锁(Lockout)活锁是指一个任务所需资源永不满足活锁是指一个任务所需资源永不满足例:生产者与消费者问题,消息队列生产者在没有与系统例:生产者与消费者问题,消息队列生产者在没有与系统脱离耦合之前被其它任务删除,则产生活锁脱离耦合之前被其它任务删除,则产生活锁图图10-10生产者与消费者的问题生产者与消费者的问题10.2.3任务的细节设计任务的细
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 嵌入式 软件 编程 优化 材料
限制150内