System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及计算机,具体涉及一种基于有序桶对需求矩阵有序性的初始化和维护方法、系统及其应用。
技术介绍
1、死锁会引起计算机工作僵死,造成整个系统瘫痪,严重影响计算机的工作效率。为了解决死锁问题,操作系统制定有三种防范措施:死锁预防、死锁避免以及解除死锁。因为当计算机进入死锁后再将其从死锁状态中解除所耗费的代价太高,而死锁避免方法是在资源动态分配过程中,防止系统进入不安全状态,以避免发生死锁。另外,死锁避免方法所施加的条件限制较弱,可获得较好的系统性能,所以大部分系统都采用以死锁避免为主的策略来防止计算机进入死锁。
2、银行家算法是最经典的死锁避免算法,但传统的银行家算法的效率并不稳定。在一般情况下,传统的银行家算法的时间复杂度极高为o(n^2*m),其中n代表进程的数目,m代表系统资源种类的数目,从而在一定程度上影响了计算机在死锁避免上的性能。针对上述现有技术的问题,本申请人提出一在先专利申请,名称为“一种基于资源分类排序的改进的银行家算法安全性检测方法及系统”,申请号为:2023125544.8,该专利申请通过将检测单元进行拆分,以单个种类资源需求作为检测单元,并将需求矩阵按资源类型以数组形式拆分排列,从而减少算法中的重复计算,降低算法时间复杂度,并提高算法的灵活性。另外,通过对需求数组进行升序排序,并时刻维护其有序性,获得安全性检测的局部最优解,再通过“盖章办理,章齐受理”的策略调节多个局部最优解的相互影响,获得全局最优解,使得系统只需遍历一次需求数组即可得到检测结果,较好地提升了算法的效率。在该专利申请中,
3、但是由于进程的资源申请是十分随机且不可预测的,故会出现某一时刻有多个新进程进入资源申请队伍的情况。此时采用快速排序算法和简单冒泡排序算法对需求矩阵进行有序性初始化和有序性维护的开销就会大大增加。
技术实现思路
1、为了克服现有技术的不足,本专利技术提供一种基于有序桶对需求矩阵有序性的初始化和维护方法、系统及其应用,用于解决现有技术对需求矩阵进行有序性初始化和有序性维护时开销过大的技术问题,从而达到快速维护有序性的目的。
2、为解决上述问题,本专利技术所采用的技术方案如下:
3、一种基于有序桶对需求矩阵有序性的初始化和维护方法,包括以下步骤:
4、获取各进程的需求向量,根据需求向量按资源类别依次将各进程编号放进对应类别的资源需求有序桶中的末尾位置,并将所述进程编号的存放位置记录在进程资源关联表中;
5、获取所述各进程提出资源申请,根据所述资源申请得到相应的资源申请向量;
6、根据所述资源申请向量更新所述需求向量,并根据更新后的需求向量,通过查询所述进程资源关联表和所述资源需求有序桶进行有序性维护,并更新进程资源关联表;
7、其中,所述需求向量包括不同资源类别的需求量;
8、在将所述各进程按资源类别和需求量分别放入对应类别的资源需求有序桶中后,还包括:
9、根据系统当前持有资源情况对检测结构进行初始化;
10、基于进程资源申请对检测结构进行调整;
11、基于系统资源趋于增长变化对检测结构进行调整。
12、作为本专利技术优选的实施方式,在根据需求向量按资源类别依次将进程编号放进对应类别的资源需求有序桶中的末尾位置和进行记录时,包括:
13、根据所述需求向量,获取所述各进程一资源类别的需求量;
14、根据所述一资源类别找到对应类别的资源需求有序桶,再根据所述一资源类别的需求量,所述各进程在所述对应类别的资源需求有序桶中找到对应编号的资源需求有序桶;
15、将所述各进程编号放进所述对应编号的资源需求有序桶中的末尾位置,并将进程编号的存放位置记录在所述进程资源关联表。
16、作为本专利技术优选的实施方式,在将所述进程编号的存放位置记录在进程资源关联表后,包括:
17、根据所述需求向量,获取所述各进程下一资源类别的需求量;
18、根据所述下一资源类别找到对应类别的资源需求有序桶,再根据所述需求量,在所述对应类别的资源需求有序桶中找到对应编号的资源需求有序桶,将所述进程编号放进所述对应编号的资源需求有序桶中的末尾位置,并将存放位置记录在所述进程资源关联表,直至遍历所述各进程中所有资源类别,完成所述进程资源关联表的初始化。
19、作为本专利技术优选的实施方式,在初始化进程资源关联表后,包括:
20、通过查询所述进程资源关联表,快速定位所述各进程原来各类资源所处资源需求有序桶的存放位置;
21、对所处资源需求有序桶进行调整,再根据所述更新后的需求向量,将所述各进程编号放入对应的资源需求有序桶,并更新所述各进程在所述进程资源关联表中的信息。
22、作为本专利技术优选的实施方式,在对所处资源需求有序桶进行调整时,包括:
23、通过查询所述进程资源关联表,得到所述各进程一资源类别在对应编号的资源需求有序桶中的存放位置;
24、将所述对应编号的资源需求有序桶中的末尾位置的进程编号提到所述存放位置,并修改原末尾位置的进程在所述进程资源关联表中的信息;
25、根据所述更新后的需求向量,获得所述一资源类别新的需求量,再根据所述新的需求量找到对应编号的资源需求有序桶,并将所述各进程编号放进所述对应编号的资源需求有序桶的末尾位置,并更新所述各进程在所述进程资源关联表中的信息。
26、作为本专利技术优选的实施方式,在更新所述进程在所述进程资源关联表中的信息后,包括:
27、继续查询所述进程资源关联表,得到所述各进程下一资源类别在对应编号的资源需求有序桶中的存放位置;
28、将所述对应编号的资源需求有序桶中的末尾位置的进程编号提到所述存放位置,并修改原末尾位置的进程在所述进程资源关联表中的信息;
29、根据所述更新后的需求向量,获得所述下一资源类别新的需求量,再根据所述新的需求量找到对应编号的资源需求有序桶,并将所述各进程编号放进所述对应编号的资源需求有序桶的末尾位置,并更新所述各进程在进程资源关联表中的信息,直至遍历所述进程中所有资源类别。
30、作为本专利技术优选的实施方式,上述方法还包括:
31、将一资源类别的一需求量对应一类别的资源需求有序桶中一编号的资源需求有序桶。
32、作为本专利技术优选的实施方式,上述方法还包括:
33、将一资源类别的多个需求量对应一类别的资源需求有序桶中一编号的资源需求有序桶。
34、一种基于有序桶对需求矩阵有序性的初始化和维护系统,包括:
35、有序性初始化单元:用于获取各进程的需求向量,根据需求向量按资源类别依次将各进程编号放进对应类别的资源需求有序桶中的末尾位置,并将所述进程编号的存放位置记录在进程资源关联表中;
...【技术保护点】
1.一种基于有序桶对需求矩阵有序性的初始化和维护方法,其特征在于,包括以下步骤:
2.根据权利要求1所述的基于有序桶对需求矩阵有序性的初始化和维护方法,其特征在于,在根据需求向量按资源类别依次将进程编号放进对应类别的资源需求有序桶中的末尾位置和进行记录时,包括:
3.根据权利要求2所述的基于有序桶对需求矩阵有序性的初始化和维护方法,其特征在于,在将所述进程编号的存放位置记录在进程资源关联表后,包括:
4.根据权利要求3所述的基于有序桶对需求矩阵有序性的初始化和维护方法,其特征在于,在初始化进程资源关联表后,包括:
5.根据权利要求4所述的基于有序桶对需求矩阵有序性的初始化和维护方法,其特征在于,在对所处资源需求有序桶进行调整时,包括:
6.根据权利要求5所述的基于有序桶对需求矩阵有序性的初始化和维护方法,其特征在于,在更新所述进程在所述进程资源关联表中的信息后,包括:
7.根据权利要求1所述的基于有序桶对需求矩阵有序性的初始化和维护方法,其特征在于,还包括:
8.根据权利要求1所述的基于有序桶对需
9.一种基于有序桶对需求矩阵有序性的初始化和维护系统,其特征在于,包括:
10.一种基于有序桶对需求矩阵有序性的初始化和维护方法及系统的应用,其特征在于,将权利要求1-8任一项所述的方法和权利要求9所述的系统应用在银行家算法中。
...【技术特征摘要】
1.一种基于有序桶对需求矩阵有序性的初始化和维护方法,其特征在于,包括以下步骤:
2.根据权利要求1所述的基于有序桶对需求矩阵有序性的初始化和维护方法,其特征在于,在根据需求向量按资源类别依次将进程编号放进对应类别的资源需求有序桶中的末尾位置和进行记录时,包括:
3.根据权利要求2所述的基于有序桶对需求矩阵有序性的初始化和维护方法,其特征在于,在将所述进程编号的存放位置记录在进程资源关联表后,包括:
4.根据权利要求3所述的基于有序桶对需求矩阵有序性的初始化和维护方法,其特征在于,在初始化进程资源关联表后,包括:
5.根据权利要求4所述的基于有序桶对需求矩阵有序性的初始化和维护方法,其特征在于,...
【专利技术属性】
技术研发人员:何希,庞安隆,陈佳,农健,朱肖颖,宁佳帅,封兴波,冯键,劳宁,黄敏杰,
申请(专利权)人:梧州学院,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。