计算机进程死锁
设某系统中有3个并发进程都需要4个同类资源,该系统不会发生死锁的最少资源数量?
:最少数量是10,3个进程要想不死锁 每个进程都需要4个同类资源。只要每个进程都有3个资源,另外一个在给一个额外的资源。 那么3个进程中有一个可以运行,运行完以后 释放资源然后其余的。进程在申请资源就可以了啊 。
当有n个线程,m个资源,问每个线程资源最大需求量:
用银行家算法计算死锁时,假设有m个共享资源,n个进程,每个进程所需的最大资源数为w,那么仅是
m>n*(w-1) 时,才会不死锁。
如果每个进程所需的资源数不同,则先平均分配,只要有一个进程满足了资源要求,就不会死锁。
必要条件
- 互斥:每个资源要么已经分配给了一个进程,要么就是可用的。
- 占有和等待:已经得到了某个资源的进程可以再请求新的资源。
- 不可抢占:已经分配给一个进程的资源不能强制性地被抢占,它只能被占有它的进程显式地释放。
- 环路等待:有两个或者两个以上的进程组成一条环路,该环路中的每个进程都在等待下一个进程所占有的资源。
处理方法
主要有以下四种方法:
- 鸵鸟策略
- 死锁检测与死锁恢复
- 死锁预防
- 死锁避免