操作系统:死锁资源的计算

简介: 操作系统:死锁资源的计算

公式

死锁资源计算:系统内有n个进程,每个进程都需要R个资源,那么其发生死锁的最大资源数为n*(R-1)。其不发生死锁的最小资源数为n*(R-1)+1。

例题

例如系统有3个进程A,B,C,三个进程都需要5个资源,则系统如果有13个资源即不会发生死锁。

这是因为假设3个进程都分配到了4个资源(共12个),那么最后一个资源无论分配给哪个进程都能保证该进程执行完成并释放资源,从而满足其他两个进程的需要。当然,如果是其他的分配方式,则总能有一个进程先获取所有需要的资源而先得到执行,从而不会发生死锁。所以这里有个公式,假设系统有k个进程,每个进程需要n个资源,那么系统至少有k*(n-1)+1个资源,能保证不发生死锁。

  1. 假设现在有P个进程,每个进程最多需要m个资源,并且有r个资源可用。什么样的条件可以保证死锁不会发生?

解:

如果一个进程有m个资源它就能够结束,不会使自己陷入死锁。因此最差的情况就是每个进程都只有m-1个资源并且需要另外一个资源。如果有一个资源可用,那么其中某个进程就能够结束并释放它的所有资源,使其他进程也能够结束。所以避免死锁发生的条件就是:

r>=p(m-1)+1

例:某系统中有3个并发进程,都需要同类资源4个,试问该系统不会发生死锁的最少资源数是多少?

根据上面的式子,最少资源数>=并发进程数*(单个进程最多需要资源数-1)+1,所以该题目答案是

3∗(4−1)+1=10


相关文章
|
1月前
|
算法 安全
【操作系统】死锁处理-银行家算法
【操作系统】死锁处理-银行家算法
84 0
|
8月前
操作系统(3.5)--死锁概述
系统中所拥有的不可抢占性资源其数量不足以满足多个进程运行的需要,使得进程在运行过程中,会因争夺资源而陷入僵局。
59 0
|
1月前
|
安全 算法 程序员
操作系统(9)----死锁
操作系统(9)----死锁
25 1
|
1月前
|
消息中间件 资源调度 安全
操作系统----临界区,临界资源,互斥量,互斥对象
操作系统----临界区,临界资源,互斥量,互斥对象
36 2
|
1月前
|
存储 Oracle 关系型数据库
linux操作系统相关资源优化
【4月更文挑战第21天】基于操作系统的性能优化也是多方面的,主要是系统安装、系统内核参数、网络参数、文件系统等几个方面进行衡量
31 2
|
1月前
|
存储 算法 安全
操作系统基础:死锁
操作系统基础:死锁
|
1月前
|
算法 安全 调度
[操作系统] 面试宝典之~死锁连环系列
[操作系统] 面试宝典之~死锁连环系列
|
1月前
能列举一个操作系统发生死锁的例子吗
能列举一个操作系统发生死锁的例子吗
|
6月前
|
算法 程序员
【操作系统】—死锁
【操作系统】—死锁
|
7月前
|
存储 算法 安全
操作系统实验三:死锁避免程序设计
操作系统实验三:死锁避免程序设计
93 0

热门文章

最新文章