您的位置:控制工程论坛网论坛 » 教程与手册 » 在多处理器及多刀片式环境中用Linux和OSE实现实时性能和高可用性

里克尔梅

里克尔梅   |   当前状态:离线

总积分:691  2024年可用积分:0

注册时间: 2006-06-15

最后登录时间: 2007-01-25

空间 发短消息加为好友

在多处理器及多刀片式环境中用Linux和OSE实现实时性能和高可用性

里克尔梅  发表于 2006/6/19 17:21:14      738 查看 0 回复  [上一主题]  [下一主题]

手机阅读

尽管Linux能为许多高级应用及管理服务提供理想的操作环境,但它没有针对性能、外形尺寸及资源保存进行优化,因此不适于高流量、多CPU系统的应用。Linux还缺乏一整套提供故障通知、热插拔、负载均衡以及动态发现等时间敏感服务所要求的高可用性属性。将Linux与诸如OSE的实时操作系统相结合,可以增加真正的实时性、内建高可用性以及对分布式系统的高级支持。本文将讨论这种方案所采用的概念。
对于通信系统的开发来说,Linux操作系统和OSE实时操作系统(RTOS)各自都具有一些必须加以认真考虑的特性。Linux在目前的市场上有很多各种版本的免费和商用软件,并能提供传统的、类似于工作站(即Unix)的应用开发环境,而且免许可证费用。不过,Linux只拥有一般的实时能力与编程范例,对分布式系统的支持也很有限(SMP除外),而且不能对性能、外形尺寸或资源保存实现真正的优化。此外,Linux还存在“GNU通用公共许可证(GPL)”混杂等问题。

图1:Linux和传统RTOS性能比较。

    而OSE RTOS则能为分布式的、有存储器保护的实时系统提供功能强大且直观的编程范例,以及一种成熟的、先进的高可用性架构。OSE还可支持包括DSP在内的各种硬件平台。与Linux相比,在深度嵌入式领域以外,OSE只有数量有限的第三方软件组件。虽然OSE已经针对性能、确定性、占用存储空间和系统资源保护进行了设计优化,但开发者仍需具备RTOS及嵌入式系统开发经验才能最大程度地发挥OSE的潜力,而且用RTOS来开发嵌入式应用中非实时部分的成本可能较高。

设计人员的两难处境

    在许多复杂的多处理器或多刀片式环境中,例如蜂窝基站或电信及网络管理设备,无论是硬件还是软件,都有很严格的实时要求。系统的其他部分可能具有与传统桌面应用关系更为紧密的功能。标准软件产品可以满足其中某些要求。在这样的系统中,设计者必须在以下几种方案中做出选择:

    选择一种RTOS并为系统中的非实时部分编写定制软件。该RTOS可使系统高效地运行,但对于非实时操作而言,软件开发成本可能会很高;
采用带有实时扩展的Linux。与使用RTOS相比,有实时要求的部分很可能较难开发,而且在性能及可预测性方面存在风险。对于含有数字信号处理器(DSP)的节点更是如此,在这些方面实时性是个问题,对存储空间的需求也是一个需要考虑的重要因素;
第三种方法是结合上述两种操作系统的优势,在最适合的地方使用RTOS,而在最合理的地方使用Linux。但此方案的缺点是系统将会变得更加复杂。
OSE/Linux混合方法
混合操作系统已被证明是最佳的解决方案,尤其对于多CPU系统。Linux加上OSE实时操作系统可弥补其他两种方法的缺陷。与Linux相比,OSE已经针对高可用性、高可靠性分布式通信系统进行了优化。它接管了要求实时性能的任务,以及不适用Linux的部分。通过采用高级通信技术,OSE简化并减少了软件开发工作。

    OSE的异步消息传递特性允许应用程序通过API在OSE或Linux上运行。异步消息传递功能简单且直观,甚至可用于复杂的多操作系统应用,并能为多内核及分布式多处理器嵌入式系统提供一个概念性的“网关”。对于多处理器或多板上的任务间通信,这是首选技术,因为它能实现发送方与接受方之间的透明传输,而且比其他方法更加安全可靠。

可靠的任务间通信机制

    OSE的消息传递机制采用一种称为OSE Link Handler(OSE链接处理器)的程序,在带有多个节点的系统(其中每个节点都拥有自己的操作系统)中透明地工作。OSE Link Handler可同时支持可靠与非可靠通信链接,它是高可用性系统中的重要组件。它支持“服务发现”,即远端进程和任务、节点以及通信链接的动态发现,并对其进行监视,向系统提供即时故障通知。

 

