[原创]我的uC/OS-II,我的读书笔记之任务划分(上)
我的uC/OS-II,我的读书笔记之任务划分(上)
一个具体的嵌入式应用系统进行“任务划分”是实验操作系统应用软件设计的关键,任务划分是否合理直接影响软件设计的质量。当任务划分得合理时,软件设计将比较简洁、高效;否则将可能比较繁杂,甚至失败。本章将介绍任务划分的问题。
任务特性
“任务”的基本特性是“动态性”“独立性”“并发性”。这是“任务”与“程序模块”的本质区别。
任务的动态性:“任务”的状态是动态变化的,通常有“就绪态”“运行态”“等待态”等。“任务”并不是随时都可以运行的,而一个已经开始运行的“任务”并不能保证一直占有CPU的使用权。
任务的独立性:在操作系统环境下的“任务”看来,CPU为自己“独占”。所谓“独占”,即“旁若无人”,一个任务“看不见”另外一个任务。在这种情况下,一个任务不可能像“调用子程序”那样调用另外一个任务;
举例说明之:当两个“模块”需要进行“信息”传输时,主模块以“实参”形式将信息传输给子模块的“形参”,子模块以“返回值”的形式将结果传输给主模块。“模块”之间的信息传输是“当面”完成的,因为模块之间是相互“看得见”。“当面”的本质是“同步”“给”和“拿”在同一时刻完成。
但由于“任务”之间互相“看不见”,所以它们之间的信息传输就无法“当面”完成。当两个任务需要进行信息传输时,只能采用“异步”方式。类似于,我们将购物清单和货款交给“第三方”,由“第三方”转交给“购买者”。“购买者”完成购物后,货物同样只能通过“第三者”转交。(“第三者”的角色由操作系统中的各种“通信”机制实现。)由于“第三者”的介入,主人“给”钱的时间和“购买者”拿到钱的时间不同,交货时间与“我”拿到货物的时间也不同,即“传输是异步的”,其时间的滞后与多种因素有关,无法事先准确固定。所有“任务”在逻辑上都是“平等”的,在信息传输上都是“异步”的。
任务的并发性:操作系统的“任务调试”功能是为了解决这样一个问题:在某个时刻,有多个任务均处于就绪状态,应该让哪个任务运行?uC/OS采用“可剥夺型”任务调试算法。“已经就绪的高优先级任务”可以剥夺另一个“正在运行的低优先级任务”的运行权而进入运行状态。
任务划分的目标
首要目标是满足“实时性”指标,即在最坏的情况下,系统中所有对实时性有要求的功能都能够正常实现。
任务数目合理,任务数目适当减少是非常有利的。
简化软件系统,这里主要还是指得合理划分任务。
降低资源要求,因为任务与任务之间如果协同。
以上是任务划分的理论方法,具体的划分方法,咱们下周在一起探讨……
关键词: 原创 我的 OS-II 读书 笔记 任务 划分
回复
有奖活动 | |
---|---|
奖!发布技术笔记,技术评测贴换取您心仪的礼品 | |
【有奖活动】震撼来袭!这场直播将直击工程师的心灵! | |
“我想要一部加热台”活动,不花钱赢取开发好工具!活动开始了哦 | |
【有奖活动】伙伴们:您的“需求”解决了吗? | |
抽奖了,抽奖了,金升阳医疗电源 |
打赏帖 | |
---|---|
【换取手持数字示波器】+与同事对定时器输出相位可调PWM移相全桥控制分享被打赏50分 | |
【换取手持数字示波器】+LP-MSPM0L1306开发板试用体验+串口被打赏40分 | |
CC-RL编译器相关问题求助被打赏10分 | |
【换取手持数字示波器】+与同事对ESP-12开发调试经验分享被打赏50分 | |
【换取手持数字示波器】+同事tek示波器调试spi解析被打赏50分 | |
【换取手持数字示波器】+2.6寸墨水屏调试经验被打赏50分 | |
换取手持数字示波器+个人开关电源的设计经验被打赏50分 | |
【换取手持数字示波器】+【APT32F173测评】+URAT被打赏20分 | |
【换取手持数字示波器】CH32X035的定时器以及外部中断体验被打赏50分 | |
【换取手持数字示波器】CH32X035搭建开发环境(RISC-V)被打赏50分 |