博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【计算机操作系统】常说的死锁是什么?死锁产生的必要条件是什么?死锁的解决策略是什么?
阅读量:1887 次
发布时间:2019-04-26

本文共 671 字,大约阅读时间需要 2 分钟。

计算机操作系统-死锁

1.死锁产生的必要条件是什么?

死锁是两个或两个以上的进程(或线程)在执行过程中,互相占用对方所需的资源,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去;

互斥:每个资源要么已经分配给了一个进程,要么就是可用的;

占有和等待:已经等到某个资源的进程可用再请求新的资源;

不可抢夺:已经分配给一个进程的资源不能强制性的被抢夺,它只能被占有它的线程显式地释放;

环路等待:有两个或者两个以上的进程组成一条环路,该环路中的每个进程都在等待下一个进程所占有的资源;

2.死锁的解决策略

鸵鸟不做处理;

死锁检测与恢复;

死锁预防;

死锁避免;

主要有以下四种办法:

  • 鸵鸟策略

把头埋在沙子里面,假装根本没发生问题。当发生死锁时不会对用户造成很大的影响或发生死锁的概率很低时,可以采用鸵鸟策略;

  • 死锁检测与死锁恢复;

不试图阻止死锁,而是当检测到死锁时,采取措施进行恢复

死锁的检测是通过检测有向图是否存在环来实现的。从一个结点出发进行深度优先搜索,对已访问过的结点进行标记,如果访问了已标记的结点,就表示有向图存在环,也就是检测到死锁的发生。

死锁的恢复:通过杀死线程恢复;通过回滚恢复;通过抢占恢复;

  • 死锁预防;

针对死锁的产生条件:

**破坏互斥条件:**例如打印机唯一真正请求物理打印机的进程是打印机守护进程;

**破坏占有和等待条件:**规定进程在开始执行前请求所需要的全部资源;

破坏不可占有条件

**破坏环路等待:**给资源统一编号,进程只能按照编号顺序来请求资源;

死锁避免:安全状态。

转载地址:http://ocwdf.baihongyu.com/

你可能感兴趣的文章
excel文本函数
查看>>
阿里云ECS服务器-Windows Server 2012 R2/2016/2019无法安装.NET Framework 3.5.1或语言包的解决方法
查看>>
编程程软件测试思维方式:如何科学制定测试计划
查看>>
BLE蓝牙4.0串口调试助手
查看>>
树莓派WIFI设置
查看>>
在树莓派上安装GUI的FreeRadius(Raspberry PI based FreeRadius Server with GUI)
查看>>
Linux下EasyPanel版本安装及升级
查看>>
raspberry pi(树莓派) + easycap d60 视频采集
查看>>
WebRTC
查看>>
rfc5766-turn-server NAT
查看>>
webrtc详细教程
查看>>
Android IOS WebRTC 音视频开发总结
查看>>
报表图表样式
查看>>
android模板图例
查看>>
树莓派网线直连
查看>>
复合材料培训(I第七期)
查看>>
复合材料生活中的应用
查看>>
ABAQUS复合材料(适合小白)
查看>>
ABAQUS高级案例解析
查看>>
人工智能药物研发
查看>>