实时数据库的事务调度策略分析
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实时数据库的事务调度策略分析3
蔡 振1) 蔡世洪2) 申志强3)
(重庆邮电大学1) 重庆 400065)(重庆重钢三峰软件有限公司2) 重庆 400039)(重庆大学3) 重庆 400030)
摘 要 实时数据库系统的事务调度策略是系统用来处理实时事务的调度方法。基于调度事务的不同类别产生各异的策略,分析目前各类事务调度策略的优缺点及适应类型,提出新的定时调度和传统的优先级调度相结合的想法。
关键词 事务 策略 优先级调度 定时调度
中图分类号 TP311.138
1 引言
实时数据库系统(RT DBS)是数据库和实时系统相结合的一种新型数据库,是数据和事务都可以有定时特性或显式的定时限制的数据库系统。系统的正确性不仅依赖于事务的逻辑结果,而且依赖于该逻辑结果所产生的时间。所以,实时系统与非实时系统在设计上的一个重要区别在于实时系统将时间看成系统中的一个主要资源。系统中的实时任务都具有多个时间特征,例如,我们所说的时间戳,包括起始时间、运行时间、截止时间等。
由于实时系统的时间特征,使RT DBS设计比较复杂,需要对很多问题进行研究与决策:数据和数据库的结构与组织;事务时限的软硬性;事务模型及其结构特征;事务的调度策略(优先级分派、并发控制的协议与算法);I/O调度、恢复、通信的协议与算法;查询处理算法等,其中事务的调度策略也是近年来国内外学者研究比较多的一个方向。本文探讨和分析实时事务的调度策略。
2 实时数据库的事务调度问题
实时数据库系统是一个用来处理具有定时限制的工作负载的事务处理系统,主要目标是满足事务的截止时间,包括事务对各种资源的调度,即对多个事务占用CP U的调度,多个并发运行事务之间的数据、I/O和内存等资源的调度。
在实时数据库系统的研究中,事务处理(Transacti on Pr ocessing)一直是研究的重点和难点,受到普遍重视。在事务处理中,事务调度策略是最为重要的,其中常用的调度方法是分派事务优先级。这样调度方法的指导思想是通过一定的优先级分派策略使实时事务在事务调度队列中排队来等待调度。
优先级的分派策略都有其适应的特点,采用一种固定优先级分派策略进行调度并不能为实时事务的截至期提供可靠保证,而且采用优先级的调度方法不能准确地指定事务的执行时机[1]。很多优先级分配策略各有其优点和缺陷,所以,在选用优先级分派策略时,还要因地制宜。在进行事务调度时,还要考虑事务的一些要求和特点,其中比较重要的,如执行事务具有的时间约束和依赖性、紧迫程度不同的事务处理要求的异样性等。
3 优先级分配策略及其优缺点
目前普遍研究的调度方法是优先级调度策略,其思想是将待调度的事务在调度队列中采用排队的方式进行排队,然后调度时由调度程序装载队列首的事务进行运行。优先级事务调度策略的亮点就在于组织事务的调度队列,使队列结构和有效元素按优先级有序排列。文献[2]指出在通常的实时系统中使用的优先级指派策略。
3.1 最早放行最优先
该策略以释放时间(release ti m e)为标准安排事务的优先级,所谓释放时间是指事务真正开始运行的时间。该策略类似于“先来先服务”,使“可以开始执行时间”最早的事务具有最高的优先级,做法简单易行。对于实时数据库来说,其缺点是显而易见的,由于没有考虑事务的截止时间,可能会使
56
第35卷(2007)第12期 计算机与数字工程 3收到本文时间:2007年3月27日
作者简介:蔡 振,男,硕士研究生,研究方向:实时数据库系统的理论与应用。蔡世洪,男
,高级工程师,研究方向:
计算机控制。申志强,男,博士研究生,研究方向:控制理论。
一个刚到达的紧急事务等待一个先到来的并不紧急的事务。在某些情况下,这样的事务处理会给系统带来灾难,通常不用于实时事务处理。
3.2 截至期最早最优先
该策略以截至时间(deadline ti m e)为标准安排事务的优先级,所谓“截至期”就是实时事务T 应该完成的最晚时间。该策略表达的意思很简单,使“截至期”最早的事务具有最高的优先级,在很多情况下,配上适当的并发控制协议,其处理结果十分理想。它使得最需要处理(截至时间最短)的事务首先获得系统资源,但由于没有考虑到其事务处理所需的时间,可能会将最高优先级分配给一个要过或已过截止期的事务,从而导致有机会能够在截止期内完成的事务也被推迟而超时。
3.3 可达截至期最早最优先
所谓一个事务T的截至期是当前“可达到”的,其计算表达式如下:
t+(preti m e-runti m e)Φdead line
其中,t为系统的当前时间,preti m e,run ti m e分别为事务T的运行估算时间和已执行时间,dead2 line为其截至期。
通过对事务的执行时间进行预分析来判断事务的截至期是否可达,对可达的事务进行截至期最早的优先调度,不仅考虑了事务的截至时间,还考虑了事务的执行时间,仍以截至时间为标准进行安排事务的优先级,是对“截至期最早最优先”算法的一种改进,有效克服上述策略的缺点。
3.4 剩余时间最短最优先[3]
对于一个事务T,其剩余时间spareti m e的计算公式如下:
spa reti m e=deadline
-(t+preti m e-runti m e)(1)
其中,deadline为截止时间;preti m e,运行估算时间;run ti m e,已执行的时间;t,系统的当前时刻,用定义性语句来描述的话,这样来定义:事务的剩余时间是指事务T的截至期和事务预计能完成时间之间的差。
该策略考虑了事务的截至时间,还考虑了系统的运行时间,以spareti m e为标准安排事务的优先级。对于正在执行的事务,如果spareti m eΕ0则事务处理可在截至时间前完成,在处理过程中spa re2 ti m e不变,事务优先级也不变;如果spareti m e<0,则事务处理已经或将会超过截至时间。一个未执行的事务的剩余时间spareti m e是逐渐减小的,而一个已执行的事务的剩余时间spareti m e是不变的,因而其优先级在增大。但要注意,该策略和前
两种策略还是有差别的,它考虑了当前时间与剩余时间的执行时间估算,针对事务T的停止与执行的变化,确定其优先级升降。
3.5 价值最高最优先[4]
每一事务有一价值函数,其值最大者最优先,取一个函数表达式示例:
V(T)=C(W
1
(t-t
s
)-W3P-W S)(2)其中t、d、P、S表示分别是当前时间、截至时间、已
执行时间、事务执行的空余时间,C、t
s
分别为事务T的危急度、开始时间,W i为加权因子。
显然,要判断事务的优先级需要构造价值函数,而价值函数构造需要根据事务T的价值大小来进行适配,这种方法也可以看成是构造优先级函数来给事务指派优先级。该策略的优点就是综合考虑了事务的价值,以此作为确定优先级别的标准,比较合理利用了系统资源,使优先级的指派更加公平。缺点就是构造函数比较困难,不容易寻找到合适的优先级函数。
按照时间值来安排事务优先级,进行事务调度,机动性不强,灵活处理的程度较低。在调度模型中有不可抢占和可抢占之分,在可抢占模型下,紧急事务进入事务队列,其最后的处理结果应该是不理想的。如果在时间值的基础上,引入非时间因素,也许能对事务处理策略产生不一样的效果。
(1)实时程度最高最优先
对于可抢占的调度模型问题,可以通过动态优先级的调整来解决。系统赋予实时程度最高的事务,不以截至时间、运行时间等作为安排事务优先级的标准。在进入事务调度队列后,应赋予它的优先级也是最高,不管它是什么时候进入调度队列的,立即获取CPU资源进行执行。但很有可能夭折一个或几个正在执行且很紧急的事务,并由此给系统带来灾难性后果。所以该策略主要依赖于系统检查事务的完成情况,需要根据系统检查事务的完成情况做相应的优先级调整。
(2)价值比率最高最优先
在事务调度队列中进行排队的事务,如果几个事务的优先级相同,那么实时程度最高最优先的处理方式就显得相形见肘了。对有着相同优先级的事务,如果我们考虑对这些事务的价值比率进行考察的话,其排队顺序就能区别。考虑事务进行实时程度最高最优先处理的特殊性,价值比率也会时间t的变化而具有动态性的,故而其价值比率表达式可以处理为
6
6 蔡 振等:实时数据库的事务调度策略分析 第35卷