死锁知识点总结

死锁(Deadlock)知识点详解 多个线程因竞争资源而陷入相互等待的状态,若无外力干预,所有线程将无法继续执行。 阅读详情

一、什么是死锁

        学习操作系统,死锁是一个关键的知识点,接下来,我们先用几个小列子让我们更加清晰的认识死锁,

例1:进程P为对象A加锁以便对其独占使用,并继续请求对象B;进程Q已经为对象B加锁,当进程Q继续请求对象A时将发生死锁。


例2:哲学家就餐问题,五个(男性)哲学家以思考和用餐的方式生活。他们围坐在有五张椅子的一个圆桌边,每一个哲学家有一张椅子。在桌子中央有一碗意大利面条,桌子上还有五支餐叉,当一个哲学家思考时,他不与其他哲学家发生联系。时不时,哲学家就感觉到饿 了。为了就餐,他就必须试图拿起他左右俩边离他最近的俩只餐叉,但一次只能拿起一支餐叉。他也不能拿到相邻的哲学家已经持有的餐叉。当一个饥饿的哲学家同时拥有俩只餐叉,他就可以用餐,不用放开它们,当他用餐完毕,就放下俩只餐叉并继续思考。

以上这俩种情况就是典型的会发生死锁的实例。用一个较为专业的语句来说,就是对已经上锁的资源进行请求,并对自己已拥有的资源不加以释放,造成其他进程又无法请求成功的事件。

二、死锁产生的四个必要条件

如果在一个系统中牧歌时刻满足以下所有条件,则存在死锁。

1> 资源请求可被拒绝

        系统的并发控制策略使得对象能被独占性的获得,或者以某些特定的共享方式获得。进程访问某个对象时,如果该对象已经被其他进程独占性获得,则该访问将被拒绝;如果该对象被一组进程出于特定目的而共享访问方式获得,则该访问也将被拒绝。一个实例是:一个进程想对某对象写操作,因此请求独占访问该对象,由于这个对象正被锁定作为共享读操作,该请求将被拒绝。

2> 持有并等待

        允许进程占有对象的同时请求其他对象,如果这个请求得不到满足将阻塞该进程。这里所做的一个假设将一直等待该进程,直到资源可用。

3> 不可剥夺

        不可以剥夺进程的对象。进程可以获得对象,使用后释放。

4> 循环等待

        存在一个进程环,其中每个进程占有一个对象,而循环中的下一个进程对该对象存在请求,显然这个请求被拒绝了。

三、死锁的避免,及常见算法与原理

        就一个进程而言,在它运行之前规定他的对象请求总数,这样做就可行的。分配子系统同样可以利用这个消息。


经计算,系统可分配资源可以先给进程A,此时进程A已经达到总需求数量可被执行,待进程A结束时,系统可分配资源数量已经达到10,再将资源分配给进程B,进程B也达到总需求数量可被执行,待进程B结束时,系统可分配资源数量已经达到13,最后将资源分配给进程C,进程C也达到总需求数量可被执行。这样资源就可以供多个进程全部完成。

 典型的实例为:银行家算法,讲述资源分配的一个方法,其实与上述进程资源分配大同小异,有兴趣的朋友,可以自行查找了解。

双目相机测距原理 普通双目相机具有如下特点:左右两个相机位于同一平面(光轴平行),且相机参数(焦距f)一致。其原理图如下:如图所示,P点为相应的物体位置,CL和CR为左右相机光心位置,PL和PR分别为左相机和右相机拍摄的P点成像结果。f为相机焦距,Z为物体距相机的深度距离,b为左右相机基线距离根据几何关系有:则相应的深度信息计算公式为:(1)其中XL-XR为视差。其余在两侧的情况同样可以用几何关系分析得到该表达式(1),即对于普通双目相机测距可以直接通过公式(1)得到深度结果。 阅读详情

相关推荐

Coze工作流实战:Coze一键生成沉浸式历史故事视频

【coze工作流实战】一键生成火爆的沉浸式历史故事视频!短短3分钟,顶替你3天的工作量!

bickys的博客 1004

2.4.1 死锁的概念

目录思维导图什么是死锁死锁 饥饿 死循环的区别死锁产生的必要条件什么时候会产生死锁死锁的处理策略 思维导图 什么是死锁 死锁的概念: 在并发环境中,各进程因竞争资源而造成的一种 互相等待对方手里的资源,导致各进程 都阻塞,都无法向前推进的现象,就是死锁。 发生死锁后若无外力干涉这些进程都无法向前推进。 死锁 饥饿 死循环的区别 产生死锁最少要两个进程,产生饥饿最少是一个进程。 死锁产生的必要条件 互斥条件: 一个资源只能被一个进程占用 不可剥夺条件: 某个进程占用了资源,就只能他自己去释放。 请

