[原创]我的uC/OS-II,我的读书笔记之任务划分(上)

我的uC/OS-II,我的读书笔记之任务划分(上)
一个具体的嵌入式应用系统进行“任务划分”是实验操作系统应用软件设计的关键,任务划分是否合理直接影响软件设计的质量。当任务划分得合理时,软件设计将比较简洁、高效;否则将可能比较繁杂,甚至失败。本章将介绍任务划分的问题。
任务特性
“任务”的基本特性是“动态性”“独立性”“并发性”。这是“任务”与“程序模块”的本质区别。
任务的动态性:“任务”的状态是动态变化的,通常有“就绪态”“运行态”“等待态”等。“任务”并不是随时都可以运行的,而一个已经开始运行的“任务”并不能保证一直占有CPU的使用权。
任务的独立性:在操作系统环境下的“任务”看来,CPU为自己“独占”。所谓“独占”,即“旁若无人”,一个任务“看不见”另外一个任务。在这种情况下,一个任务不可能像“调用子程序”那样调用另外一个任务;
举例说明之:当两个“模块”需要进行“信息”传输时,主模块以“实参”形式将信息传输给子模块的“形参”,子模块以“返回值”的形式将结果传输给主模块。“模块”之间的信息传输是“当面”完成的,因为模块之间是相互“看得见”。“当面”的本质是“同步”“给”和“拿”在同一时刻完成。
但由于“任务”之间互相“看不见”,所以它们之间的信息传输就无法“当面”完成。当两个任务需要进行信息传输时,只能采用“异步”方式。类似于,我们将购物清单和货款交给“第三方”,由“第三方”转交给“购买者”。“购买者”完成购物后,货物同样只能通过“第三者”转交。(“第三者”的角色由操作系统中的各种“通信”机制实现。)由于“第三者”的介入,主人“给”钱的时间和“购买者”拿到钱的时间不同,交货时间与“我”拿到货物的时间也不同,即“传输是异步的”,其时间的滞后与多种因素有关,无法事先准确固定。所有“任务”在逻辑上都是“平等”的,在信息传输上都是“异步”的。
任务的并发性:操作系统的“任务调试”功能是为了解决这样一个问题:在某个时刻,有多个任务均处于就绪状态,应该让哪个任务运行?uC/OS采用“可剥夺型”任务调试算法。“已经就绪的高优先级任务”可以剥夺另一个“正在运行的低优先级任务”的运行权而进入运行状态。
任务划分的目标
首要目标是满足“实时性”指标,即在最坏的情况下,系统中所有对实时性有要求的功能都能够正常实现。
任务数目合理,任务数目适当减少是非常有利的。
简化软件系统,这里主要还是指得合理划分任务。
降低资源要求,因为任务与任务之间如果协同。
以上是任务划分的理论方法,具体的划分方法,咱们下周在一起探讨……
关键词: 原创 我的 OS-II 读书 笔记 任务 划分
回复
有奖活动 | |
---|---|
【有奖活动】分享技术经验,兑换京东卡 | |
话不多说,快进群! | |
请大声喊出:我要开发板! | |
【有奖活动】EEPW网站征稿正在进行时,欢迎踊跃投稿啦 | |
奖!发布技术笔记,技术评测贴换取您心仪的礼品 | |
打赏了!打赏了!打赏了! |
打赏帖 | |
---|---|
基于MSPM0L1306的MODBUS-RTU协议通讯实验被打赏50分 | |
每周了解几个硬件知识+485硬件知识分享被打赏10分 | |
【换取手持示波器】树莓派PICOW网页烟花被打赏18分 | |
【换取手持示波器】树莓派PICO逻辑分析仪被打赏16分 | |
【分享评测,赢取加热台】教你五分钟本地部署蒸馏版本的DeepSeekR1-7B被打赏12分 | |
【换取手持示波器】蓝牙音箱更换电池被打赏8分 | |
【换取手持示波器】鼠标更换微动开关被打赏10分 | |
【我要开发板】4.传感器移植被打赏50分 | |
【换取手持数字示波器】RISC-VGCC使用-fno-omit-frame-pointer编译选项实现栈回溯被打赏29分 | |
【分享评测,赢取加热台】+开关电源简述被打赏7分 |