处理死锁策略2

news2024/11/24 17:10:07

一、避免死锁-动态策略

1.概述

安全序列-能使每个进程才能顺利完成的分配资源的序列,可有多种,此时系统处于安全状态下,系统一定不会发生死锁。

不安全状态-找不到一个安全序列时,系统处于不安全状态下,系统可能会发生死锁

关系-导致不安全状态的原因很多,但发生死锁时系统是处于不安全状态下的。

2.银行家算法

原理:在分配资源前对分配后系统安全状态进行判断,根据剩余可用资源数与进程需求资源数进行比较,再分配

二、检测和解除-允许死锁发生

1.检测

定义数据结构保存资源请求和分配信息,并用来检测系统是否已进入死锁状态

可完全简化:资源分配图最终能消除所有边,此时能找到一个安全序列,一定没有发生死锁。但若最终不能消除所有边,此时发生了死锁,还连着边的进程就是处于死锁状态的进程。 

算法

找既不阻塞又非孤点的进程(非死锁进程),消去它所有的请求边和分配边,使之成为孤立的结点。

若不可完全简化,此时系统死锁。

2.解除

资源剥夺法-挂起(放入外存上)某些死锁进程并抢占其资源,将资源分配给其它死锁进程。

撤销进程法-强制撤销部分/全部死锁进程并剥夺其资源,代价较大

进程回退法-让一个/多个死锁进程回退到足以避免死锁的地步,要求记录进程历史信息。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

BuyVM 挂载存储块

发布于 2023-07-13 on https://chenhaotian.top/linux/buyvm-mount-block-storage/ BuyVM 挂载存储块 参考: https://zhujitips.com/2653https://www.pigji.com/898.html 1 控制台操作 存储块购买完毕后,进入后台管理界面,进入对应 VPS …

Qt工具开发,该不该跳槽?

Qt工具开发,该不该跳槽? 就这样吧,我怕你跳不动。 嵌入式UI,目前趋势是向着LVGL发展。QT已经在淘汰期了。很多项目还在用,但技术上已经落后。QT短期内不会全面淘汰,但退位让贤的大趋势已经很清楚了。 最近很多小伙伴…

整理了六大类兼职平台,看看有适合你的吗

现代人已经不再仅仅依赖于一份全职工作,他们通过兼职来为自己赚取额外的收入,同时也能更加自由地安排自己的时间。而如今,互联网兼职平台应运而生,为我们创造了更多的选择。今天我将为你介绍六大类兼职平台,相信其中一…

多输入多输出 | MATLAB实现PSO-RBF粒子群优化径向基神经网络多输入多输出预测

多输入多输出 | MATLAB实现PSO-RBF粒子群优化径向基神经网络多输入多输出预测 目录 多输入多输出 | MATLAB实现PSO-RBF粒子群优化径向基神经网络多输入多输出预测预测效果基本介绍程序设计往期精彩参考资料 预测效果 基本介绍 Matlab实现PSO-RBF粒子群优化径向基神经网络多输入…

二维码怎么做列表?点击可跳转其他内容

最近很多小伙伴在问,在用二维码展示内容时,怎么设置一个列表,点击每条内容或者单个图片,就可以跳转到对应的详情页面查看内容,而且二维码内容还能够随时编辑或者修改。那么想要做到上面的这种效果,可以用二…

EEPROM、FLASH电路设计

ROM是一种掉电不丢失数据的存储器,EEPROM是ROM的升级版,他支持带电擦除,可以修改存储器内的内容。 而我们还会提到FLASH,是EEPROM的升级,他们二者的区别在于FLASH按扇区操作,EEPROM则按字节操作&#xff0…

【Rust笔记】浅聊 Rust 程序内存布局

浅聊Rust程序内存布局 内存布局看似是底层和距离应用程序开发比较遥远的概念集合,但其对前端应用的功能实现颇具现实意义。从WASM业务模块至Nodejs N-API插件,无处不涉及到FFI跨语言互操作。甚至,做个文本数据的字符集转换也得FFI调用操作系统…

Studio One6.5中文版本版下载及功能介绍

Studio One是一款专业的音乐制作软件,由美国PreSonus公司开发。该软件提供了全面的音频编辑和混音功能,包括录制、编曲、合成、采样等多种工具,可用于制作各种类型的音乐,如流行音乐、电子音乐、摇滚乐等。 Studio One的主要特点…

