9.死锁的概念、导致死锁的原因,导致死锁的四个必要条件,预防死锁的方法、避免死锁的方法

     可以把死锁定义为一组相互竞争系统资源或进行通信的进程间的“永久”阻塞。当一组进程中的每个进程都在等待某个事件(典型的情况是等待所请求的资源释放),而只有在这组进程中的其他被阻塞的进程才可以触发该事件,这时就称这组进程发生死锁。因为没有事件能够被触发,所以死锁是永久性的。

产生死锁的原因主要是:

1) 因为系统资源不足。

2) 进程运行推进的顺序不合适。

3) 资源分配不当等
     

导致死锁的4个必要条件:
1、 互斥。一次只有一个进程可以使用一个资源。其他进程不能访问已分配给其他进程的资源。
2、 占有且等待。当一个进程等待其他进程时,继续占有已经分配的资源。
3、 不可抢占。不能强行抢占进程已占有的资源。
4、 循环等待。存在一个封闭的进程链,使得每个进程至少占有此链中下一个进程所需要的一个资源。


      死锁预防策略是试图设计一种系统来排除发生死锁的可能性,方法分为两类:间接的死锁预防方法(防止前面三个列出的三个必要条件中的任何一个的发生);直接的死锁的预防方法(防止循环等待的发生)。



死锁避免策略
     银行家算法:首先需要定义状态和安全状态的概念。系统的状态是当前给进程分配的资源情况。因此,状态包含两个向量Resource(系统中每种资源的总量)和Available(未分配给进程的每种资源的总量)及两个矩阵Claim(表示进程对资源的需求)和Allocation(表示当前分配给进程的资源)。安全状态是指至少有一个资源分配序列不会导致死锁。当进程请求一组资源时,假设同意该请求,从而改变了系统的状态,然后确定其结果是否还处于安全状态。如果是,同意这个请求;如果不是,阻塞该进程知道同意该请求后系统状态仍然是安全的。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值