航天测控数据库的实时事务优先级确定及并发控制方法
【技术领域】
[0001] 本发明涉及实时数据库(RealTimeDatabaseSystem,RTDBS)的并发控制技术, 特别是在航天测控中实时事务的调度与并发控制方法。
【背景技术】
[0002] 在航天测量与控制系统中,从数据的采集、处理、记录、显示、反馈都有严格的时间 限制,为了有效地实现对这些数据的管理和利用,确保数据的实时性和一致性,实时数据库 系统是最好的选择。
[0003] 根据实时事务对于时间限制的要求,此类应用中的RTDBS的事务可以分为两类:
[0004] (1)安全控制、弹道计算、数据接收等事务,时间限制极为严格,超出截止时间可能 导致恶果的事务。这一类事务称为硬实时事务。
[0005] (2)信息显示、数据打印、数据记录等事务,对时间限制不是非常严格,超出截止期 也不会给系统带来恶果。这一类超过其截止期仍有一定价值的事务称为软实时事务。
[0006] 对于这种既包含硬实时事务又包含软实时事务的实时数据库系统,称之为混合实 时数据库系统。
[0007] 传统的实时数据库优先级调度和并发控制算法主要是依据事务的截止时间、是否 接近完成等因素来决定事务的执行序列,不能保证可能造成危害的实时任务优先执行。而 在航天测控数据库中,首先应考虑事务是硬实时事务还是软实时事务,其次才考虑事务的 截止时间、是否接近完成等因素,有必要设计一种新的事务优先级调度和并发控制算法,使 得系统在确保硬实时事务按时完成的同时还要尽可能地使软实时事务也能按时完成。
【发明内容】
[0008] 鉴于传统实时数据库的缺陷,本发明提供一种航天测控数据库的实时事务优先级 确定及并发控制方法。
[0009] 该方法包括以下步骤:
[0010] 航天测控数据库中包括硬实时事务和软实时事务,根据航天测控数据库中事务的 特性构建价值函数。价值函数如下:
[0012] 式中,t为当前时间,sT为事务T的开始时间,dτ为事务T的终止时间,cτ为事务T 的紧迫度,ZT为延迟比率,c为一个中介值,当cc^,时,事务T为硬实时事务。延迟 比率ζτ表示事务价值在终止时间之后下降的比率,表示为:
[0014] 确定实时事务的优先级,价值函数的值越大表明事务的紧迫度越高、终止时间越 短,其优先级也越高。
[0015] 根据实时事务的优先级,采用锁协议的方式制定并发控制,以满足航天测控数据 库中硬实时事务和软实时事务的处理需求。
[0016] 具体地,在所述并发控制过程中发生优先级例置时,首先看请求锁的事务!;和持 有锁的事务ΤΗ是否是硬实时事务,可能有4种情况:
[0017] (1)TR是硬实时事务,ΤΗ是软实时事务,此时无条件夭折事务ΤΗ;
[0018] (2) 1;和ΤΗ都是硬实时事务,若ΤΗ即将完成则继承TR的优先级继续运行,TR等待; 否则夭折TH;
[0019] (3) 1;是软实时事务,ΤH是硬实时事务,则TR无条件等待;
[0020] (4) 1;和ΤH都是软实时事务,若ΤH即将完成则继承TR的优先级继续运行,TR等待; 否则夭折TH。
[0021] 在所述并发控制过程中还包括死锁检测过程:当一个实时事务申请一个锁时,启 动死锁检测,如果检测到一个死锁,跟踪死锁循环,夭折超过零点的实时事务和迟到的紧迫 度最小的事务,若都不满足则夭折可执行的紧迫度最小的事务。
[0022] 通过在航天发射试验中的应用表明,该方法能够合理确定实时事务的优先级,通 过优化的并行控制方法既可以保证硬实时事务优先运行,同时又能尽可能地保证软实时事 务的按时完成,说明了发明的方法大大改进了实时数据库系统在实时事务调度与并发控制 的方法,保证在实时事务大量并发的情况下系统拥有较低的事务夭折率。
【附图说明】
[0023] 图1为实时事务价值示意图;
[0024]图2为扩展的优条件优先级继承算法效果图;
[0025] 图3为航天测控数据库实时事务处理模型。
【具体实施方式】
[0026] 通过以下实施例对本发明的技术方案进行详细描述。
[0027]1、基于实时事务价值函数的优先级分配策略
[0028](1)紧迫度和终止时间优先算法
[0029] 在实时数据库中一般使用优先级驱动的可抢占调度,其关键就在于优先级的分 配。
[0030] 传统的优先级分配算法有一个共同的缺陷,那就是没有考虑事务的紧迫度 (Criticalness),而都是从终止时间上考虑。紧迫度代表实时事务的重要性,终止时间表明 实时事务的时间限制性,它们是实时事务最重要的两个特性,但二者间不存在必然联系。一 个事务被限制在一个短的终止时间内并不一定就代表该事务具有高的紧迫度,具有相同紧 迫度的事务可以有不同的终止时间,终止时间一样的事务可以有不同的紧迫度。从本质上 来讲,具有高紧迫度的事务应该具有更大的价值。因此有必要设计一种在紧迫度和终止时 间上能够综合考虑,二者兼顾的策略。这就是紧迫度和终止时间优先算法。
[0031] 根据航天测控数据库中硬实时事务、软实时事务混杂的特点,可以这样加以分析: 通常硬实时事务因其不能按时完成可能带来危害性,往往具有更高的紧迫度。若设值Ch"d 为一个中介值,可有下式:
[0032]
[0033] 采用事务价值函数VT(t)来表明事务的紧迫度和事务的终止时间。根据航天测控 中的需要,设该价值是事务的紧迫度、开始时间、终止时间和系统当前时间的函数。
[0035] 其中,t为当前时间,sT为事务T的开始时间,dτ为事务T的终止时间,cτ为事务T 的紧迫度(满足1<cT<cT_,cT_为系统中事务所能拥有的最大值)。
[0036] 由图1可看出:事务T2是硬实时事务,其事务价值在开始至终止时间前保持一样, 过了终止时间后立即变为负数,表示给系统带来的危害。事务T1是软实时事务,其事务价 值在开始至终止时间前保持一样,过了终止时间后逐渐下降,在ZT1点下降为零。称ZT1为零 值点,它表明事务T1在过了终止时间dT1后并不马上终止,因为这可能给正在执行的事务带 来负面影响,而是在CPU调度下次试图执行它时才被放弃。
[0037] ^延迟比率,即事务价值在终止时间之后下降的比率,可以设计这个比率是事务 终止时间和紧迫度的线形函数,即&是dcτ的线性函数,如下表示:
[0039] 式中cT增加则ζτ减小,也就是说,cτ值越大则事务值在终止时间后越快地降到零, 显然是适合于航天测控这种对时间要求更为严格的实时系统。
[0040] (2)实时事务的优先级分配算法
[0041] 价值函数^表明了一个事务是否应立即执行的度,其值越大表明事务具有越高的 紧迫度和越短的终止时间,其优先级也应该越高。因此只须取实时事务的优先级ρτ为其价 值函数ντ的线性函数即可,
[0042] pT=kvτ (4)
[0043] k为常系数,可根据系统的实际需要选取。在航天测控数据库中,通过分析和实验, k取值2时实时事务优先级^效果较为理想。
[0044] 已知一个事务的紧迫度、开始时间、终止时间等参数,通过式(1)、(2)、(3)就可以 确定该事务的优先级。就一般而言,硬实时事务因其紧迫度较高从而优先级也高于软实时 事务,但也存在特例,比如一个软实时事务具有较高的紧迫度和极短的终止时间,那么它的 优先级就可能高于一个具有较长终止时间的硬实时事务。这样设计是为了降低软实时事务 的夭折率,在硬实时事务时限宽裕的情况下,允许软实时事务尽快运行。
[0045] 2、实时事务的并发控制
[0046] 优先级驱动可抢占调度有利于新到达的高优先级事务,但有一个重要问题是其他 共享资源也都是可抢占的,否则高优先级的事务必须等待被低优先级事务所占有而当前还 需要的共享资源。这就是所谓的"优先级倒置"情形,这可能引起"串联封锁"等其他问题, 最坏情况是死锁。在实际使用中,由于二阶段锁协议(TwoPhaseLock,2PL)易于使调度串 行化,保证共享时间的一致性,因而得到了广泛的应用。本发明也基于2PL设计了扩展的有 条件优先级继承算法。
[0047] 传统的有条件的优先级继承协议在发生优先