- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
通过软件分区降低网络元件的开发成本
通过软件分区降低网络元件的开发成本
分区技术能为每个软件子系统提供 CPU 使用的保障,因此极大简化了软件集成过程。
Kerry Johnson ,QNX 软件系统公司高级产品经理
Romain Saha ,QNX 软件系统公司网络部经理
通过软件分区降低开发成本 QNX 软件系统公司
日益复杂
网络和电信产品制造商均处在应对设计复杂性的前沿。网络元件会包含成千上万甚至数百万的
源代码行,还会应用几百种软件任务,它们都在争夺数量有限的内存和 CPU 时间。
为争取在最短时间内构建这类规模庞大的软件系统,制造商们通常会选择并行开发,让多个项
目团队承担开发任务。不幸的是,并行开发模式会不可避免地导致系统集成阶段出现性能问题,
此时,由不同开发团队创建的子系统会首次开始争夺系统资源。单独运行正常的子系统现在却
响应缓慢。
在许多情况下,这些争夺资源的问题只会在集成和验证测试过程出现,而此时重新对软件进行
编码的成本最高,对交付计划的影响也最严重。而且,这类问题通常难以诊断,特别是在一个
子系统的“异常”运行是由另一个不相关的子系统的运行导致的情况下。在确定真正的故障原
因后,设计人员必须灵活设定任务优先级,还可能会在整个系统内改变线程的运行状态,然后
针对修改进行重新测试和精确调整。这些纠正措施往往要持续数周甚至数月,不但会使成本增
加,还会使并行开发丧失及时面市的优势。
分区技术提供解决方案
作为一种能管理这类复杂的集成问题的有效途径,分区概念近来获得广泛关注。简言之,这种
方法允许设计团队将软件划分成单独的区域,然后为每个分区定量分配系统资源。因此,每个
分区都能提供稳定、已知的运行环境,供开发人员单独创建和验证。如果分区内的软件进程在
单元测试过程中运行正常,它们在集成阶段也一定会保持同样的性能。子系统之间无法预料的
资源争夺能被抑制。
尽管对静态资源(如内存)进行分区很简单,但对 CPU 处理时间进行分区却十分困难。由于嵌
入式控制系统的成本和功耗都有限,因此,此类系统选用的处理器通常不具备额外的处理能力。
在这种环境下,CPU 时间就成为一种稀有资源,必须对其进行仔细管理,特别是在 CPU 负载
较重时。CPU 时间分区技术为实现这一目标提供了最佳途径。
实时操作系统调度程序
为理解 CPU 时间分区技术的需求,我们必须首先考虑调度在实时嵌入式系统中的作用。
为保证代码的可移植性,多数的现代操作系统都支持 POSIX 应用程序接口 (API) 。这种开放标准
定义了线程模型,其中的单独进程可能包含一个或多个可执行线程。
为满足嵌入式系统所需的并发性和实时运行要求,基于 POSIX 的实时操作系统 (RTOS) 采用了
基于优先级的可抢占式线程调度程序。这种调度程序形式会一直为优先级最高且有任务的线程
提供 CPU 时间。如果优先级高的线程已准备就绪(通常由外部事件触发),它会抢占目前运行
的优先级更低的任何线程。
2
通过软件分区降低开发成本 QNX 软件系统公司
基于优先级的调度程序具有许多优势,包括:
• 可预测的延迟——为优先级高的线程分配时序要求严格的功能,开发人员能精确控制系统响
应外部事件所需的时间。
• 并发性和灵活性——嵌入式系统使用优先级调度能处理多种任务混合的情况,包括截止期限
紧迫且定期发生的任务、优先级高的事件驱动的任务和后台处理任务。
• 经实用验证且众所周知——基于优先级的调度广泛应用于工业应用环境并为嵌入式系统开发
人员所熟知。
当线程准备运行时,它会以相同的优先级进入就绪线程的等候队列。开发人员针对每个线程确定
的调度策略会决定接下来应运行哪一个等候的线程。POSIX 定义了三种调度策略:
• 先入先出 (FIFO) 调度——确保选择运行的线程在自动中断或被优先级更高的线程抢占前,会
一直保持运行。
• 循环调度——确保线程在被抢占前、自动中断前或消耗完时间片前会一直执行。
• 偶发调度——限制线程在既定时间段内的执行时间。
在偶发调度时,线程具有两种指定的优先级,即正常级和低级,线程会在特定的时间段内以正常
优先级运行。当这段时间间隔结束后,线程会以低优先级运行。正常优先级的处理时间会定期
更
文档评论(0)