当前位置: 首页 > news >正文

汉中定制网站建设公司开电商网站需要多少钱

汉中定制网站建设公司,开电商网站需要多少钱,wordpress 卡顿,建设银行朝阳支行网站银行家算法 银行家算法是一种用来避免操作系统死锁出现的有效算法,所以在引入银行家算法的解释之前,有必要简单介绍一下死锁的概念。 一、死锁 死锁:是指两个或两个以上的进程在执行过程中,由于竞争资源或者由于彼此通信而造成…

银行家算法

银行家算法是一种用来避免操作系统死锁出现的有效算法,所以在引入银行家算法的解释之前,有必要简单介绍一下死锁的概念。

一、死锁

死锁:是指两个或两个以上的进程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象,若无外力的作用,它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程称为死锁进程。

死锁的发生必须具备以下四个必要条件

1.互斥条件:指进程对所分配到的资源进行排他性使用,即在一段时间内某资源只由一个进程占用。如果此时还有其它进程请求资源,则请求者只能等待,直至占有资源的进程释放。

2.请求和保持条件:指进程已经保持至少一个资源,但又提出了新的资源请求,而该资源已被其它进程占有,此时请求进程阻塞,但又对自己获得的其它资源保持不放。

3.不抢占条件:指进程已获得的资源,在未使用完之前,不能被剥夺,只能在使用完后由自己释放。

4.循环等待条件:指在发生死锁时,必然存在一个进程—资源的环形链。

避免死锁算法中最有代表性的算法就是Dijkstra E.W 于1968年提出的银行家算法,银行家算法是避免死锁的一种重要方法,防止死锁的机构只能确保上述四个条件之一不出现,则系统就不会发生死锁。

二、银行家算法

安全序列: 是指一个进程序列是安全的,即对于每一个进程,它以后尚需要的资源量不超过系统当前剩余资源量与所有进程当前占有的资源量之和。

安全状态: 如果存在一个由系统中所有进程构成的安全序列,则系统处于安全状态。安全状态一定是没有死锁发生。

不安全状态: 不存在一个安全序列。不安全状态不一定导致死锁。

数据结构

1)可利用资源向量Available
是个含有m个元素的数组,其中的每一个元素代表一类可利用的资源数目。如果Available[j]=K,则表示系统中现有Rj类资源K个。
2)最大需求矩阵Max
这是一个n×m的矩阵,它定义了系统中n个进程中的每一个进程对m类资源的最大需求。如果Max[i,j]=K,则表示进程i需要Rj类资源的最大数目为K。
3)分配矩阵Allocation
这也是一个n×m的矩阵,它定义了系统中每一类资源当前已分配给每一进程的资源数。如果Allocation[i,j]=K,则表示进程i当前已分得Rj类资源的 数目为K。
4)需求矩阵Need

这也是一个n×m的矩阵,用以表示每一个进程尚需的各类资源数。如果Need[i,j]=K,则表示进程i还需要Rj类资源K个,方能完成其任务。

存在的关系:Need[i,j]=Max[i,j]-Allocation[i,j]

Need[i,j]=Max[i,j]-Allocation[i,j]

银行家算法步骤

设Request(i)是进程Pi的请求向量,如果Request(i)[j]=k,表示进程Pi需要K个R(j)类型的资源。当Pi发现资源请求后系统将进行下列步骤

(1)如果Request(i)[j] <= Need[i,j],边转向步骤2),否则认为出错,因为它所请求的资源数已超过它所宣布的最大值。

(2)如果Request(i)[j] <= Available[i,j],便转向步骤3),否则,表示尚无足够资源,Pi需等待。

(3)系统试探着把资源分配给进程Pi,并需要修改下面数据结构中的数值;

Available[j] = Available[j] - Request(i)[j];

Allocation[i,j] = Allocation[i,j] + Request(i)[j];

Need[i,j] = Need[i,j] - Request(i)[j];

说了这么多基本的概念,下面就让我们通过实际案例来体会银行算法吧。

三、实战

img解析:

从图中数据我们可以利用银行家算法的四个数据结构,来描述当前的系统状态

image-20230220234019760

