在一个系统中,有3个并发进程,都需要同类资源4个,则该系统不会发生死锁的最少资源数是:__10__
分析:
3个并发进程
都需要同类资源4个
这意味着,这3个进程是同时执行的,而且每个进程必须拥有4个资源才能开始执行。
因为3个进程要竞争资源,所以最差的情况是均分,也就是资源被 “顺序抢到” ,比如3个并发进程,现有9个资源,最坏的情况就是,每个进程抢到3个,而题中告知,需要4个资源才能开始执行,所以这3个进程都不能开始执行,所以再加1个资源,不管这个资源被哪个进程抢到都可以开始执行,结束后释放掉资源供其他进程使用,也就不会发生死锁了。
因此,不会发生死锁的最少资源数是3×3+1=10
这类求最少资源数的问题可以总结出如下公式:
进程数目×(所需的资源数目-1) +1 = 不会发生死锁的最小资源数
总结:
保证系统不发生死锁的最小资源数,符合以下两个条件:
①给每个进程都分配所需资源最大数少一个资源
②在步骤①基础上,如果系统还剩一个剩余资源,则系统不会发生死锁