基于区块链技术的分布式系统避免死锁处理方法及装置制造方法及图纸

技术编号:34538444 阅读:35 留言:0更新日期:2022-08-13 21:33
本发明专利技术提供一种基于区块链技术的分布式系统避免死锁处理方法及装置,该方法包括执行以下步骤:步骤1:根据分布式系统的规模和耦合程度,选取某一区块链,然后把分布式系统所有节点都加到该区块链;步骤2:在分布式系统中建立一张资源查询表;步骤3:把该资源查询表广播到整个区块链,验证成功后放到该区块链当前最高区块;步骤4:当分布式系统中的某一个进程准备请求某一个资源时,先从当前最高区块里读取资源查询表,然后判断资源状态是否被占用;步骤5:当分布式系统中的某一个进程释放某一个资源后,就把区块链当前最高区块里的资源查询表的资源状态进行更新,并广播到区块链。本发明专利技术的有益效果是:弥补了分布式系统没有全局时钟的不足。钟的不足。钟的不足。

【技术实现步骤摘要】
基于区块链技术的分布式系统避免死锁处理方法及装置


[0001]本专利技术涉及区块链领域,尤其涉及一种基于区块链技术的分布式系统避免死锁处理方法及装置。

技术介绍

[0002]区块链是一种去中心化的链式数据结构,它由一系列有序的区块链接而成,它本质上是一个去中心化的数据库,是一串使用密码学方法关联产生的数据区块。每隔一段时间,区块链网络中最先解出密码学难题的节点生成的区块被当成最新的区块,并广播同步给其他节点进行验证和确认,经确认有效的新区块将加入链中,作为该区块链当前的最高区块。这个最高区块将可以使得整个区块链网络节点中的区块保持实时一致性。区块链通过维护数据块的链式结构,可以维持持续增长的、不可篡改的实时全局一致性数据记录。
[0003]在分布式系统中,当一组进程中的某些成员由于无法访问到组中其他成员占用的资源而被无限期阻塞时,就产生了死锁。死锁浪费了满足其他请求所需要的资源,从而极大地阻碍了系统性能。而避免死锁就需要知道如何请求资源,如何动态检查资源分配状态,以保证没有无限期阻塞发生。因此,死锁避免的一个潜在问题是要能实时地收集到分布式系统资源的一致性全局状态信息,以便能实时检查资源分配状态,从而避免死锁。然而,由于分布式系统没有全局时钟,从而各个节点资源状态信息很难保持实时全局一致性,因此分布式系统很少使用死锁避免。

技术实现思路