因为系统资源R =(17,5,20)而系统分配给这几个线程的资源为Allocation=(15,2,17) 则可以求出Available=(2,3,3)
(1)在T0时刻,由于Available大于等于Need中 P5 所在行的向量,因此Availabel能满足 P5 的运行,在 P5 运行后,系统的状态变更为如下图所示:

image-20230220233617660

因此,在T0时刻,存在安全序列:P5,P4,P3,P2,P1(并不唯一)

(2)P2请求资源,P2发出请求向量Request(i)(0,3,4),系统根据银行家算法进行检查;
① P2 申请资源Reuqest(i)(0,3,4)<=Need中 P2 所在行向量Need(i)(1,3,4)

② P2 申请资源Reuqest(i)(0,3,4)>=可以利用资源向量Availabel(2,3,3),所以,该申请不给于分配

(3)P4请求资源,P4发出请求向量Request(i)(2,0,1),系统根据银行家算法进行检查;

①Reuqest(i)(2,0,1)<= Need(i)(2,2,1)

② Reuqest(i)(2,0,1 <= Availabel(2,3,3)

③对 P4 的申请(2,0,1)进行预分配后,系统的状态为:

image-20230220233644871

可利用资源向量Availabel=(0,3,2),大于Need中 P4 所在行的向量(0,2,0),因此可以满足 P4 的运行。P4 运行结束后,系统的状态变为:

image-20230220233700148

同理依次推导,可计算出存在安全序列P4,P5,P3,P2,P1(并不唯一)

(4)P1请求资源,P1发出请求向量Request(i)(0,2,0),系统根据银行家算法进行检查;

①Request(i)(0,2,0)<= Need(i)(3,4,7)

② Request(i)(0,2,0)<= Availabel(2,3,3)

③对 P1 的申请(0,2,0)进行预分配后,系统的状态为:

image-20230220233908894

由于Available不大于等于 P1 到 P5 任一进程在Need中的需求向量,因此系统进行预分配后

处于不安全状态,所以对于 P1 申请资源(0,2,0)不给予分配。

注意:因为(4)是建立在第(3)问的基础上的所以Available=(0,3,2)-(0,2,0)=(0,1,2)

向量,因此系统进行预分配后

处于不安全状态,所以对于 P1 申请资源(0,2,0)不给予分配。

注意:因为(4)是建立在第(3)问的基础上的所以Available=(0,3,2)-(0,2,0)=(0,1,2)

http://www.yayakq.cn/news/484904/

相关文章:

  • 自己搭建网站需要什么综合门户类网站有哪些
  • 昆明网络营销网站邢台论坛网
  • 手机网站大全排行网站建设服务咨询
  • 做网站要怎样加盟欧普门户网站平台建设方案
  • 贵州省建设厅公示网站电商企业网站建设方案
  • 门户网站价格鸟人 网站建设
  • 域名做违法网站佛山专业做淘宝网站推广
  • flash如何做网站怎么用wordpress做网站
  • 网站设计制作全网优惠小程序报价单模板
  • asp 网站模板成都网站建设 工资
  • 网站报价方案怎么做网页制作三剑客专家培训教程
  • 龙岩做网站开发找哪家建站宝盒是什么
  • 介休做网站wordpress外观无法编辑
  • 网站建设丶金手指下拉12wordpress wpex
  • 做网站赚钱平台微信小程序开发教程官方文档
  • 正规网站建设方案详细上海中学地址
  • 建设银行人力资源系统网站国外试用网站空间
  • php网站开发实例教程码源专业建设网站哪个好
  • 网站上如何设置行间距玉环县企业网站建设
  • 西凤酒网站建设的基本情况印章在线制作网站
  • o2o网站制作企业网站的布局类型
  • 黄埔网站建设 信科网络会员制营销方案
  • 百度网站做pc自适应wordpress网站制作教程视频
  • 手机网站维护费信誉好的合肥网站建设
  • 安徽住房和建设网站南城网站建设公司案例
  • 招聘网站可做哪些推广方案电商沙盘seo优化
  • 全国住房和城乡建设厅网站接做网站的私活怎么报价
  • 模板网站建设咨询网站做地域屏蔽
  • 网站建设开题报告论述公司设立流程七个步骤
  • c++网站开发杭州个体户注册