微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > CORBA在分布式嵌入式实时系统中的应用

CORBA在分布式嵌入式实时系统中的应用

时间:05-19 来源:互联网 点击:

随着嵌入式实时系统的飞速发展,它已被广泛应用到军事、通信、工业控制等领域。近年来,嵌入式操作系统、嵌入式芯片都日渐成熟,嵌入式软件开发方式也发生了很大改变。嵌入式实时系统的发展方向之一是建立分布式系统。在通信和军事领域,各种嵌入式设备之间需要进行实时通信,而且各种设备往往建立在异构的软硬件平台上。CORBA实现了在分布式系统上的面向对象编程,比较适合建立分布式异构系统。但是由于传统的CORBA对存储容量要求较大,且不能满足实时要求,因而在分布式实时嵌入式系统中的应用受到限制。软件技术和硬件设备的发展为建立分布式嵌入式实时系统铺平了道路。CORBA技术和嵌入式系统的结合成为当前的研究热门之一。本文首先分析了分布式嵌入式实时系统的特点和要求,然后对实时CORBA处理器、内存和网络资源管理的主要技术进行总结,在此基础上,提出了利用CORBA技术建立分布式嵌入式实时系统的三种方案。

1 分布式嵌入式实时系统的软硬件要求

1.1 嵌入式系统的特点

嵌入式系统是指除了台式机、笔记本电脑和主机的计算系统外的、嵌入到设备环境中、自治地执行既定操作的专用计算机系统,一般由处理器、感应器和反应器组成。越来越多的消费类电子产品、办公自动化设备、商务设备和汽车等应用环境中都有嵌入式系统。

与普通台式机相比,嵌入式系统具有以下特点:

(1)功能单一。嵌入式系统一般应用在各种专业领域,其软硬件都针对最终功能进行裁剪,不具备通用性。
(2)资源限制。为了降低成本,嵌入式系统的资源都受到严格限制,主要为处理器资源、存储器资源和网络资源。
(3)反应性与实时性。嵌入式系统一般采用实时操作系统,进程调度采用抢占式调度策略。

1.2 分布式嵌入式实时系统的关键设计因素

所谓分布式系统,是指各种嵌入式实时设备除了自治完成其特定功能之外,还必须通过网络互联实现相互之间的通信,以完成数据传输、远程控制等功能。分布式嵌入式实时系统的关键设计因素包括:

(1)分布适应性(Distribution Flexibility)。分布式系统的底层结构必须支持位置透明性,应用程序不必处理目标对象的物理位置。远程通信时,程序员不必关心发现对象、使用网络进行通信等细节。这样既可以隔离网络底层与应用高层,支持异构系统,也有利于对系统进行扩展和维护。

(2)异构系统(Heterogeneous Systems)。分布式系统必须无缝集成各种不同层次的异构系统,如网络、操作系统、编程语言。要求用标准的分布式中间件来实现不同语言、数据格式和调用方法的对象之间的相互通信。

(3)分布实时限制(Distributed Real-Time Constrains)。在分布式嵌入式实时系统中,必须对远程过程调用的通信延迟进行考虑,硬件和通信协议的选择对延迟都有很大影响。

(4)内存限制(Memory Limitation)。在每个嵌入式芯片上安装的系统软件、通信软件和应用软件都受到严格的内存限制。必须选择合适的软件并可以进行特殊的裁剪以降低存储容量的消耗和提高内存使用和访问效率。

2 CORBA在分布式系统上应用的优势

CORBA(Common Object Request Broker Architecture,公共对象请求代理体系结构)是由OMG组织发布的开放的软件标准,是目前最流行的中间件平台。CORBA 仅定义接口,不定义具体实现方式,各厂商或研究机构都可以根据规范进行具体实现。目前很多主流的软件供应商都提供对CORBA的支持。

分布式系统有多种实现方案,如:多计算机系统、网络操作系统、基于中间件的操作系统。其不同点主要是透明度、异构性和可扩展性。基于中间件的操作系统透明度比较高,例如CORBA可以提供访问透明性、位置透明性、复制透明性、安全透明性等。CORBA通过中间件的形式提供多种通用服务,大大降低了开发分布式应用程序的生命周期和成本,降低了程序出错的可能性。