[0004]本专利技术提供了一种基于区块链技术的分布式系统避免死锁处理方法,包括执行以下步骤:
[0005]步骤1:根据分布式系统的规模和耦合程度,选取某一个区块链,然后把分布式系统所有节点都加入到该区块链。
[0006]步骤2:在分布式系统中建立一张资源查询表。
[0007]步骤3:把该资源查询表广播到整个区块链,验证成功后放到该区块链当前最高区块里。
[0008]步骤4:当分布式系统中的某一个进程准备请求某一个资源时,先从当前最高区块里读取资源查询表,然后判断资源状态是否被占用;如果该资源状态是“已占用”,则该进程请求失败,并进入等待状态,直至下一次收到区块链广播资源查询表的信息,就再次进行读取资源查询表,如果该资源状态是“未占用”,则请求该资源成功,然后在资源查询表中把该资源状态修改为“已占用”,并把更新后的资源查询表广播到整个区块链。
[0009]步骤5:当分布式系统中的某一个进程释放某一个资源后,就把区块链当前最高区块里资源查询表进行更新,把该资源状态修改为“未占用”,并把更新后的资源查询表广播到整个区块链,然后返回执行步骤4。
[0010]作为本专利技术的进一步改进,在所述步骤1中,按照耦合程度,所述分布式系统分为
紧密耦合分布式系统和松散耦合分布式系统,所选取的区块链包括公链、联盟链或私链。
[0011]作为本专利技术的进一步改进,在所述步骤1中,对于松散耦合分布式系统,区块链选取公链或联盟链,对于紧密耦合分布式系统,区块链选取私链。
[0012]作为本专利技术的进一步改进,在所述步骤1中,所述公链包括比特币系统、以太坊系统。
[0013]作为本专利技术的进一步改进,在所述步骤1中,如果选取以太坊系统,则采用智能合约实现资源查询表的实时全局一致性,如果选取联盟链或者私链,则采用超级账本实现资源查询表的实时全局一致性。
[0014]作为本专利技术的进一步改进,在所述步骤1中,所述分布式系统是由多个相互连接的处理资源组成的计算系统,它们在整个系统的控制下合作执行一个共同的任务;所述处理资源可以是物理上相邻的,也可以是地理上分散的。
[0015]作为本专利技术的进一步改进,在所述步骤2中,分布式系统中的每一个资源都被赋予一个唯一的编号,并且每一个资源都设置有是否已被其他进程占用的状态信息,即资源状态,从而形成一张资源查询表,该资源查询表包括多个字段。
[0016]作为本专利技术的进一步改进,在所述步骤2中,分布式系统中的每一个资源都被赋予一个唯一的编号,如果都是固定IP地址,编号用IP地址开头,然后再把此IP地址的计算机节点上的资源按某种顺序编号。
[0017]作为本专利技术的进一步改进,在所述步骤2中,所述字段包括:资源编号、资源名称、资源状态、资源被哪个进程占用、被占用的时间。
[0018]本专利技术还公开了一种基于区块链技术的分布式系统避免死锁处理装置,包括:存储器、处理器以及存储在所述存储器上的计算机程序,所述计算机程序配置为由所述处理器调用时实现本专利技术所述分布式系统避免死锁处理方法的步骤。
[0019]本专利技术的有益效果是:1.本专利技术的分布式系统避免死锁处理方法利用区块链的实时广播同步机制,弥补了分布式系统没有全局时钟的不足。2.本专利技术的分布式系统避免死锁处理方法通过设置一个资源查询表,并把该资源查询表上链,可以有效地避免分布式系统死锁的发生,从而大大提高了分布式系统的性能。
附图说明
[0020]图1是本专利技术分布式系统避免死锁处理方法的流程图;
[0021]图2是本专利技术分布式系统避免死锁处理方法的实施示意图。
具体实施方式
[0022]如图1所示,本专利技术公开了一种基于区块链技术的分布式系统避免死锁处理方法,包括执行以下步骤:
[0023]步骤1:根据分布式系统的规模和耦合程度,选取某一个区块链,可以选取公链、联盟链或私链,然后把分布式系统所有节点都加入到该区块链。
[0024]步骤2:分布式系统中的每一个资源都被赋予一个唯一的编号,并且每一个资源都设置有是否已被其他进程占用的状态信息,即资源状态,从而形成一张资源查询表,该资源查询表有三个字段,一是资源编号,二是资源名称,三是资源状态,还可以加入其他的一些
字段,比如资源被哪个进程占用,以及被占用的时间等。如果都是固定IP地址,编号可以考虑用IP地址开头,然后再把此IP地址的计算机节点上的资源按某种顺序编号。
[0025]本专利技术分布式系统避免死锁处理方法的资源查询表如下:
[0026]资源编号资源名称资源状态1Resource A未占用2Resource B已占用
………
NResource M未占用
[0027]步骤3:把该资源查询表广播到整个区块链,验证成功后放到该区块链当前最高区块里。
[0028]步骤4:当分布式系统中的某一个进程准备请求某一个资源时,先从当前最高区块里读取资源查询表,然后判断资源状态是否被占用;如果该资源状态是“已占用”,则该进程请求失败,并进入等待状态,直至下一次收到区块链广播资源查询表的信息,就再次进行读取资源查询表,如果该资源状态是“未占用”,则请求该资源成功,然后在资源查询表中把该资源状态修改为“已占用”,并把更新后的资源查询表广播到整个区块链;步骤5:当分布式系统中的某一个进程释放某一个资源后,就把区块链当前最高区块里的资源查询表进行更新,把该资源状态修改为“未占用”,并把更新后的资源查询表广播到整个区块链,然后返回执行步骤4。
[0029]所述步骤1中,所述分布式系统是由多个相互连接的处本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于区块链技术的分布式系统避免死锁处理方法,其特征在于,包括执行以下步骤:步骤1:根据分布式系统的规模和耦合程度,选取某一个区块链,然后把分布式系统所有节点都加入到该区块链;步骤2:在分布式系统中建立资源查询表;步骤3:把该资源查询表广播到整个区块链,验证成功后放到该区块链当前最高区块里;步骤4:当分布式系统中的某一个进程准备请求某一个资源时,先从当前最高区块里读取资源查询表,然后判断资源状态是否被占用;如果该资源状态是“已占用”,则该进程请求失败,并进入等待状态,直至下一次收到区块链广播资源查询表的信息,就再次进行读取资源查询表,如果该资源状态是“未占用”,则请求该资源成功,然后在资源查询表中把该资源状态修改为“已占用”,并把更新后的资源查询表广播到整个区块链;步骤5:当分布式系统中的某一个进程释放某一个资源后,就把区块链当前最高区块里的资源查询表进行更新,把该资源状态修改为“未占用”,并把更新后的资源查询表广播到整个区块链,然后返回执行步骤4。2.根据权利要求1所述的分布式系统避免死锁处理方法,其特征在于:在所述步骤1中,按照耦合程度,所述分布式系统分为紧密耦合分布式系统和松散耦合分布式系统,所选取的区块链包括公链、联盟链或私链。3.根据权利要求2所述的分布式系统避免死锁处理方法,其特征在于:在所述步骤1中,对于松散耦合分布式系统,区块链选取公链或联盟链,对于紧密耦合分布式系统,区块链选取私链。4.根据权利要求3所述的分布式系统避免死锁处理方法,其特征在于:在所述步骤1中,所述公链包括比特币系统、以太坊...

【专利技术属性】
技术研发人员:邬可可胡光武张平安但唐仁黄晓东
申请(专利权)人:深圳信息职业技术学院
类型:发明
国别省市:

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

1