首页 > 其他分享 >操作系统(3.5.2)--计算机系统中的死锁

操作系统(3.5.2)--计算机系统中的死锁

时间:2023-06-11 10:00:55浏览次数:38  
标签:P2 P1 -- send 死锁 3.5 m1 进程

1.竞争不可抢占性资源

系统中所拥有的不可抢占性资源其数量不足以满足多个进程运行的需要,使得进程在运行过程中,会因争夺资源而陷入僵局。

例如:系统中有两个进程P1和P2,它们都准备写两个文件F1和F2,而这两者都属于可重用和不可抢占性资源。进程P1先打开F1,然后再打开文件F2;进程P2先打开文件F2,后打开F1:

操作系统(3.5.2)--计算机系统中的死锁_死锁

2.竞争可消耗资源产生死锁

m1,m2,m3是可消耗资源,P1一方面产生消息m1,利用send(p2, m1)原语将它发送给P2;另一方面,它又要求从P3接收消息m3。而进程P2一方面产生消息m2,利用send(p3, m2)原语将它发送给P3;另一方面,它又需要接收进程P1所产生的消息m1。类似地,进程P3也产生消息m3,利用send(p1, m3)原语将它发送给P1,而它又要求从进程P2接收其所产生的消息m2。

这三个进程都可以先将消息发送给下一个进程,相应地它们也都能够接收到从上一个进程发来的消息,因此三个进程可以顺利地运行下去,而不会发生死锁。但若改成三个进程都先执行receive 操作,后执行send操作则这三个进程就会永远阻塞在它们的receive操作上,等待一条永远不会 发出的消息,于是发生了死锁。

操作系统(3.5.2)--计算机系统中的死锁_原语_02

3.进程推进顺序不当引发死锁

进程推进顺序合法

进程推进顺序非法

标签:P2,P1,--,send,死锁,3.5,m1,进程
From: https://blog.51cto.com/hwuu/6457077

相关文章

  • 超详细!手把手教你用 JaCoCo 生成单测覆盖率报告!
    我们都知道Spock是一个单测框架,其特点是语法简明。但当我们使用Spock写了一堆单元测试之后,如何生成对应的单测覆盖率报告呢?一般来说,我们会使用两个插件来一起完成单测覆盖率报告的生成,分别是:MavenSurefirePluginJaCoCoPlugin其中MavenSurefirePlugin是用来在Maven的编......
  • System.SysUtils.TStringHelper
    大小写转换:functionToLower:string;functionToLower(LocaleID:TLocaleID):string;functionToLowerInvariant:string;functionToUpper:string;functionToUpper(LocaleID:TLocaleID):string;functionToUpperInvariant:string;classfunctionLowerCase(cons......
  • 工程数学上机5
    实验五:MATLAB最优化工具箱的使用一、实验目的通过一个农业生产计划优化安排的实例求解,培养学生解决实际线性规划问题的初步能力;熟悉线性规划的建模过程;掌握Matlab优化工具箱中线性规划函数的调用。 二、实验内容某村计划在100公顷的土地上种植a、b 、c 三种农作物......
  • ubuntu22.04设置静态ip
    设置虚拟机网络修改配置文件查看配置文件ls/etc/netplansudovi01-network-manager-all.yaml//添加如下配置network:ethernets:ens33:dhcp4:false//关闭dhcpaddresses:[192.168.5.21/24]//设置静态ipoptional:trueroutes:......
  • web实验2
    实验项目名称:实验二  服务器端简单程序设计 一、实验目的通过一个小型网站的开发,掌握JSP基础知识,加深对session,request,response,cookie等对象的理解,掌握其使用方法,进一步深入掌握HTML、CSS和JavaScript等知识。二、实验内容和基本要求1)编写index.jsp文件,展示某一类物品或......
  • web实验3
    实验项目名称:实验三  Web数据库程序设计 一、实验目的通过使用JSP技术设计一个简单的数据库管理系统,了解展示页面和编辑页面的区别,掌握Web服务器与MySQL数据库的连接和数据库操作的方法,掌握使用Java语言编写JSP文件的方法。二、实验内容和基本要求从以下列举的四个数据库......
  • 程序员自由职业的第一次接单,我踩了哪些坑?
    Hello,大家好,我是吹白,今天来聊一聊我自由职业之后接的第一个单子以及这个单子带给我的经验教训,希望对大家避坑有所帮助。说来惭愧,在深圳做了几年Android/Flutter画图仔,并没有存下什么钱。离职的时候,我手上只有差不多一年的生活费。离职的第一个感觉是心慌,因为不再会有人在每个月的......
  • web实验4
    实验项目名称:实验四  Web综合应用程序设计 一、实验目的通过使用JavaMVC模式设计简单的数据库管理系统,巩固使用JDBC技术访问数据库的方法,学习使用Java语言对服务器端进行编程,深入理解MVC网站设计模式的基本概念和框架结构。二、实验内容和基本要求从以下列举的四个数据库......
  • vue3的composition API如何使用async语句
    问题:在setup使用aysnc,生命函数钩子和函数必须出现在await语句前面,否者会出现组件无法渲染以及内存泄漏的问题。import{ref,watch,onMounted,onUnmounted}from'vue'exportdefaultdefineAsyncComponent({asyncsetup(){constcounter=ref(0......
  • 固定导航结构
          ......