死锁的处理策略“预防死锁”-第三十七天

目录

前言

破坏互斥条件

破坏不剥夺条件

破坏请求和保持条件

静态分配法

破坏循环等待条件

顺序资源分配法

本节思维导图


前言

死锁的产生必须满足四个必要条件,只要其中一个或几个条件不满足,死锁就不会发生

破坏互斥条件

互斥条件:只有对必须互斥使用的资源的争抢才会导致死锁

缺点:并不是所有资源都可以改成可共享使用的资源,并且为了系统安全,很多地方还必须保护这种互斥性,因此,很多时候都无法破坏互斥条件

破坏不剥夺条件

不剥夺条件:进程所获得的资源在未适用完之前,不能由其他进程强行夺走,只能主动释放

方案一:当某个进程请求新的资源得不到满足时,它必须立即释放保持的所有资源,待以后需要时再重新申请(即使某些资源尚未使用完,也需要主动释放,从而破坏不可剥夺条件)

方案二:当某个进程需要的资源被其他进程所占有的时候,可以由操作系统协助,将想要的资源强行剥夺,这种方式一个般需要考虑各进程的优先级(如:剥夺调度方式,就是将处理机资源强行剥夺给优先级更高的进程使用)

缺点:

  1. 实现复杂
  2. 释放已获得的资源可能造成前一阶段工作的失效,因此这种方法一般只适用于易保存和易恢复状态的资源(CPU)
  3. 反复地申请和释放资源会增加系统开销,降低系统吞吐量
  4. 若采用方案一,意味着只要暂时得不到某个资源,之前获得地那些资源就都需要放弃,以后再重新申请。如果一直发生这样地情况,就会导致进程饥饿

破坏请求和保持条件

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

静态分配法

进程在运行前一次申请完它所需要地全部资源,在它的资源未满足前,不让它投入运行,一旦投入运行后,这些资源就一直归它所有,该进程就不会再请求别的任何资源

优点:实现简单

缺点:有些资源可能只需要很短地时间,因此如果进程的整个运行期间都一直保持着所有的资源,就会造成严重的资源浪费,资源利用率极低,另外,该策略也有可能导致某些进程饥饿

 A类进程和B类进程分别只需要资源1与资源2,C类进程需要资源1和资源2,如果有源源不断的A类进程和B类进程,那么只有当A类和B类进程都完成时才会去执行C类进程,在等待的过程中可能C类资源就会处于"饥饿"状态

破坏循环等待条件

循环等待条件:存在一种进程资源的循环等待链,链中的每一个进程已获得的资源同时被下一个进程所请求

顺序资源分配法

首先给系统中的资源编号,规定每个进程必须按照编号递增的顺序请求资源,同类资源(即编号相同的资源)一次申请完

原理: 一个进程只有已占有小编号的资源时,才有资格申请更大编号的资源,按此规则,已持有更大编号资源的进程不可能逆向地回来申请小编号地资源,从而不会产生循环等待现象

缺点:

  1. 不方便增加新的设备,因为可能需要重新分配所有的编号
  2. 进程实际使用资源的顺序可能和编号递增顺序不一致,会导致资源浪费
  3. 必须按规定次序申请资源,用户编程麻烦 

本节思维导图

~over~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/290314.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

看这里!分享3个有关iPhone照片恢复的好用方法!

手机照片可以记录下我们所经历的点点滴滴,为我们留下宝贵的生活记忆。因此,我们应该珍惜并妥善保管这些照片。 但在使用手机的过程中难免会发生意外,手机照片丢失了怎么办?别着急!今天,小编将为大家介绍有…

Linux 互相挂载远程服务器的硬盘

该操作最好保证两台服务器在 高速局域网路由的情况使用。 1.安装 sshfs sudo apt-get updatesudo apt-get install sshfs 2. 创建挂载点: mkdir /path/to/mount/point 3. 挂载远程文件系统: 使用以下命令将远程服务器上的文件系统挂载到本地创建的挂…

共享WiFi贴项目加盟可以解决商家哪些痛点?

近年来,共享WiFi贴项目在共享商业领域引起了广泛关注。作为一种便捷的网络分享工具,共享WiFi贴不仅受到很多人的青睐,更能够为商家带来诸多实际利益。那么,共享WiFi贴项目加盟究竟可以解决商家哪些痛点呢? 共享WiFi贴为…

跨境电商源码技术大揭秘:9个最常见的问题及解决方案

跨境电商发展迅猛,源码技术成为关键。作为跨境电商源码领域的专家,我将向大家揭秘9个最常见的问题及解决方案,帮助您更好地应对挑战,实现技术优化。 问题一:跨境电商源码性能瓶颈如何解决? 跨境电商源码性…

React实现简单登录

一 实现效果(样式是之前设置的) 二 具体实现代码 2.1 Login.js import {useNavigate} from "react-router-dom"; import React from "react"; // import ./style2.cssfunction Login(){const navigateuseNavigate()func…

【数据仓库与联机分析处理】数据仓库

目录 一、数据仓库的概念 二、数据仓库与操作性数据库的区别 三、发展前期 四、数据仓库的系统结构 五、建模划分 六、主要案例 一、数据仓库的概念 目前很难给数据仓库(Data Warehouse)一个严格的定义,不准确地说,数据仓库…

