第六章.死锁
资源死锁
资源:排他性
死锁:一个进程集合中的每个进程都在等待只能由该进程集合中其他进程才能引发的事件
资源死锁条件:
互斥条件:每个资源要么已经分配,要么可用
占有和等待条件:已经得到某个资源的进程可以再请求新的资源
不可抢占条件:已经分配的资源不能被强制抢占,只能被占有它的进程显式释放
环路等待条件:两个或以上进程组成环路,其中每个进程等待下一个进程占有的资源
2. 死锁检测
E:现有资源
A:可用资源
C:当前分配矩阵
R:请求矩阵
已分配+可用=现有
进程3可被满足,
= (4,2,2,1)
而后,其余进程都可被满足

3. 恢复
抢占、回溯、杀死进程
4.预防
互斥条件:假脱机技术
占有和等待条件:开始就请求全部资源
不可抢占条件:可以抢占
环路等待条件:对资源按序编号
5.相关问题
两阶段加锁:
第一阶段,试图对所有所需记录加锁,若成功则进入第二阶段更新后释放
否则,释放它的所有加锁记录,重新开始
通信死锁:
进程A向B发送请求信息,阻塞至B回复。若信息丢失,A将阻塞等待回复,B将阻塞等待请求
网络中当一个数据包从一个主机进入路由器时,它被放入一个缓冲区中,然后传输到另一个路由器、另一个,直到目的地。这些缓冲区是数目有限的资源
活锁:
进程意识到不能获取需要的下一个锁时,会礼貌释放已经获得的锁,然后等待并再次尝试(同时让路)
过程中没有进程阻塞,甚至进程是在活动,但进程不会往下执行,称为活锁
饥饿:
由于分配方案而被无限制推后,尽管没有被阻塞,饥饿而死
相关内容