操作系统证明题,关于死锁的
某系统有同类资源m个供n个进程共享,如果每个进程最多申请x个资源(1<=x<=m)且各进程的最大需求量之和小于(m+n),试证明该系统不会发生死锁。...
某系统有同类资源m个供n个进程共享,如果每个进程最多申请x个资源(1<=x<=m)且各进程的最大需求量之和小于(m+n),试证明该系统不会发生死锁。
展开
2个回答
展开全部
首先,要明白锁死四个必要条件。可以百度先了解一下:
1)互斥条件:
2)请求和保持条件:
3)不剥夺条件:
4)环路等待条件
分析如下 :
如果要证明不会出现死锁,上边四个必要条件至少有一个不成立,就得证了。
1)从互斥考虑,当某个进程在作用某个资源时,该资源就不可以被其它进程作用的。这个条件不能切断。
2)从环路等待着手。要满足这个必要条件的话,每个进程都处于等待状态下,形成一个环,也就是说 ,至少每个进程占用了一个资源,而且还在等待其它资源释放资源。(这里懂吗?如果不懂,我就无能为力了,就当我没有回答)。假设某个时刻正好处理死锁状态,那么至少需要n个资源(这里最好的情况下,就是n个进程都占用一个资源,恰好,这也是这些进程进程所等待释放的资源)基于这个条件,这里的资源最大需要量<m+n是无论如何都不可能满足,具体的数学知识,你就自己证明吧。
1)互斥条件:
2)请求和保持条件:
3)不剥夺条件:
4)环路等待条件
分析如下 :
如果要证明不会出现死锁,上边四个必要条件至少有一个不成立,就得证了。
1)从互斥考虑,当某个进程在作用某个资源时,该资源就不可以被其它进程作用的。这个条件不能切断。
2)从环路等待着手。要满足这个必要条件的话,每个进程都处于等待状态下,形成一个环,也就是说 ,至少每个进程占用了一个资源,而且还在等待其它资源释放资源。(这里懂吗?如果不懂,我就无能为力了,就当我没有回答)。假设某个时刻正好处理死锁状态,那么至少需要n个资源(这里最好的情况下,就是n个进程都占用一个资源,恰好,这也是这些进程进程所等待释放的资源)基于这个条件,这里的资源最大需要量<m+n是无论如何都不可能满足,具体的数学知识,你就自己证明吧。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询