辉小歌的博客 439

Halcon深度学习实战:基于异常值检测的工业缺陷精准识别方案

本文详细介绍了Halcon深度学习中的异常值检测技术在工业缺陷识别中的应用。该方法仅需少量正常样本即可训练,能有效应对未知、多变的缺陷类型,显著降低项目启动门槛。文章提供了从数据准备、模型训练、参数调优到产线部署的完整实战指南,并分享了关键的性能优化与避坑经验。

weixin_29042035的博客 243

谈谈我的理解的进程死锁,利用车道类比方便记忆。

谈谈我的理解的进程死锁 利用车道作类比,假设车道都上的车辆速度相同,同一车道(资源)只能被一辆车(进程)占用来更好的理解进程死锁。 死锁形成要满足四个必要条件。 1.资源的互斥性。即在同一时刻资源只可以被一个进程所访问。 那么类比到车道是就是假设有一个三车道的道路,最左侧和最右侧车道都想变道到中间车道,但是中间车道一个时刻只能被其中一辆车访问(假设速度相同,一个车道一辆车) 2.资源的不可剥夺条件。资源在被其中一个进程占有时,不可以被其他的进程剥夺其已经占有的资源。 类比到车道上就是我已经占有了其中一个车道

qq_51170925的博客 222

HX711重量传感器原理图设计,已量产(压力传感器)

最近调通了一款针对家用、物联网场景的重量传感套件,核心用了 HX711 这颗经典的称重 AD 芯片,还加了用户最需要的 “一键校准” 功能 —— 之前帮朋友做家用米桶余量报警时,用户总吐槽校准步骤太繁琐,这次的方案把操作简化到只按一个键,试下来体验好了不少。正好拆解下这套硬件的设计逻辑,供做同类产品的朋友参考。

不脱发的程序猿 367

机器学习特征选择-t检验

