当前位置: 首页 > news >正文

2.3操作系统-进程管理:死锁、死锁的产生条件、死锁资源数计算

2.3操作系统-进程管理:死锁、死锁的产生条件、死锁资源数计算

  • 死锁
  • 死锁的产生条件
  • 死锁资源数计算

死锁

进程管理是操作系统的核心,如果设计不当,就会出现死锁的问题。如果一个进程在等待意见不可能发生的事,进程就会死锁。而如果一个或多个进程产生死锁,就会造成系统死锁。

死锁的产生条件

死锁的产生有四大条件,互斥、保持和等待、不剥夺、环路等待。
打破其中一项即可。

假设资源是🍍🍍🍓,现在有两个进程A、B,进程A需要🍍🍍🍓,进程B需要🍍🍓,现在状态是A🍍🍍,B🍓。

B拿到了🍓,但是缺少🍍,A拿到了🍍🍍,但是没有🍓,二者都无法继续执行,此时都不释放资源,而是一直占有着。

打破死锁:破坏互斥条件
互斥表示同一时间资源只给一个线程用,线程之间资源不共享。

破坏互斥条件,资源不再是不可共享的,也就是说B的🍓可以给A用,这样A进程就可以拿到缺少的资源🍓,然后继续执行,A用完释放掉资源,再给B用。

打破死锁:破坏保持和等待
破坏保持和等待,B等待一会儿,没有资源,就释放调自己占用的资源🍓,这样A进程就可以拿到缺少的资源🍓,然后继续执行,A用完释放掉资源,再给B用。

打破死锁:不剥夺
破坏不剥夺,A去抢B的🍓,抢到后,这样A进程就可以拿到缺少的资源🍓,然后继续执行,A用完释放掉资源,再给B用。

打破死锁:环路等待
环路等待就是A等待B,B等待A,此时没有其它进程参与,AB循环等待。
进程C也参与进来了,C有🍍🍓,用完释放掉资源。

死锁资源数计算

系统有3个进程ABC,这三个进程都需要5个资源。如果系统至少有多少个资源,则不可能发生死锁。

资源数记作n,进程数记作m,每个进程需要的资源数记作W或者Wi

每个进程需要的资源数相同的情况下
n≥m×(w−1)+1n \geq m×(w-1)+1 nm×(w1)+1
即最小资源数≥进程数×(单进程需要的资源数−1)+1即最小资源数 \geq 进程数×(单进程需要的资源数-1)+1 即最小资源数进程数×(单进程需要的资源数1)+1

n=3×(5-1)+1=13,系统至少有13个资源,则不可能发生死锁。

每个进程需要的资源数不同的情况下,对(w-1)进行累加操作即可

系统有3个进程ABC,这三个进程依次需要3、4、5个资源。如果系统至少有多少个资源,则不可能发生死锁。
n≥(3−1)+(4−1)+(5−1)+1=10n \geq (3-1)+(4-1)+(5-1)+1=10 n(31)+(41)+(51)+1=10

http://www.lryc.cn/news/35091.html

相关文章:

  • 人物百科怎么建?个人百度百科创建的注意事项
  • ArrayList与LinkedList的区别 以及 链表理解
  • 电脑蓝屏怎么办?这5个技巧你必须学会
  • 大数据 | (三)centos7图形界面无法执行yum命令
  • 历史上被发现的第一个真正的Bug - Grace Hopper
  • KiCad 编译
  • HTML 简介
  • 2023浙江省赛“信息安全管理与评估“--数字取证调查--网络数据包分析解析(高职组)
  • 【Redis应用】查询缓存相关问题解决(二)
  • 【SpringCloud】SpringCloud教程之Nacos实战(三集群配置)
  • 什么是激励能力?HR人才测评
  • 【刷题笔记】之滑动窗口(长度最小的子数组、水果成篮、最小的覆盖子串)
  • 【JavaScript速成之路】JavaScript函数
  • 萤火虫算法优化SVM变压器故障分类预测,fa-svm分类预测,libsvm参数优化
  • JavaScript DOM API的使用
  • Vue组件库出现$listeners is readonly等错误的原因及预防方法
  • lsusb
  • Allegro如何在PCB中添加层面操作指导
  • 淘宝widget链路方案总结
  • c++指针
  • Qt 贴图实现方向控制盘
  • 建模杂谈系列211 ADBS的取数模式以及衔接
  • 易基因:RRBS揭示晚年锻炼可以减缓骨骼肌表观遗传衰老(甲基化年龄)|新研究
  • JVM的基本知识
  • STM32移植FreeRTOS操作系统
  • 【专项训练】泛型递归、树的递归
  • React18 setState是同步还是异步?
  • Kafka消费者 TCP管理
  • 软考高级备考哪一个类型好些?
  • 2023 HBU 天梯赛第一次测试 题目集