用c语言以升序顺序显示15个单词,从键盘上输入15个单词,将其以升序顺序显示出来。(排序方法不限,单词不得雷同,而且单词须是正确的单词)

用c语言以升序顺序显示15个单词,从键盘上输入15个单词,将其以升序顺序显示出来。(排序方法不限,单词不得雷同,而且单词须是正确的单词) 以下是一个使用C语言实现的示例程序,可以从键盘上输入15个单词,并将它…

ES(Elasticsearch)的基本使用

一、常见的NoSQL解决方案 1、redis Redis是一个基于内存的 key-value 结构数据库。Redis是一款采用key-value数据存储格式的内存级NoSQL数据库,重点关注数据存储格式,是key-value格式,也就是键值对的存储形式。与MySQL数据库不同&#xff0…

python下载wheel并安装

一、查看当前python 版本兼容信息 pip debug --verbose C:\python\37>pip debug --verbose WARNING: This command is only meant for debugging. Do not use this with automation for parsing and getting these details, since the output and options of this command…

甜美温柔有气质的衬衫穿搭

衬衫可以说是一年四季都很好穿的时尚单品了 这次上新怎么少的了百搭经典的衬衫呢? 实用耐穿,怎么穿都好看 温柔气质淑女范儿,韩系氛围感拉满 翻领设计版型很正,穿在身上不会有松垮感 棉质面料。上身很舒适透气 可以搭配一个…

macbook录屏快捷键大全,教你快速录制视频

“有人知道macbook电脑有录屏快捷键吗,现在录屏的速度太慢了,每次打开都要浪费不少时间,要是有录屏快捷键,应该会快很多,有哪位大佬知道吗?教教我!” 无论是在工作还是生活中,电脑已…

AI 编写完整工程代码:自然语言控制,AI 驱动开发 | 开源日报 No.135

gpt-engineer-org/gpt-engineer Stars: 47.6k License: MIT GPT-Engineer,AI 帮你写代码! 工作流程: 通过自然语言指定软件AI 编写和执行代码引导 AI 优化改进 核心优势: 可以编辑 preprompts 文件来指定 AI 代理的 “身份”…

【云原生】Docker学习笔记

安装docker 系统信息: passnightpassnight-s600:/etc/apt/trusted.gpg.d$ cat /etc/os-release PRETTY_NAME"Ubuntu 22.04.1 LTS" NAME"Ubuntu" VERSION_ID"22.04" VERSION"22.04.1 LTS (Jammy Jellyfish)" VERSION_COD…

云计算:OpenStack 分布式架构管理FLAT网络(单控制节点与多计算节点)

目录 一、实验 1.环境 2.控制节点创建网络 3.控制节点创建规格 4.控制节点新增安全组入口规则 5.控制节点创建实例 二、问题 1.FLAT网络底层如何实现 2.无法SSH 云主机实例 一、实验 1.环境 (1) 主机 表1 主机 主机架构IP备注controller控制节点192.168.204.210已部…

听GPT 讲Rust源代码--compiler(5)

File: rust/compiler/rustc_resolve/src/rustdoc.rs rust/compiler/rustc_resolve/src/rustdoc.rs是Rust编译器中解析文档注释的模块。该模块处理Rust源代码中的文档注释,提取出有用的信息,例如函数、结构体、枚举的名称、说明、参数、返回值等。它的主要…

视频号频繁显眼!是资本的运作?还是互联网新风口到来?

视频号这个平台出现了,特别是在最近存在感越来越强,而且已经有些人开始在视频号当中购物了,这也就意味着,视频号电商出现了,腾讯也开始搞电商了。 很多人可能对视频号做电商这个事情呢,抱有一定的迟疑态度&…

[Android]RadioButton控件

RadioButton控件 RadioButton控件是单选按钮控件,它继承自Button控件,可以直接使用Button控件支持的各种属性和方法。 与普通按钮不同的是,RadioButton控件多了一个可以选中的功能,能额外指定一个android:checked属性…

MySQL之四大引擎、建库建表以及账号管理

目录 一. 数据库存储引擎 1.1 存储引擎查看 1.2 InnoDB 1.3 MyISAM 1.4 MEMORY 1.5 ARCHIVE 二. 数据库管理 2.1 元数据库简介 2.2 元数据库分类 2.3 数据库的增删改查及使用: 2.4 MySQL库的权限 三. 数据表管理 3.1 三大范式 3.2 基本数据类型 3.2.1 优化原则 3…

将DOM结构转换成图片保存至本地或保存至剪切板

在新业务需求中,碰到这样一个场景,需要将后端返回的表格数据,保存至本地或者保存至剪切板,直接发送给用户使用。 1. 将内容转换成图片并保存至本地 1.1 交互效果 如图所示,想要点击复制按钮后,将下面这个…

echarts点击柱子、线节点、横坐标标签

echarts点击柱子、线节点、横坐标标签 x轴标签要为标签文字添加点击事件,必须先在xAxis里设置响应事件 xAxis: {triggerEvent: true, },然后直接监听 thisChart.on("click" ,function (params) {console.log(params) });通过params.componentSubType来…
最新文章