当前位置: 首页 > 专利查询>株吉诺专利>正文

用于防止死锁状态的数据处理方法及系统技术方案

技术编号:7701252 阅读:194 留言:0更新日期:2012-08-23 17:48
本发明专利技术提供一种用于防止死锁状态的数据处理方法及系统,尤其提供如下数据处理方法及系统:在角色系统中处理从消息响应等待状态中接收到的信息,从而防止死锁状态。一种用于防止死锁状态的数据处理方法,其包括:(a)发送读消息,所述读消息用于请求所述数据处理所需的目标角色的状态信息;(b)直到接收到所述读消息的响应为止,只接收和处理被读取角色状态信息的读消息;以及(c)当接收到所述读消息的响应时,利用所述目标角色的状态信息对相关数据进行处理。

【技术实现步骤摘要】
【国外来华专利技术】
本专利技术涉及一种用于防止死锁状态的数据处理方法及系统,尤其涉及这样ー种用于防止死锁状态的数据处理方法及系统,其中,角色(actor)系统对响应等待状态中接收到的消息进行处理,从而防止死锁状态。
技术介绍
随着多核中央处理器(CPU)技术的发展,对ー个芯片中设置多个中央处理器(CPU)内核的处理器的使用増加。作为维持多个CPU所处理数据一致性的方案,在操作系统(OS, operating system)层面提供利用多线程、锁定(Lock)和类似方式实现临界区域的保护功能。但是,只根据此方法来开发和维护庞大的系统就会产生许多困难和费用。此外,还有如下方法其中,为了并行执行,分布式系统只使用消息在对象之间执 行交互。但是,此方法因传达消息的负担(overhead)而降低性能,并可能在等待传输消息响应期间产生死锁状态。在现有技术中,在分布式系统或者多线程系统中用于并行计算的方法包括角色(actor)系统。角色系统被视为并行计算的基本元素。角色能够接收并处理消息,自行计算并做出决定,创建其他的角色,或者向其他角色发送消息。在角色系统中,每个角色都具有其状态,即数据,还具有其自己的处理单元,用于处理数据,例如线程。每个角色在与其它角色异步交換消息时与其它角色发生交互。角色可以对接收到的消息执行如下操作,包括1)变更自己的状态(数据);2)向其他角色发送消息;3)创建新的角色;4)向其他主机移转。角色系统可以使用同步消息。同步消息是ー种消息方案,其中,在接收到对于已经发送消息的响应之后,基于该响应处理后续的操作。同步消息广泛地使用在服务器/客户端系统中,包括分布式系统中。一般应用系统中所有的直接呼叫都可视为同步消息。如果这些同步消息都能够被无限制地允许,则可能会产生死锁状态,其中,两个角色在相互请求对于他们自己的读消息的响应时等待较长时间,从而不能执行其他处理。在这种死锁状态下,可能会导致整体系统停止的严重问题。图I为根据现有技术的角色系统中通过同步消息的收发进行数据处理的方法的信号流程图。在步骤SlO中,第一角色10计算出用于处理数据的元素al,并请求用于处理消息的另ー个元素bl。在步骤S15中,第一角色10检索第二角色20并生成第一读消息,第一角色10将利用第一读消息从第二角色20请求元素bl。由第一角色10生成的第一读消息是同步消息,在接收到针对所发送消息的响应之后,基于所述响应处理后续步骤。在步骤S20中,第一角色10将第一读消息发送给第二角色20。在步骤S25中,第一角色10设定对应于将第一读消息发送给第二角色20的响应等待状态(response standby state)。由于第一读消息是同步消息,所以第一角色10可以在从第二角色20接收到第一读消息的响应之后执行后续步骤。由此,第一角色10在接收到向第二角色20发送的第一读消息的响应之前,将第一角色10的状态设定为响应等待状态。在步骤S30中,第二角色20将从第一角色10接收到的第一读消息储存在消息队列中。在步骤S35中,第二角色20为了获取第一角色10的状态信息而向第一角色10发送第二读消息。在此,第二读消息与第一读消息没有关联。在步骤S40中,第二角色20设定对应于将第二读消息发送给第一角色10的响应等待状态。第二角色20在从第一角色10接收到第二读消息的响应后可执行随后步骤。由此,直到从对方接收到各自的响应为止,第一角色10及第ニ角色20均设定为等待状态,从而不能处理其他消息。因此,第一角色10不能将第二读消息的响应发送给第二角色20,并且第二角色20也不能将第一读消息的响应发送给第一角色10。最終,第一角色10及第ニ角色20为无限等待状态,因此在第一角色10和第二角色20之间产生死锁状态。如上所述,在根据现有技术的角色系统中具有如下问题由于同步读消息发送之后出现的响应等待状态而产生死锁状态。
技术实现思路
在本专利技术的一个实施例中,当角色之间收发同步消息时,可以对预定的消息进行处理,直至接收到读消息的响应,从而防止死锁状态,否则会由于角色长时间等待同步消息的响应而产生死锁状态。并且,在本专利技术的另ー个实施例,当角色存在于相同的存储空间中时,角色可以通过直接呼叫方式读取目标角色的状态信息,从而提高数据处理速度及性能。作为实现上述目标的技术方案,根据在本专利技术的第一方面,提供一种用于防止死锁状态的数据处理方法,其包括以下步骤(a)发送读消息,所述读消息用于请求处理数据所需的目标角色的状态信息;(b)到接收到上述读消息的响应为止,只接收和处理读取角色状态信息的读消息;以及(C)当接收到上述读消息的响应时,利用上述状态信息而处理相关数据。根据本专利技术的第一方面,所述方法还包括以下步骤(d)判断是否需要状态信息的目标角色存在于相同的存储空间中;(e)当上述目标角色存在于相同的存储空间中吋,从上述目标角色直接读取上述状态信息;以及(f)利用上述直接读取的状态信息处理相关数据。并且,根据本专利技术的第一方面,可以从消息队列中接收上述(b)步骤中处理的读消息,消息队列可以储存用于变更角色状态的事件消息,或者读消息。 根据本专利技术的第二方面,可提供一种用于防止死锁状态的数据处理系统,其包括数据处理器,其利用目标角色的状态信息来处理数据;读消息生成器,其生成用于从所述目标角色请求目标角色状态信息的读消息;以及接收消息处理器,在接收到被发送至目标角色的读消息的响应为止而接收到的消息中,其只处理读取角色状态信息的读信息。根据实现上述专利技术目的的技术方案,可以发送作为同步消息的读消息,并在接收到同步读消息的响应之前,可处理从其他角色接收到的读消息,因此,当正在等待同步读消息的响应时,可以分发和处理从消息队列或类似队列接收到的读消息,而不用将接收到的读消息设定为等待状态,从而防止了死锁状态。并且,根据用于实现专利技术目的所述本专利技术的技术方案,能够判断需要其状态信息的目标角色是否位于相同的存储空间中,如果该目标角色位于相同的存储空间中,则经由直接呼叫方案获取该目标角色的状态信息,其中,所述状态信息直接从目标角色获得,而不是使用消息获得状态信息,从而提高了数据处理速度和性能。附图说明图I为根据现有技术的角色系统中通过同步消息的收发进行数据处理的方法的信号流程图。图2为根据本专利技术的一个实施例的数据处理方法的信号流程图。图3为根据本专利技术的一个实施例的数据处理方法的另ー个信号流程图。图4为根据本专利技术的一个实施例的数据处理方法中角色的消息处理的流程图。图5为根据本专利技术的一个实施例的数据处理系统的结构示意图。图6为根据本专利技术的一个实施例的数据处理系统的角色的结构示意图。具体实施例方式以下參照附图对本专利技术的实施例进行详细地说明,使得本专利技术所属的
中具有普遍知识的技术人员易于实施。但是,本专利技术能够体现为各种不同的形态,并不限于在此说明的实施例。并且,为了在图中明确地说明本专利技术,省略了与说明无关的部分,并在整个说明书中,对相同的部件使用相同的附图标号。在整个说明书中,当某部分被描述为“连接到”其他部件吋,它不仅可以“直接连接至IJ”其它部件,而且也可以经过中间部件“电气连接到”其它部件。并且,除非明确地另有说明,否则当某部件被描述为“包括” 一些元件吋,它可以暗指包括任何其它元件而不是排除了其本文档来自技高网
...