说明书MS2721A频谱分析仪7.1GHz

安立Anritsu MS2721A 频谱分析仪 MS2721A 是 Anritsu 的 7.1 GHz 频谱分析仪。频谱分析仪测量已知和未知信号的频谱功率。频谱分析仪收集信息,例如输入信号与其频率相比的幅度。作为频率分析仪,频谱分析仪的主要用途是记录和分析电输入信号以及其他信号的…

想要精通算法和SQL的成长之路 - 滑动窗口和大小根堆

想要精通算法和SQL的成长之路 - 滑动窗口和大小根堆 前言一. 大小根堆二. 数据流的中位数1.1 初始化1.2 插入操作1.3 完整代码 三. 滑动窗口中位数3.1 在第一题的基础上改造3.2 栈的remove操作 前言 想要精通算法和SQL的成长之路 - 系列导航 一. 大小根堆 先来说下大小根堆是什…

Rust初接触

一、什么是Rust Rust 是由 Mozilla 开发的多范式编程语言,专注于性能和安全性。 Rust 以其先进的安全并发能力而闻名, 它的语法类似于 C,但它提供了更快的速度和内存安全性,但不使用垃圾收集器。 Rust 最初是为 Mozilla Firefox …

Linux bash: ipconfig: command not found解决方法

安装完centos7运行ifconfig命令发现找不到 安装相关工具 yum install net-tools.x86_64 无脑yes即可

Jenkins UI 自动化持续化集成测试

一:安装jenkins 环境 在官网下载msi 直接安装即可 二:设置全局变量 设置allure 路径 三:创建项目 1、创建自由风格项目 2、如果项目在本地,且本地服务器是windows ,找到Jenkins安装根目录,寻找config…

Spring Cloud Pipelines 入门实践

文章目录 1. 前言2. Spring Cloud Pipelines 是做什么的2.1. 预定义的流程2.2. 集成测试和契约测试2.3.部署策略 4. Spring Cloud Pipelines的使用示例4.1. 创建一个Spring Boot应用4.2. 将代码托管到GitHub仓库4.3. 添加Spring Cloud Pipelines依赖4.4. 配置Spring Cloud Pipe…

基于Python简单实现接口自动化测试(详解)

一、简介 本文从一个简单的登录接口测试入手,一步步调整优化接口调用姿势,然后简单讨论了一下接口测试框架的要点,最后介绍了一下我们目前正在使用的接口测试框架pithy。期望读者可以通过本文对接口自动化测试有一个大致的了解。 二、引言 …

统信UOS 1060系统增量备份

原文链接:统信UOS 1060系统增量备份 hello,大家好啊,今天给大家带来关于统信UOS 1060系统备份还原的系列内容的第三篇文章,系统增量备份,我们可以将系统增量备份到u盘中,后面需要的话,可以进行还…

C#中base关键字的使用

在C#编程语言中,base关键字扮演着重要的角色。它用于在派生类中调用基类的成员,并为开发人员提供了一种简单而有效的方式来实现继承以及重用代码。在本文中,我们将探讨base关键字的使用及其在C#中的代码实例。 首先,我们需要了解…

如何成功安装Node.js并在VS Code终端使用npm

✨✨✨ 感谢优秀的你打开了小白的文章 “希望在看文章的你今天又进步了一点点,生活更加美好!”🌈🌈🌈 目录 1.什么是Node.js? 2.解决方法 3.淘宝镜像安装 1.什么是Node.js? Node.js 是一种开源与跨平台的 JavaSc…

Apollo(阿波罗)分布式配置中心

🍓 简介:java系列技术分享(👉持续更新中…🔥) 🍓 初衷:一起学习、一起进步、坚持不懈 🍓 如果文章内容有误与您的想法不一致,欢迎大家在评论区指正🙏 🍓 希望这篇文章对你有所帮助,欢…

力扣-459.重复的子字符串

Idea 看题解的KMP自己手动实现太难了,我还是选择容易理解的暴力枚举叭 AC Code class Solution { public:bool isCheck(string subs, string s) {if(s.size() % subs.size() ! 0) return false;int k s.size() / subs.size();string comp "";while(k-…