一、课程信息
打卡时间:2022.9.23
课程名称:2022新版编程必备基础,计算机组成原理+操作图片描述系统+网络
章节名称:第6章 操作系统之基础篇
讲师: 咚咚呛
二、今日课程
课程内容:死锁产生的原因、预防死锁的方法、银行家算法
三、学习心得
什么是死锁:
死锁指的是两个或两个以上的进程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象,若无外力作用,它们都无法推进下去。此时称系统处于死锁状态或系统产生了死锁,这些永远在相互等待的进程称为死锁进程。
死锁的产生:
(1)竞争资源
共享资源不够可能会产生
(2)进程调度顺序不当
死锁的四个必要条件:
(1)互斥条件
(2)请求保持条件
(3)不可剥夺条件
(4)环路等待条件,发生死锁时,必然存在进程-资源环形等待链
死锁的处理:
预防死锁的方法:只要要破坏死锁四个必要条件之一就可以防止死锁产生
具体做法:
系统规定进程运行之间,一次性申请所有需要的资源;
当一个进程请求新的资源的得不到满足时,释放自身占用的所有资源;
可用资源线性排序,申请必须按照需要递增申请。
著名的避免死锁的办法:银行家算法
银行家算法有三个数据结构表:已分配资源表、所需资源表、可分配资源表
通过所需资源表和已分配资源表可以得到还需分配资源表。将可分配资源表和还需分配资源表进行比较,查看是否可以满足某一进程的需求,如果有满足,则优先将资源分配给该进程,进程结束后回收资源并更新三张表。当所有进程的所需资源都没有办法得到满足时,系统大多数时候是会等待,或者强行杀进程等等的一系列补锅操作。
四、学习截图
点击查看更多内容
为 TA 点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