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

建立网站解析会员视频是犯什么罪主机网站建设

建立网站解析会员视频是犯什么罪,主机网站建设,公司网页申请,中国建设银行网站易方达消费什么是死锁? 死锁是指两个或多个进程在执行过程中,因争夺资源而造成的一种相互等待的现象,如果没有外力干涉,这些进程将永远无法继续执行 死锁通常发生在多个进程试图同时访问同一资源而无法获取的情况下,例如&#…

什么是死锁?

死锁是指两个或多个进程在执行过程中,因争夺资源而造成的一种相互等待的现象,如果没有外力干涉,这些进程将永远无法继续执行

死锁通常发生在多个进程试图同时访问同一资源而无法获取的情况下,例如,进程 A 需要访问资源 C,进程 B 需要访问资源 D,如果进程 A 获取了资源 C 的锁,进程 B 也获取资源 D 的锁,而进程 A 需要获取资源 D 的锁才能继续执行,进程 B 也需要获取资源 C 的锁才能继续执行,那么进程 A 和进程 B 就会陷入相互等待的状态,导致系统无法继续正常工作


产生死锁的原因

1. 竞争不可抢占资源引起死锁

系统中拥有的不可抢占资源,其数量不足以满足多个进程运行的需要,使得进程在运行过程中,会因争夺资源而陷入僵局。例如:系统中只有一台打印机,进程 A 已占用该打印机,那么进程 B 要求使用打印机将被阻塞

2. 进程推进顺序不当引起死锁

进程在运行过程中,请求和释放资源的顺序不当,也会导致死锁。例如之前概述提到的例子,进程 A 和 B 分别锁住了资源 C 和 D,而进程 A 又申请资源 D,进程 B 又申请资源 C,两者就会因为所需资源被占用而阻塞


产生死锁的四个必要条件

以下四个条件是产生死锁的必要条件,只要系统发生死锁,这些条件必然成立,而只要下述条件有任何一个不满足,就不会发生死锁

  • 互斥条件:一个资源每次只能被一个进程使用
  • 不可剥夺条件:进程已获得的资源,在末使用完之前,不能强行剥夺
  • 请求与保持条件:一个进程因请求资源而阻塞时,对已获得的资源保持不放
  • 环路等待条件:指在发生死锁时,必然形成一种头尾相接的循环等待资源关系,例如:进程集合 {P1,P2,···,Pn} 中的 P1 正在等待 P2 占用的资源;P2 正在等待 P3 占用的资源,……,Pn 正在等待 P1 占用的资源

预防死锁

预防死锁,就是避免四个必要条件同时成立,只要破坏其中一个就可以了

  • 资源可被多个进程同时使用(破坏互斥条件,但一般来说不会这样做)
  • 一次性分配所有资源,这样就不会再有请求资源,自然也不会因为请求资源而阻塞(破坏请求条件)
  • 只要有一个资源得不到分配,也不给这个进程分配其他的资源(破坏保持条件)
  • 当某进程获得部分资源,但得不到其它资源,则释放已占有的资源(破坏不可剥夺条件)
  • 给每一个资源赋予一个编号,每一个进程按编号递增的顺序请求资源,释放则相反(破坏环路等待条件)

具体的实现方法有如下:

  1. 破坏请求与保持条件:可以定义一个系统唯一的资源管理者,由管理者统一分配资源,如果管理员只拿到部分资源,那么就不会进行分配
  2. 破坏不可剥夺条件:进程尝试获取锁时加上一定的时限,超过时限则放弃对该锁的请求,并释放自己占有的锁,过一段时间再重新尝试获取
  3. 破坏环路等待条件:确保所有的进程都是按照相同的顺序获得锁,比如按照锁对象的 hashCode 值大小的顺序,那么死锁也就不会发生了

避免死锁

预防死锁是设法破坏产生死锁的四个必要条件中至少一个,严格的防止死锁的出现,会降低系统性能。有时候即使四个条件都存在,死锁也不一定发生。因此,可以在进行资源分配前预估本次分配是否会导致死锁,不会,则分配资源,否则,进程等待,其中最具有代表性的避免死锁算法是银行家算法


检测死锁

死锁检测是一种更好的死锁预防机制,系统为进程分配资源时,不采取任何限制措施,但提供了检测和解除死锁的手段。当死锁发生时,能检测到死锁发生的位置和原因,并强行破坏死锁发生的必要条件,从而使进程从死锁状态中恢复过来

每当一个线程获得了锁,就在线程和锁相关的数据结构中(map 等)将其记下。除此之外,每当有线程请求锁,也需要记录

当一个线程请求锁失败,这个线程就遍历锁的关系图看看是否有死锁发生,例如:线程 A 请求锁 7,但是锁 7 这个时候被线程 B 持有,线程 A 就检查线程 B 是否已经请求了线程 A 当前所持有的锁,如果线程 B 确实有这样的请求,那么就发生了死锁

一般死锁的情况会复杂很多,线程 A 等待线程 B,线程 B 等待线程 C,线程 C 等待线程 D,线程 D 又在等待线程 A,因此线程 A 为了检测死锁,需要检测所有线程 B 请求的锁,从线程 B 所请求的锁开始,线程 A 找到线程 C,然后又找到线程 D,发现线程 D 请求的锁被线程 A 自己持有,这时线程 A 就知道发生了死锁


解除死锁

一旦出现死锁,就应立即釆取相应的措施,以解除死锁,常用方法有:

  • 资源剥夺法:挂起某些死锁进程,并抢占它的资源,将这些资源分配给其他的死锁进程
  • 撤销进程法:强制撤销死锁进程,撤销的原则可以按进程优先级和撤销进程代价的高低进行
  • 进程回退法:让进程回退到足以回避死锁的地步,进程回退时自愿释放资源而不是被剥夺
http://www.yayakq.cn/news/173956/

相关文章:

  • 城乡建设部注册建筑师网站手机网站 如何 推广方案设计
  • 树莓派做网站郑州网站营销推广
  • 百度 手机网站 友好性网站建设开题报告书
  • js做网站跳转从事网站开发学什么专业
  • 牌具做网站可以吗企业建设网站的优势
  • 南京网站如何制作央企网站群建设中标公告
  • 天津制作企业网站报价上海做网站 公司排名
  • 太原网站搜索引擎优化群辉授权wordpress权限
  • 做的网站需要买什么系统服务器无版权图片做网站
  • 怎样给一个公司做网站百度免费建站平台
  • 做海报的简易网站增加网站流量
  • 医院网站那里填评价计算机培训机构收费
  • 企业网站建设及维护凡科手机版登录
  • wordpress企业网站插件代理ip官网
  • 网站设计方案范本网站平台如何推广
  • 网站免费服务器重庆建设网站的公司
  • 长沙做网站的故事怎么删除网站的死链
  • 苏州定制建站网站建设哪里网站用vue.js做的
  • 网站开发自学还是培训服务器网站建设流程图
  • 建设淘宝网站的市场分析国家已明令禁止现货交易
  • 网站logo是什么wordpress插件怎么破解
  • 自已建外贸网站seo外链推广工具
  • 网站建设和网络营销区别如何在阿里巴巴建网站
  • 长沙哪里优化网站公司注册网上查询
  • 某网站栏目策划电商网站怎么推广
  • 微信 微网站55g游戏网
  • 肇庆网站开发电商软件开发平台
  • wordpress可以仿任何站深圳小程序app开发
  • 网站制作 牛商网 岳阳 公司广西玉林建设厅官方网站
  • 合肥的网站建设州做dj网站用什么建站系统比较好