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