主观题:h519.某系统有同类资源m个供n个进程共享,如果每个进程最多需要x个资源(1≤x≤m)且各进程的最大需求量之和ΣNeedi小于(m + n)。
某系统有同类资源m个供n个进程共享,如果每个进程最多需要x个资源(1≤x≤m)且各进程的最大需求量之和ΣNeedi小于(m + n)。证明系统没有因申请该类资源而发生死锁的危险。
答案:证明:在最坏情况下,每个进程都已占有(x-1)个该类资源,各进程最多再申请1个资源就可以运行完毕,进而释放它所占有的全部资源。
在此情况下,系统剩余的资源数为:m-n*(x-1)。当m-n*(x-1)≥1时,即n*x≤m+n-1时,至少有1个进程可以获得全部资源,从而能运行完成,释放资源供别的进程使用,因此系统不会出现死锁。 (5分)
因此得出,系统中所有进程的最大需求之和ΣNeedi满足下式时不会死锁:
ΣNeedi=n*x≤m+n-1 或 ΣNeedi <m+n
证毕。 (5分)
答案:证明:在最坏情况下,每个进程都已占有(x-1)个该类资源,各进程最多再申请1个资源就可以运行完毕,进而释放它所占有的全部资源。
在此情况下,系统剩余的资源数为:m-n*(x-1)。当m-n*(x-1)≥1时,即n*x≤m+n-1时,至少有1个进程可以获得全部资源,从而能运行完成,释放资源供别的进程使用,因此系统不会出现死锁。 (5分)
因此得出,系统中所有进程的最大需求之和ΣNeedi满足下式时不会死锁:
ΣNeedi=n*x≤m+n-1 或 ΣNeedi <m+n
证毕。 (5分)