图2:OSE网关实现了OSE与Linux之间的桥接。

    OSE还支持冗余节点和通信链接。一旦发生故障,有关各方都会立即得到通知,以便它们能迅速采取适当行动,包括以一种透明应用的方式切换到备份资源。OSE还支持物理互连媒介,并能适合任何协议,因此可以为CPU间通信提供一种单一软件模型。Link Handler也能用于OSE DSP节点。这极大地简化了异构系统软件设计。

Linux与OSE的桥接

    OSE网关是一个集成API,它可以桥接两种操作系统,能将OSE的实时能力带给Linux。OSE网关使得采用Linux和采用OSE的开发人员能够共享信息及概念,并能为异构系统提供一个用于通信及监视的可靠架构。OSE网关还能为开发者提供一组API,Linux应用可通过这些接口与运行OSE的系统中的设备进行通信,反之又能为系统管理、故障通知、故障切换、动态发现及热插拔提供切实的服务。

    这些虽然不是标准的Linux功能,但可被运行在Linux上的C代码调用。这样Linux就能获得这些特性而不必加载到操作系统中。不同的操作系统已经在机箱系统中共存多年,它们通过TCP/IP或其他方式通信。OSE网关提供一种完全不同的、更加先进的通信方法。它允许Linux宿主机利用在主机上运行的OSE 的专用服务,使Linux宿主机能将OSE分布式处理与功能映射到Linux范围内,以便Linux充分利用OSE的处理器间通信(Link Handler)模型。

完整的软件开发平台

    为实现RTOS/Linux方法,Enea Embedded Technology 与 Metrowerks公司联合开发了Enea Orchestra软件开发平台。这是此类产品中的第一种商用解决方案。Enea Orchestra的出现,使得Linux的商业利益与OSE实时操作系统的优异性能够被整合在一个集成开发环境中。

    Enea Orchestra包括5个紧密集成的组件:Linux、通用OSE RTOS与数字信号处理器(DSP)、OSE网关、Polyhedra数据库,以及各种Metrowerks开发技术,其中包含Platform Creation Suite(平台创建套件)、CodeTEST分析工具、PowerTAP调试探针及CodeWarrior开发环境。Metrowerks技术提供了一个整体架构,针对在各种CUP上开发、配置、部署及测试开放源码Linux 与OSE应用。

    由于认识到在开发复杂的分布式系统时,通常有不同类型的开发小组,因此Enea Orchestra提供两种产品套装。其中,Orchestra Applications Development Suite(Orchestra 应用开发套件,ADS)可满足应用开发人员所有的需要,从OSE RTOS、OSE网关、OSE 软环境、Polyhedra数据库直到用于应用级调试的Metrowerks CodeWarrior Studio Editions(Linux 与 OSE)等。

    Orchestra平台开发套件包括适于板级和操作系统开发人员使用的软件及工具:其中Metrowerks Platform Creation Suite用于构建、配置及部署Linux内核及内核模块;Metrowerks'CodeWarrior Studio(Linux 及OSE)用于生成电路板;对于选定的电路板,可提供一个完整的Linux BSP。还提供Orchestra评估套件,包括正确评估Orchestra解决方案所需的全部软硬件(两块参考评估板)。

    为实现系统范围内的永久性数据存储及数据完整性,Enea Orchestra解决方案采用Polyhedra数据库管理系统。以冗余配置方式提供一个存储器内的容错数据库应用,能够在Linux 或OSE或同时在二者上运行。它采用OSE消息通信模型,因此可以被系统中任何节点的应用透明地访问。

    Polyhedra支持自动、透明地故障切换到备份数据库,而且还提供许多对实时系统有用的高级特性,例如“活动查询”,能使应用接收到任何数据库元素更改的自动通知。Polyhedra还能在Linux 与OSE的混合环境中保证数据的完整性。

    Enea Orchestra平台可以订购。Enea与Metrowerks之间紧密的合作关系确保Orchestra平台的用户能够获益于一种非常灵活的许可证机制,易于调整处理器、操作系统及工具的数量。通过Enea用户可获得针对整个平台的全套技术支持,包括Metrowerks及第三方产品,还能得益于Metrowerks公司的Linux专家中心。

作者:Anders Flodin
战略联盟总监
Enea Embedded Technology公司

1楼 0 0 回复