在特征选择的过程中通过计算检验统计量值,比较特征之间的统计量的大小,并降序排列,选取统计值较高的特征,从而起到去除差别小的特征(此差别小的特征难以区分不同的额类别)的目的。 以t检验(Student's t test)为例: 假设检验 通过比较两类样本的随机变化,通过计算其p值决定是否拒绝零假设,也即是说:通过计算p值,若p值小于某一阈值则认为两个样本具有显著差异,两个样本是不同的,此时拒绝...

heda3的博客 6700

死锁知识点整理

死锁的概念我第一次遇到,是在学习多线程的时候。先前对死锁的理解仅限于了解死锁的大致意思以及了解死锁的四个必要条件,没有怎么深入,确切得说连外表也没看很清楚。现在再来阅读《操作系统—精髓及概念设计》的时候,打算精读一下死锁那一章,然后对死锁的知识点进行整理。

学习侠的博客 744

【YOLOv11】070、YOLOv11异常检测:正常数据训练下的异常目标识别

本文探讨了如何利用YOLOv11模型进行工业异常检测,重点介绍了仅使用正常样本训练模型的创新方法。文章首先通过产线误报案例引出异常检测的核心问题,阐述了YOLOv11作为特征提取器的改造思路,包括正常数据训练、特征空间构建和异常度量等关键步骤。实战部分提供了精简代码示例,强调数据增强控制、特征层选择和自编码器应用等技巧。作者还总结了容易出错的细节,如特征选择、阈值设定和计算效率优化等,并给出实用建议:从简单方法入手、重视可视化、确保数据质量、部署时设置复核机制等。最后指出该方法虽能减少对异常样本的依赖,但需

企鹅码农的专属播客,分享10多年的实战案例和经验解读,包含YOLO、RT-DETR、AI等各个工作领域。 235

【操作系统】死锁相关知识点

多个并发进程中,如果每个进程持有某种资源而又等待其它进程释放其他资源,在未改变这种状态之前都不能向前推进,称这一组进程产生了死锁。通俗的讲就是 多个进程无限期相互等待 的一种状态。死锁产生的 4 个条件(有一个条件不成立,则不会产生死锁):抢占资源和非抢占资源:一般来说,可抢占资源不会引起死锁,可以在进程间重新分配资源而得到解决。资源分配图(RAG):用有向图描述系统资源和进程的状态。 进程 P1 已经分得了两个 R1 资源,并又请求一个 R2 资源;进程 P2 分得了一个 R1 和一个 R2 资源,并又

学习 & 分享 ~ 7359

vue3 - 最新详细实现高德地图绘制动态热力图详细教程,在某区域或城市地图上做“热力图层“展示人流量、旅游人口密度、热量图、全国地区地理热力图,利用颜色的深浅表示密度或强度等场景(详细示例代码教程)

vue3,nuxt3,高德地图,热力图,绘制热力图层,人流量,vue3使用高德地图实现某个区域热力图,vue3高德地图api加载热力图及关闭,接收热力图数据并渲染热力图,关掉热力图,Vue使用高德API制作热力图,热力图加载不出来,电子围栏围住热力图,vue3中使用高德地图渲染热力图组件,高德地图使用热力图详细教程,报错,卡顿,出不来怎么办,无法关闭,怎么解决这个问题,出错,城市名称,城市某个街道,城区,省份,市区,县城,乡镇,村,各省份的热力图,交通流量,人口流量,密度,旅游出行,人口数量,颜色介绍,深浅

✅ 精选推荐文章 5205

如何修改网页中的文本内容改成自己希望的数值?

本篇文章主要讲解,通过浏览器命令和浏览器自带的F12开发者工具,进行修改网页内容的方法教程 日期:2021年12月5日 作者:任聪聪 一、通过F12开发者工具进行修改 进入方式汇总: 1.右击鼠标,显示菜单找到审查 2.通过快捷键F12进入,笔记本需要先关闭fnlk功能键。 开发者工具介绍 说明: 1.表示选择元素,点击后可以选择文本的元素所在地 2.表示显示方式,手机还是电脑 3.表示div元素,点击后可以展开,对div内的html和文本进行编辑。 双击文本,即可进行修改成自己想要的,但是刷新后.

任聪聪的博客 2万+

知识归纳:死锁

以前面试时遇到过一些关于死锁的问题,总觉得答得不好,查了一些面经也觉得有点模糊,后来备战考研也看到了相同的问题,所以归纳了一下

weixin_38878828的博客 2255

lammps模拟技巧:高熵合金势函数设置三种方法

大家好,我是小马老师。 本文继续介绍lammps模拟中的势函数设置方法。 在前面的文章中,介绍过高熵合金的建模:高熵合金建模 高熵合金包含的原子数较多,势函数的设置相对复杂,在平时一对一的咨询中,这种问题也相对较多。 下面介绍三种高熵合金势函数设置方法。 1.下载专用势函数 下面的网站包含了大多数原子的势函数: https://www.ctcms.nist.gov/potentials/ 如需下载包含Fe原子的势函数,直接点Fe: 出现势函数列表: 比如Al-Co-Cr-Fe-Ni就是高熵合金AlCoC

lammps_jiayou的博客 8962

关于死锁的一些知识点总结

死锁产生的原因 通常系统中拥有的不可剥夺资源,其数量不足以满足多个进程运行的需要,使得进程在 运行过程中,会因争夺资源而陷入僵局,如磁带机、打印机等。只有对不可剥夺资源的竞争 才可能产生死锁,对可剥夺资源的竞争是不会引起死锁的 进程推进顺序非法。

学而时习之 731

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

死锁知识点

死锁相关知识

weixin_46619605的博客 919

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

关于Oracle死锁的知识点总结

Oracle死锁博客 看到这篇博客写的不错,所以转载一下供大家参考!

q_1092535160的博客 1903

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

活锁以及死锁的知识点梳理

也就是说对任意两个需要由事务A处理的数据,同时进行封锁,当事务A处理完两个数据后再同时解锁,这样就避免了其他事务B的请求对已被事物A封锁的数据进行等待。例如在B树结构的索引中,可规定封锁的顺序必须从根节点开始,然后是下一级的子节点,逐级封锁。活锁就是当有众多事务请求封锁某一数据的时候,系统可能会因为操作上的不恰当,导致忽略掉个别事务的请求,使得这些事务一直处于请求的状态。死锁就是两个事务互相请求封锁各自正在封锁的数据,由于事务是一个数据一个数据去处理的,且不能离开数据,所以相互有请求的事务会一直僵着。

2401_85467005的博客 600

操作系统关键知识点之死锁习题与实践(从理论到应用)

核心考点:判断死锁是否可能发生,需分析是否满足互斥、占有等待、不可抢占、循环等待四条件。习题示例习题17:2个进程、3个相同资源,每个进程最多需2个资源。分析:最坏情况下,每个进程占用1个资源,剩余1个资源可满足任一进程,无循环等待,不可能死锁。习题23:强制进程每次只能占用1个资源,限制不可接受的场景(如同时需要键盘和显示器的进程)。知识点分类核心内容典型习题/场景解题关键死锁必要条件四条件必须同时满足,破坏其一可预防死锁习题17(资源数足够时无死锁)

wj_rdk的博客 696

操作系统关键知识点之死锁相关问题(两阶段加锁、通信死锁与饥饿)

核心逻辑阶段1(加锁阶段):进程尝试获取所有所需资源的锁,若某资源已被占用,则释放已获取的所有锁并重新开始。阶段2(释放阶段):成功获取所有锁后,执行更新操作并释放锁。目标:通过“全或无”的加锁策略避免死锁,确保进程在执行操作前拥有全部资源。局限性仅适用于支持回滚和重复执行的场景(如数据库事务),若进程执行不可重复的操作(如网络通信),重新开始可能导致错误。问题类型核心定义典型场景解决策略重点对比两阶段加锁进程分阶段获取/释放锁,确保原子性操作数据库事务更新。

wj_rdk的博客 987

死锁的知识点

例如,有进程A和进程B,进程A占有资源R1并等待资源R2,而进程B占有资源R2并等待资源R1,这样双方都在等待对方释放资源,从而陷入死锁。- 进程(或线程)已经保持了至少一个资源,但又提出了新的资源请求,而该资源已被其他进程(或线程)占有,此时请求进程(或线程)被阻塞,但对自己已获得的资源保持不放。- 资源剥夺法:从一些陷入死锁的进程那里强行剥夺其占有的资源,分配给其他等待这些资源的进程,使系统脱离死锁状态,但要注意对被剥夺资源的进程做好后续处理,比如记录其执行进度等,以便后续恢复运行。

2301_81152393的博客 609

计算机操作系统的死锁是因为,2020考研计算机操作系统知识点:死锁

2020考研计算机操作系统知识点:死锁2019-01-09 16:40|考研集训营计算机考研中的操作系统在统考试卷中所占35分。因此,参加2020统考计算机考研学子们一定要从基础知识备考。接下来,文都考研集训营为了助力计算机考研学子学好操作系统,特意分享了2020考研计算机操作系统知识点:死锁,供考生参考。2020考研计算机操作系统知识点:死锁1.死锁的概念系统中两个或两个以上的进程无限期地相互等...

weixin_34150870的博客 310

【死锁相关重要知识点】

掌握产生死锁的条件及如何处理死锁

boybs的博客 211

死锁基础知识点

死锁 死锁的知识点 死锁的定义 资源的分类 资源分配图 产生死锁的原因 死锁的必要条件 死锁的预防或解除 定义 死锁可以定义为相互通信的线程或者一组竞争系统资源的线程相互之间"永久阻塞”的情况,即就是有两个即两个以上的线程在执行过程中,由于竞争资源而造成的阻塞问题,在没有 外力的作用下,它们将无法进行下去,此时系统处于四座状态,这种情况称之为死锁。 资源的分类(可重用资源、可消费资...

weixin_43301647的博客 342

有关死锁的知识点

一、死锁 1、什么是死锁: 各进程都在互相等待对方手里的资源,导致各进程都阻塞,无法向前推进的现象。 2、产生死锁的两个原因: (1)对系统资源的竞争 (2)进程推进顺序不当 (3)信号量的使用不当也会导致死锁 3、死锁的四个必要条件: 只要其中任一条件不成立,死锁就不会发生 (1)互斥条件:只有对必须互斥使用的资源的争抢才会导致死锁 (2)不剥夺条件:进程所获得的资源在未使用时不能其他进程被剥夺,只能主动释放 (3)请求与保持:进程已经保持了至少一个资源,但又提出了心得资源请求,但是该资源又被其他进程占用

yummy的博客 295

oracle 行级死锁_ORACLE中死锁的知识点总结

死锁的概念什么是死锁呢? 其实我们生活中也有很多类似死锁的例子。 我先举一个生活中的例子:过年回家,父亲买了一把水弹枪,儿子和侄子争抢着要先玩,谁也不让谁,拆开包装后,一个抢了枪, 一个逮住了子弹和弹夹。两个都争着要先玩,但是都互不相让。结果两个人都玩不了。如果儿子要先玩,就必须让侄子把子弹和弹夹给他,如果侄子要先玩,就必须让儿子把枪给侄子。他们就这样对峙了十几分钟,互不相让。 我出来调停,让儿子...

weixin_42517466的博客 609
上一篇: 迷宫的四重求解
下一篇: C语言模拟练习(6)
CYD、孤狼
博客等级 码龄9年 24粉丝 129原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值