Linux能为许多高级应用程序和管理服务提供理想的操作环境,但其在性能、空间和资源利用上不是最优的,因此不适合高流量、多CPU系统。
对于错误通知、热插拔、负载均衡、动态发现等临界时间服务,Linux也缺少必需的高实用性。而OSERTOS(RTOS)为分布式系统增添实时性、高实用性以及高级支持。
Linux与OSE各有千秋。Linux提供了传统的工作站(或Unix)应用开发环境,并且是免费的。但它的实时性和程序设计范例都很一般,对分布式系统(对称多处理器除外)的支持也很有限,并且它的性能、空间和资源利用都不尽人意。另外,Linux还存在GNU通用公共许可证(GPL)问
OSE RTOS为分布式的内存保护实时系统提供了直观而强有力的程序设计范例,其框架的高实用性也已得到了证明。OSE支持一些硬件,如DSP。与Linux相比,OSE唯一的局限是嵌入式领域之外的第三方软件支持商太少。由于OSE的设计主要考虑的是性能、空间和资源利用,所以开发者如果想最有效的使用它,需要有RTOS和嵌入式方面的经验。如果非实时性应用软件用RTOS来开发,成本会更高。
设计者的困难选择
在许多复杂的多处理器环境中,其硬件和软件均存在临界时间问题。对这样的系统设计者有很大的选择空间:选用RTOS,对软件中非实时性部分用通用的方法编写。RTOS将会使系统更高效,但非实时部分软件的开发成本会很高;选用带有扩展的实时Linux,其中实时临界部分的开发难度可能会比选择RTOS高,而且其性能和可预测性很难得到保障,尤其是含有DSP的对实时性能和存储空间有严格要求的部分;或者我们可以选择一个最佳方案,那就是让RTOS和Linux各自发挥所长,其缺点就是系统将变得更复杂。
图1 OSE是连接Linux和OSE的桥梁
OSE/Linux解决方案
多操作系统的混和使用将会是一种最佳解决方案,尤其是在多处理器系统中。与Linux相比,对于高实用性、高可靠的分布通信系统OSE是最优的。它适用于实时性要求的任务和一些Linux不合适的领域,OSE利用先进的通信性能来降低软件的开发难度。
OSE的异步消息传递能力使应用程序利用集成的应用程序接口(API)在OSE或Linux上运行。即使在多操作系统应用程序中,异步消息传递使用起来也很简单明了,这就为多核或分布的多处理器嵌入式系统提供了一个概念性的网关。
可靠的进程间通信
在一个多节点系统中,每个节点都有自己的操作系统,OSE的消息传递机制利用OSE的链接处理器来透明的工作。链接处理器支持可靠的和非可靠的通信链接,它在一个高实用的系统中是很重要的组件,它支持“服务发现”——对远程进程和任务、节点和通信连接的动态发现,即对他们进行监视,如果有任何差错,将会发出通知。
OSE支持冗余节点和通信链接。有错误发生时,相关部分将会立即得到通知,以便得到合适的处理。
OSE也支持物理互连媒体,能适应任何协议,可以为内部CPU通信提供单一软件模型。链接处理器也可用于OSE的DSP节点,可为不同的系统提供一个简化的软件设计结构。
-
-
-
zhiy66 发表于 2008/11/12 10:31:51
Linux与OSE的连接2楼 回复本楼OSE网关是一个集成的API,可作为两个操作系统间连接的桥梁,它把OSE的实时性带给了Linux。OSE网关允许Linux和OSE的开发人员之间共享信息和创意,同时为通信和监控搭建了一个可靠的框架。
OSE网关为开发者提供了一个API包,利用这些API,Linux应用程序可以与运行OSE的设备进行通信。这也为管理、错误通知、故障解决、动态发现和热插拔提供了服务。这些API不是标准的Linux函数,但可以被运行在Linux上的C代码调用
长期以来,完全不同的操作系统共存于同一基础平台的系统上,并通过TCP/IP或其他的方式通信。OSE网关提供了一种更好的方法,它允许一个Linux主机,利用运行在其上的OSE提供的特殊服务,将OSE的分布式处理和函数映射到Linux中,这样就可以充分利用OSE的内部处理器通信(链接处理器)模型。
完整的平台
为了实现RTOS/Linux方案,Enea嵌入式技术中心和Metrowerks公司已经开发出了Enea Orchestra 软件平台——第一个商业化的解决方案。
在集成开发环境下,Enea Orchestra使Linux的商业利益和OSE RTOS的性能结合在一起。它捆绑了五个部件
·Linux;
·通用的和DSP专用的OSE RTOS;
·OSE网关;
·Polyhedra数据库;
·Metrowerks的一些开发技术,包括平台创建套件,代码测试分析工具,
PowerTAP调试器和CodeWarrior开发环境。Enea Orchestra有两个版本,Orchestra 应用程序开发套件和平台开发套件。 为了保证数据存储及其完整性,Enea Orchestra 还会同时提供Polyhedra 数据库管理系统。该系统提供了一个能够在Linux及OSE上运行的容错内存数据库应用软件。Polyhedra 支持冗余数据库的自动透明故障解决,并为实时系统提供了其他有用的特性,如动态查询。
引用 zhiy66 2008/11/12 10:31:51 发表于2楼的内容
-