[发明专利]避免死锁的资源分配方法及系统有效

专利信息
申请号: 201310422363.X 申请日: 2013-09-16
公开(公告)号: CN103473137B 公开(公告)日: 2017-04-12
发明(设计)人: 孙浩 申请(专利权)人: 东软集团股份有限公司
主分类号: G06F9/50 分类号: G06F9/50
代理公司: 北京鸿元知识产权代理有限公司11327 代理人: 陈英俊
地址: 110179 辽*** 国省代码: 辽宁;21
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 避免 死锁 资源 分配 方法 系统
【说明书】:

技术领域

发明涉及计算机系统技术领域,更为具体地,涉及一种避免死锁的资源分配方法及系统。

背景技术

在计算机系统的使用中,经常出现多个并发进程抢占同一资源的现象。如果进行占用资源的顺序不合理,则有可能出现死锁。为了避免死锁的出现,程序设计者有必要保证各个进程对资源的占用处于一种“安全状态”。安全状态是指系统能按某种顺序,例如按照P1,P2,....Pn这样一个安全序列,为每个进程分配其所需资源,直到最大需求,使每个进程都可顺序完成。若系统不存在一个安全序列,则系统处于不安全状态。

避免死锁所处理的问题就是如何保证在每次分配资源之后,整个系统都能处于安全状态。经典的解决方案是所谓的“银行家算法”,此算法对于每次的资源申请都去做一次模拟运算,即所谓的“安全性检查”,看是否在资源分配后每个进程都能顺利完成。如果可以则接受请求,分配资源;否则拒绝请求。假设在进程数N固定,单一资源的情形下,银行家算法的运行原理主要分为以下4步:

步骤1:正确性判断。如果资源请求量大于现存的剩余资源总量,则直接拒绝分配。

步骤2:假设资源y是可分配的,确定分配后的进程序列。

步骤3:对分配后的进程序列做安全性检查,确保N个进程中的每一个都可以拥有足够的资源顺利完成;

步骤4:将没有通过安全性检查的进程序列恢复至分配前的状态。

作为银行家算法的一个实施例,图1示出了传统的银行家算法的流程。

如图1所示,设x表示现有资源剩余量,共有N个进程,r[i]与a[i]分别表示第i个进程的资源需求量与资源占有量,且r[i]<r[i+1],即各进程按资源需求量从小到大有序排列,bank(i,y)表示为资源需求量第i小的进程分配y个单位的资源,分配成功返回1,拒绝分配返回-1。具体地流程如下所示:

S101:输入进程排序号i与资源申请量y;

S102:判断资源申请量y是否大于剩余总资源量x(即y>x),如果是,进入S103,否则进入S104;

S103:申请失败,return-1;

S104:记录分配后的变量值,即r_j=r[i]-y,a_j=a[i]+y,j=i。

S105:判断j>1且r_j<r[j-1],如果是,进入S106,否则进入S107。

S106:变更进程序列排名,即r[j]=r[j-1],a[j]=a[j-1],--j,然后返回S105重新进行判断。

S107:确定排序为i的进程下降至第j位,即r[j]=r_j,a[j]=a_j。

S108:对分配后的进程序列做安全性检查,即x-=y,s=x。

S109:循环计算第k个进程所获取的资源量,即s+=a[k],++k。

S110:判断系数变量k是否小于等于进程总数N,即k<=N,如果是,进入S111,否则进入S112。

S111:判断r[k]>s,如果是,返回S109,否则进入S112。

S112:判断k>N,如果是,进入S113,否则进入S114。

S113:申请成功,返回return1。

S114:恢复变量至原状态,即x+=y,r_j=r[j],a_j=a[j],k=j。

S115:判断k<i,如果是,进入S116,否则,进入S117。

S116:恢复进程排序r[j]=r[j+1];a[j]=a[j+1],++k,返回S115。

S117:r[i]=r_j+y,a[i]=a_j-y。

S118:申请失败,return-1。

从银行家算法的运行原理,再结合图1所示的流程可以看出,银行家算法在理论上是出色的,但在算法性能上却存在着本质的不足。对于每一次资源申请其都要做一整套的流程判断才能最终得到结论,这一点阻碍了其应用。通过分析可以大致计算出,算法运行一次的运算量在接受申请时约为3(i-j)+N步,拒绝申请时约为5(i-j)+N步。在具体的工程中,实时用户往往要求有更好的响应速度,这一点该算法无法满足用户的需求。

发明内容

鉴于上述问题,本发明的目的是提供一种避免死锁的资源分配方法及系统,以在多个并发进程中实现对资源分配的合理性及实时性。

根据本发明的一个方面,提供一种避免死锁的资源分配方法,包括:

按照进程对资源的需求量从小到大对进程进行排序;

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于东软集团股份有限公司,未经东软集团股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201310422363.X/2.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top