论文部分内容阅读
CORBA(Common Object Request Broker Architecture,通用对象请求代理体系架构)技术是当前最具有影响力的分布对象计算技术。CORBA规范成为开放的、基于客户/服务器模式的、面向对象的分布对象计算的工业标准。但是通用CORBA无法满足军事、电信、航空和制造等实时领域的应用需求。这就要求CORBA技术本身进行拓展以支持实时的应用。
本论文的研究目的是实现一个较为完善的实时CORBA系统。本系统的调度对象为周期性硬实时任务集,其中,对于每个周期性硬实时任务,都有周期、释放时间、截止期和价值等特征参数。在客户端发起调用时综合考虑任务的多个特征参数进行调度。同时改造原有系统的线程池机制,实现多种线程池机制,并且实现多种从请求队列到操作系统线程的分派机制,以更好地满足任务的实时要求。
本论文的主要贡献体现在以下几个方面:
(1)多参数实时任务调度算法的实现实时CORBA规范定义了RTCurrent对象,用于与任务相关的实时信息的存取,需要扩展 RTCurrent对象,使得可以存取截止期等各种实时特征参数以方便系统调度时动态的获取相应的任务优先级。实现一种综合考虑任务多个特征参数的调度算法,该算法采用优先级表的设计方法,并且不需要预先确定任务参数的典型值而计算优先级表,而是在线地为任务分配优先级,并按照优先级调度这些任务。
(2)多种线程池机制的研究与实现为了满足实时CORBA系统服务端的应刚需求,实现四种线程池机制,分别是动态线程池机制、考虑时间因素的动态线程池机制、带有通道的线程池机制、多线程池机制。
(3)多种线程分派机制的研究和实现线程分派机制与服务器端的调度性能有很大的关系。在线程池中线程已经分配完毕,线程数量固定的情况下,应该考虑如何为它们分配操作系统优先级才能提高系统的性能。在线程池中线程数量和优先级都固定的情况下,应该考虑如何将请求队列中的任务按照它们的实时特征参数分派给线程去执行,保证便实时任务的按时完成。
本论文对动态更新优先级表的调度算法进行测试;对重要任务与非重要任务的端到端响应时间进行比较,在增加非重要任务种类的基础上,测试重要任务的端剑端响应时间,并且比较非重要任务和重要任务的端到端响应时间抖动:对不同调度算法策略下的实现价值率和加权截止期保证率、多种线程池机制下的任务请求响应时间、多种线程分派机制下的任务请求响应时间进行测试。