设系统中仅有一类数量为M的独占型资源,系统中有N个进程竞争该类资源,其中各进程对该类资源的最大需求数为W,当M,N,W分别取下列值时,试判断哪些情况会发生死锁,为什么?

  1. M=2,N=2,W=1
  2. M=3,N=2   W=2
  3. M=3,N=2,W=3
  4. M=5  N=3  W=2
  5. M=6  N=3  W=3

解答:

1.不会发生死锁。因为系统中只有两个进程,每个进程的最大需求量为1,且系统中资源总数为2,系统能够满足两个进程的最大资源需求量,故不会发生死锁。

2.不会发生死锁。因为系统中有两个进程,每个进程的最大资源需求量为2,且系统中资源总数为3,无论如何分配,两个进程中必有一个进程可以获得两个资源,该进程将顺利完成,从而可以将分配给它的资源归还给系统,使另一个进程也能顺利执行完成,故不会发生死锁。

3.可能发生死锁。因为系统中有两个进程,每个进程的最大资源需求量为3,且系统中资源总量为3,若系统先将全部资源分配给其中一个过程,则该进程将顺利完成,从而可将分配给它的资源归还给系统,使另一进程也能顺利完成,以这种方式分配资源时不会发生死锁;若系统将两个资源分配给一个过程,而剩余的一个资源分配给另一个进程,则系统中没有空闲资源,而每个进程都需要等待资源,此时发生死锁。

4.不会发生死锁。因为系统中有3个过程,每个进程的最大资源需求量为2,且系统中资源总量为5,无论如何分配,3个进程中必有一个进程可以获得2个资源,该进程将顺利完成,从而可以将分配给它的资源归还给系统,使其他进程也能顺利执行完成,故不会发生死锁

5.可能会发生死锁。因为系统中有3个进程,每个进程的最大资源需求量为3,且系统中资源总数为6  ,若系统先将3个资源分配给其中一个过程,则该进程将顺利完成,从而可将分配给它的资源归还给系统,使其他进程也能顺利完成,以这种方式分配资源时不会发生死锁;若系统给每个进程分配两个资源,则系统中没有空间资源,而每个进程都需要等待一个资源,此时发生死锁。

根据条件判断是否发生死锁,已知资源数M、进程数N、最大需求数W(例子!!)相关推荐

  1. 鸡兔同笼。已知鸡兔总头数为h,总脚数为f,求鸡兔各有多少只?

    鸡兔同笼.已知鸡兔总头数为h,总脚数为f,求鸡兔各有多少只?  题目:鸡兔同笼.已知鸡兔总头数为h,总脚数为f,求鸡兔各有多少只? 解法一:假设总头数h全部为鸡,程序如下: #include  < ...

  2. 冒泡已知4个数c语言,C语言-《一维数和冒泡算法》.ppt

    C语言-<一维数和冒泡算法> 一维数组和冒泡算法 本次课程内容 课程目标: 了解数组的概念 掌握一维数组的定义,初始化和取用 掌握排序算法:"冒泡排序"(难点) * 要 ...

  3. 等额本息贷款 ——已知贷款本金、月还款额、贷款月数,反推贷款月利率、年利率-java实现

    等额本息 每月还款计算公式: 每月本息金额 = (本金×月利率×(1+月利率)^还款月数)÷ ((1+月利率)^还款月数-1)) 反转求出 月利率 月利率 如果根据上面公式反转是算不出来的. 下面给出 ...

  4. python:鸡兔同笼,已知鸡兔总头数为 h,总腿数为 f,编写程序计算鸡兔各有多少只。

    h = eval(input("请输入鸡兔的总头数:")) f = eval(input("请输入鸡兔的总腿数:")) fowl = (4 * h - f) / ...

  5. c语言判断一个已知的二叉树是否是二叉排序树_10584 二叉树怎样序列化才能重建...

    「序列化」(serialization),指的是把复杂的数据结构转化为线性结构,以方便存储的过程.序列化得到的线性结构必须能重建出原有的结构,才有意义. 对于二叉树,常用的序列化方法是在树上进行某种遍 ...

  6. 死锁发生的条件以及如何避免死锁

    ⅰ死锁 ¤死锁,它是操作系统或软件运行的一种状态:在多任务下,当一个或多个进程等待系统资源而资源又被系统本身或其它进程占用时,就形成了死锁. 死锁发生的最常见形式是两个或多个线程等待被另一个线程占用的 ...

  7. python 判断数据类型,是否与已知相同

    1. 判断数据类型type(x) x = torch.randint(1,2,[2,2]) print(type(x)) <class 'torch.Tensor'> 2.判断是否与已知一 ...

  8. 参数检验——当总体分布已知(如总体为正态分布),根据样本数据对总体分布的统计参数进行推断 非参数检验——利用样本数据对总体分布形态等进行推断的方法。...

    参数检验(parameter test)全称参数假设检验,是指对参数平均值.方差进行的统计检验.参数检验是推断统计的重要组成部分.当总体分布已知(如总体为正态分布),根据样本数据对总体分布的统计参数进 ...

  9. <From Zero to Hero>零基础学习Python基础语法【条件判断与条件嵌套】

    目录 条件判断 单向判断:if 双向判断:if-else- 多向判断:if-elif-else- if嵌套 if嵌套的执行顺序 如何写嵌套代码 小练习1 小练习2 对于Python来讲,需要正确的[沟 ...

最新文章

  1. 源码分析 @angular/cdk 之 Portal
  2. Nginx+ThinkPHP不支持PathInfo的解决办法
  3. 简明 Git 命令速查表(中文版)
  4. ibm笔记本电脑电池_福建省厦门市集美区电池定制供应多少钱
  5. Enterprise Library: Configuration Application Block应用向导篇, Part 1
  6. html5语义元素表,HTML5的结构和语义(3):语义性的块级元素
  7. php crc32 作用,php的crc32函数使用时需要注意的问题(不然就是坑)
  8. Tech·Ed 2006中国 实况报道
  9. 如何将HBuilder中的项目Push至Gitee中!
  10. Spring : Spring Aop之ProxyFactory
  11. 360无痕浏览器_功能强大好用的浏览器
  12. 前端预览PDF总结:iframe、embed、PDFObject、PDF.js
  13. 幕布笔记按字母顺序导出(Python+Opml)
  14. win10突然不能使用usb大容量存储设备(移动硬盘)的解决方法
  15. MACD怎样判断趋势?巧用MACD指标研判市场的强弱!(实例)
  16. redis incr mysql_INCR
  17. Ubuntu 16.04如何使用无线网卡上网
  18. 农学211高校食堂饭菜价格贵得离谱惹争议!学生:吃不起饭了!
  19. pvifa怎么用计算机算,年金现值系数表【完整版】
  20. mac出现文件夹问号_Macbook文件夹怎么设置隐藏或显示?开机带问号的文件夹怎么办?...

热门文章

  1. SVG排版公众号图文『实时计算日期差』模板代码
  2. 苹果笔记本开不了机的解决措施有哪些
  3. 通信原理Matlab仿真:模拟信号的幅度调制
  4. C++/C语言申请动态空间的详解【new关键字、malloc关键字、delete和free关键字】
  5. 马来西亚吉隆坡召开的2010OpenWebAsia大会
  6. 【未解决】vcs在服务器无法使用——22-03-07工作笔记
  7. flutter 图片加载
  8. 时空-问题集锦(转载)
  9. CAD如何附着外部参照图?
  10. Mybatis学习一