1.一种基于区块链技术的分布式系统避免死锁处理方法,其特征在于,包括执行以下步骤:
步骤1:根据分布式系统的规模和耦合程度,选取某一个区块链,区块链每隔一段时间就会动态同步产生一个新的区块,从而保证了区块链所有节点的实时全局一致性,然后把分布式系统所有节点都加入到该区块链;
步骤2:在分布式系统中建立资源查询表;
步骤3:把该资源查询表广播到整个区块链,验证成功后放到该区块链当前最高区块里;
步骤4:当分布式系统中的某一个进程准备请求某一个资源时,先从当前最高区块里读取资源查询表,然后判断资源状态是否被占用;如果该资源状态是“已占用”,则该进程请求失败,并进入等待状态,直至下一次收到区块链广播资源查询表的信息,就再次进行读取资源查询表,如果该资源状态是“未占用”,则请求该资源成功,然后在资源查询表中把该资源状态修改为“已占用”,并把更新后的资源查询表广播到整个区块链;
步骤5:当分布式系统中的某一个进程释放某一个资源后,就把区块链当前最高区块里的资源查询表进行更新,把该资源状态修改为“未占用”,并把更新后的资源查询表广播到整个区块链,然后返回执行步骤4;
在所述步骤1中,按照耦合程度,所述分布式系统分为紧密耦合分布式系统和松散耦合分布式系统,所选取的区块链包括公链、联盟链或私链;
在所述步骤1中,对于松散耦合分布式系统,区块链选取公链或联盟链,对于紧密耦合分布式系统,区块链选取私链;
在所述步骤1中,所述公链包括比特币系统、以太坊系统;
在所述步骤1中,如果选取以太坊系统,则采用智能合约实现资源查询表的实时全局一致性,如果选取联盟链或者私链,则采用超级账本实现资源查询表的实时全局一致性。
2.根据权利要求1所述的分布式系统避免死锁处理方法,其特征在于:在所述步骤1中,所述分布式系统是由多个相互连接的处理资源组成的计算系统,它们在整个系统的控制下合作执行一个共同的任务;所述处理资源可以是物理上相邻的,也可以是地理上分散的。
3.根据权利要求1所述的分布式系统避免死锁处理方法,其特征在于:在所述步骤2中,分布式系统中的每一个资源都被赋予一个唯一的编号,并且每一个资源都设置有是否已被其他进程占用的状态信息,即资源状态,从而形成一张资源查询表,该资源查询表包括多个字段。
4.根据权利要求3所述的分布式系统避免死锁处理方法,其特征在于:在所述步骤2中,分布式系统中的每一个资源都被赋予一个唯一的编号,如果都是固定IP地址,编号用IP地址开头,然后再把此IP地址的计算机节点上的资源按某种顺序编号。
5.根据权利要求3所述的分布式系统避免死锁处理方法,其特征在于:在所述步骤2中,所述字段包括:资源编号、资源名称、资源状态、资源被哪个进程占用、被占用的时间。
6.一种基于区块链技术的分布式系统避免死锁处理装置,其特征在于,包括:存储器、处理器以及存储在所述存储器上的计算机程序,所述计算机程序配置为由所述处理器调用时实现权利要求1‑5中任一项所述分布式系统避免死锁处理方法的步骤。