操作系统死锁避免的两个方法

发表于:2014-5-27 10:35

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:u010462274    来源:51Testing软件测试网采编

  1.安全状态
  如果系统能按着摸个顺序为每个进程分配资源(不超过其最大值)并能避免死锁那么系统状态就是安全的。更为准确的说,如果存在一个安全序列,那么系统处于安全状态。进程顺序《P1,P2.......Pn》,如果对于每个进程Pi,Pi仍然可以申请的资源数下雨当前的可用资源加上所有进程PJ(j<i)所占用资源,那么这一顺序就称为安全序列。
  安全状态不是死锁状态但是死锁状态一定是不安全状态。然而不是所有的不安全状态都能导致死锁状态。
  有了安全状态的概念,可以定义避免算法以确定系统不会死锁。其思想是简单的确保系统始终处于安全状态 。开始系统处于安全状态。当进程申请一个可用资源时,系统必须确定这一资源申请是可以立即分配还是要等待。只有分配后系统仍处于安全状态,才允许被申请。
  采用这种方案,如果进程申请一个现在已经可用的资源,呢么它可能必须等待。因此与没有采用死锁避免算法相比,这种情况下的资源使用率可能更低。
  第一中算法:
  通过环检测法,检测安全性,检测图中是哦福有环算法需要n的平方级的操作,其中n是系统的进程数量。如果没有环存在,那么资源分配会使得系统处于安全状态。如果环存在,那么分配会导致系统处于不安全状态。因此进程Pi必须等待其资源申请被满足。
  算法二:银行家算法:
  银行家算法用于每种资源类型有多个实例的资源分配系统,下面的算法其效率要低于资源分配图算法。
  当新进程进入系统时,它必须说明可能需要的每种类型资源实例的最大数量,这一数量不能超过系统资源的总和。当用户申请一种资源时,系统必须确定这些资源的分配是否仍会使系统处于安全状态,如果是就可以分配资源,如果不是就不分配资源,等待直到某个其他进程释放足够资源为止。
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号