如图1所示,客户程序通过名称服务等方法获得远程对象的引用后就可以调用远程对象的方法。在客户机上的桩(stub)模拟服务器上的实际对象,程序员只需要调用对象的方法而不必关心对象是在本地还是远程。方法调用通过底层的ORB(对象请求代理)进行参数和返回值的包装与解包,ORB可以屏蔽不同的网络协议。同时ORB以中间件的形式提供多种通用服务,可以大大降低程序员的编程代价。

CORBA支持各种面向对象的编程语言,如C++和JAVA。特别需要强调的是:CORBA将远程调用也封装在对象中,对程序员隐藏了底层的通信细节。程序员对分布式对象的引用与集中式环境下的引用基本相同,因此可以大大提高软件的生产效率。

3 实时CORBA的资源管理

通用的CORBA并不提供对实时系统的支持,这阻碍了CORBA在实时嵌入式系统中的应用。为此,OMG对CORBA进行了扩展,于2002年提出了Real-time CORBA规范1.0版,但它仅支持静态调度;2003年11月OMG推出了Real-time CORBA规范2.0版,以支持动态调度。Real-time CORBA的目标是通过实施系统行为的端到端的可预测性(End-to-End Predictability)和提供对资源管理的支持来满足实时要求。实时CORBA牺牲了CORBA的部分通用特性来支持实时系统的开发。应用程序开发过程中,必须进行显式的资源请求,资源的分配可以静态处理。

在优先级固定的CORBA系统中,所谓“端到端的可预测性”是指:(1)在处理CORBA调用而发生资源竞争时遵守客户机与服务器之间的线程优先级;(2)端到端进行处理时限定发生优先级反转的时间长度;(3)限定操作调用的延迟。

实时CORBA的接口和机制可以保证ORB和应用程序成为可预测的组合。应用程序通过使用实时CORBA的接口来管理资源;ORB机制协调组成应用程序的行为;实时CORBA则通过实时操作系统来调度线程和处理资源竞争。

Real-time CORBA规范中抽象的“活动”被具体化为三种处于不同阶段的实体,即传输协议中的消息、内存中的请求以及被调度到处理器上运行的线程。这三个阶段分别被称为“传输中”、“静态的”和“活动的”。实时CORBA可以对这三种状态中的活动进行作用。应用程序开发人员必须通过实时CORBA提供的界面对“活动”的状态进行界定。

如图2所示,实时CORBA规范对CORBA体系结构的主要扩展是调度服务和优先级映射。

CORBA实时嵌入式系统包括4个主要的组成部分:操作系统、实时ORB、通信传输、应用程序。为了保证整个嵌入式系统满足实时要求,系统的各组成部分及其相互之间的结合都应具有时间上的确定性。

Real-time CORBA必须建立在嵌入式设备的本机实时操作系统基础上,利用本地的实时操作系统进行处理器资源、存储资源和网络资源的管理,以实现整个系统上端到端的可预测性。

(1)处理器资源管理

CORBA进行处理器资源管理的策略是将网络任务的优先级映射到实时操作系统的优先级队列中。有二种映射方法:一种是将网络ORB请求映射到整个实时操作系统的优先级范围;另一种是映射到本地实时操作系统优先级的一个子集上。

优先级继承与传播:在运行过程中,进程会创建子进程,不同的进程之间相互调用,如果不支持优先级继承和传播,则无法保证正确的优先级关系。被调用进程的优先级必须大于或等于调用进程的优先级。因此在调用时,必须动态改变被调用进程的优先级。

(2)存储管理

Real-Time CORBA的存储管理是通过进程池来实现的。本地操作系统给CORBA子系统分配一定数量的进程数目,并根据请求参数配置进程可用的存储资源。

CORBA进程申请缓冲区时,操作系统会对系统空闲区加锁,然后再根据请求分配存储区域。当系统空闲区不能满足连续分配时,系统将对内存区域进行移动或合并,这一过程中进程处于等待状态。更严重的是,如果此时出现一个更高优先级的内存请求,则不管当前是否能满足,由于已经加锁,这一高优先级的进程只能等待低优先级进程结束并释放资源。解决方法是预先分配不同的内存池供不同进程使用,这样,进程之间不再互斥共享存储区域。

(3)网络资源管理

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top