APP下载

基于银行家算法的安全序列分析

2021-04-20李坤芩熊琰王磊田丰

电子技术与软件工程 2021年2期
关键词:进程安全性资源

李坤芩 熊琰 王磊 田丰

(贵州商学院计算机与信息工程学院 贵州省贵阳市 550014)

操作系统调度算法有很多,如FCFS、SJF、RR 算法、银行家算法等[1]。避免死锁的最具代表性算法——银行家算法,银行能把资金贷给所有需要的客户,不会发生不满足的情况。在操作系统中,利用银行家算法的思想来避免死锁,即所有进程都必须保证能利用系统最大数量的资源,运行完成后将其资源释放给系统。

1 安全序列

系统有两种状态,即安全和不安全。当系统处在安全状态时,可以避免死锁;当系统处在不安全状态时,可能会发生死锁的发生[1]。系统能够按照某种进程推进顺序(P1,P2,...,Pn)为所有进程分配其所需要的资源,使所有进程都能如期完成,则系统处于安全状态,便不会进入死锁状态,(P1,P2,...,Pn)为安全序列[1]。如果系统不能找到一个安全序列,则系统处于不安全状态[1],有可能进入死锁状态。因此,避免死锁的本质就是使系统不要进入不安全状态。

2 银行家算法的数据结构

算法中有Available、Max、Allocation 和Need 四个数据结构,还存在以下关系:Need=Max-Allocation,详情如下:

(1)可分配资源向量Available,系统最后还剩下的可利用资源个数[2]。

(2)最大需求矩阵Max,某个进程一共需要的资源个数[2]。

(3)分配矩阵Allocation,某个进程已经占有的资源个数[2]。

(4)需求矩阵Need,某个进程还需要的资源个数[2]。

3 银行家算法

假设系统中有进程M 个,当进程Pi 申请(Requesti)资源时,资源分配如下:

(1)如果Requesti≤Needi,则转向第(2)步;反之出错返回。

(2)如果Requesti≤Available,则转向第(3)步;反之进程Pi等待。

(3)假定进程Pi得到资源分配并修改以下参数[3]:

Available=Available-Requesti

Allocationi=Allocationi+Requesti

Needi=Needi-Requesti

(4)安全性算法检查:如果系统能找到安全序列,说明系统安全,可以顺利进行[3];……

登录APP查看全文

猜你喜欢

进程安全性资源
两款输液泵的输血安全性评估
新染料可提高电动汽车安全性
基础教育资源展示
债券市场对外开放的进程与展望
资源回收
资源再生 欢迎订阅
ApplePay横空出世 安全性遭受质疑 拿什么保护你,我的苹果支付?
Imagination发布可实现下一代SoC安全性的OmniShield技术
社会进程中的新闻学探寻
我国高等教育改革进程与反思