【技术保护点】

【技术特征摘要】
【国外来华专利技术】2009.10.30 KR 10-2009-01045001.一种用于防止死锁状态的数据处理方法,包括以下步骤 (a)发送读消息,所述读消息用于请求所述数据处理所需的目标角色的状态信息; (b)直到接收到所述读消息的响应为止,只接收和处理被读取角色状态信息的读消息;以及 (c)当接收到所述读消息的响应时,利用所述目标角色的状态信息对相关数据进行处理。2.根据权利要求I所述的数据处理方法,还包括以下步骤 (d)判断所述目标角色是否位于相同的存储空间中; (e)如果所述目标角色存在于相同的存储空间中,则直接从所述目标角色读取状态信息;以及 (f)利用所述直接读取的状态信息来处理相关数据。3.根据权利要求I所述的数据处理方法,其特征在于,从信息队列中接收步骤(b)中处理的读消息,所述信息队列存储事件消息或读消息,所述事件消息能够用于改变角色状态。4.根据权利要求I所述的数据处理方法,其特征在于,步骤(b)中处理的所述读消息直接从所述角色接收。5.根据权利要求I所述的数据处理方...

【专利技术属性】
技术研发人员:金尚均金昌汉
申请(专利权)人:株吉诺
类型:发明
国别省市:

相关技术
    暂无相关专利
网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1
相关领域技术
  • 暂无相关专利