操作系统——死锁和饥饿
操作系统——死锁和饥饿
转自:https://blog.csdn.net/qq_42192693/article/details/103054682
1、概念
- 死锁:如果一组进程中的每一个进程都在等待由该进程中的其它进程才能引发的事件,那么该组进程是死锁的。
- 饥饿:指系统不能保证某个进程的等待时间上界,从而使该进程长时间等待,当等待时间给进程推进和响应带来明显影响时,称发生了进程饥饿。当饥饿到一定程度的进程所赋予的任务即使完成也不再具有实际意义时称该进程被饿死。
2、产生原因
- 死锁:源于多个程序对资源的争夺,不仅对不可抢占资源进行争夺时会引起死锁,而且对可消耗资源进行争夺时,也会引起死锁。
- 饥饿:如果一个线程因为处理器时间全部被其它线程抢走而得不到处理器运行时间,这种状态被称之为饥饿,一般是由高优先级线程吞噬所有的低优先级线程的处理器时间引起的。
3、必要条件
- 死锁:互斥、不可剥夺、请求与保持、循环等待
- 饥饿:没有其产生的必要条件,随机性很强。并且饥饿可以被消除,因此也将忙等待时发生的饥饿称为活锁。
4、异同点
- 相同:二者都是由于竞争资源而引起的
- 不同:
- 从进程状态考虑,死锁进程都处于等待状态,忙等待(处于运行或就绪状态)的进程并非处于等待状态,但却可能被饿死。
- 死锁进程等待永远不会被释放资源,饿死进程等待会被释放但却不会分配给自己资源,表现为等待时限没有上界(排队等待或忙等待)。
- 死锁一定发生了循环等待,而饿死不一定。
- 死锁一定涉及多个进程,而饥饿或被饿死的进程可能只有一个。
- 在饥饿的情形下,系统中至少有一个进程能正常运行,只是饥饿进程得不到执行机会。而死锁则可能会最终使整个系统陷入死锁并崩溃。
5、举例
- 死锁:砍树你需要一个斧子,但是斧子需要木头来做,这就发生了死锁。
- 饥饿:排队过程中,总有人插队到你的前面,导致你一直处于排队状态,这就发生了饥饿。
操作系统——死锁和饥饿相关推荐
- 操作系统-并发:死锁和饥饿
知识架构 本章介绍并发处理中需要解决的两个问题:死锁和饥饿.本章首先讨论死锁的基本原理和饥饿的相关问题:接着分析处理死锁的三种常用方法:预防.检测和避免:然后考虑用于说明同步和死锁的一个经典问题:哲学 ...
- 【数据库技术】2PL(两阶段锁)下的死锁与饥饿处理手段
事务处理-2PL下的死锁与饥饿 2PL--2阶段锁存在的问题 一.死锁与等待图 1. 死锁(Deadlock) 2. 等待图(Wait-for graph) 二.死锁的处理手段 1. 死锁预防 2. ...
- 操作系统 --死锁(十)
思维导图 目录 一.死锁的概念 --图 1.死锁的定义 2.死锁产生的原因 3 .死锁发生的必要条件 4.死锁.饥饿.死循环的区别 二.死锁的处理策略 1.预防死锁(静态策略) --图 2.避免死锁( ...
- 计算机操作系统——死锁(产生的必要条件与处理死锁的四个关卡)
计算机操作系统--死锁 前言:死锁:指多个进程因竞争共享资源而造成的一种僵局,若无外力作用,这些进程都将永远不能再向前推进.如果死锁发生,会浪费大量的系统资源,甚至会导致系统崩溃. 关于死锁的结论: ...
- 操作系统(6) 死锁和饥饿
1.死锁 1.1 死锁原理 当一组进程中每个进程都在等待某个事件(所请求的资源被释放),而只有在这组进程中的其他阻塞进程才能触发该事件,就称该组进程触发了死锁. 死锁涉及到了两个或者多个进程之间的资源 ...
- 操作系统:线程死锁、饥饿、活锁
1. 死锁 可以认为是两个线程或进程在请求对方占有的资源. 出现以下四种情况会产生死锁: 情况一:相互排斥.一个线程或进程永远占有共享资源,比如,独占该资源. 情况二:循环等待.例如,进程A在等待进程 ...
- 计算机操作系统——死锁
文章目录 一.相关知识 1.可重用性资源和消耗性资源 2.可抢占性资源和不可抢占性资源 3.死锁定义 二.死锁产生的原因和必要条件 1.死锁产生的原因 2.死锁产生的必要条件 三.预防死锁的方法 1. ...
- 计算机操作系统 死锁问题
概念 条件是基础,在一定的原因下,产生结果 死锁三胞胎 死锁 僵持,消耗时间,双方都占用了部分资源,不释放 活锁 双方互相谦让,都不占用资源 饥饿 谦让的一方一直等待,无法占有资源,导致饥饿问题 死锁 ...
- 死锁与活锁的区别,死锁与饥饿的区别?
**死锁:**是指两个或两个以上的进程(或线程)在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去. 产生死锁的必要条件: 1.互斥条件:所谓互斥就是进程在某一时间 ...
最新文章
- SAP QM创建一个包含Multiple Specification的检验计划
- Ts + React + Mobx 实现移动端浏览器控制台
- 线程安全的ConcurrentQueueT队列
- 基因分子生物学~强和弱化学键
- echars水状_Echarts饼状图属性设置
- 【渝粤题库】国家开放大学2021春3990产品管理题目
- 90后美女大学生,年薪30W的程序员,他们都决定去送外卖了!
- 杭州微念申请李子柒商标被全部驳回,“最惨打工人”李子柒开始反击:已起诉!...
- 在集设|参透海报设计中提取排版设计灵感
- 员工为什么缺乏执行力?
- 关于elasticsearch boostrap checks failed错误类型整理及解决方法
- 语音识别介绍(下篇)
- python 取模_中年大叔学编程-Python的基础语法和运算符
- Overloud TH-U Complete for Mac - 吉他谱曲软件
- 【R爬虫-1】BBC Learning English
- SVM多分类问题例子+matlab代码
- iis mysql密码_mysql忘记root密码与root帐号被删除处理方法
- 软件开发中项目经理有那些职责
- Raid、裸容量、可用容量的概念
- 全球首款基于通用服务器的100G全包捕获和溯源技术
热门文章
- 网络服务——网络层:IP、ICMP、ARP与传输层:TCP、UDP
- gpib-usb-hs linux,GPIB-USB-HS GPIB适配器
- 春季出游季,名悦集团分享那些常见的高速公路危险驾驶
- 给我制定一个考研数学一的复习计划
- 漫谈汽车(20220216)
- Au@Ag(金核银壳纳米颗粒)修饰巯基SH/氨基/NH2/羧基COOH/PEG/蛋白Protein/抗体antibody
- 爬虫自学day4:requests模块之爬取豆瓣电影分类排行榜
- IE多版本共存的解决方案——IETester(推荐)
- photoshop第十一章:人物照片脸部的处理
- C#Unicode编码转换