问答题
某系统有同类资源m个,供n个进程共享。如果每个进程最多申请x个资源(其中1≤x≤m)。请证明:当n(x-1)+1≤m时,系统不会发生死锁。
【正确答案】由于每个进程最多申请使用x个资源,在最坏的情况下,每个进程都得到了(x-1)个资源,并且现在均需申请最后一个资源。这时系统剩余资源数为m-n(x-1)。如果系统的剩余资源数大于或等于1,即系统至少还有一个资源可以使用,就可以使这n个进程中的任一个进程获得所需的全部资源。该进程可以运行结束,释放出所占有的资源,供其他进程使用,从而每个进程都可以执行结束。
因此,当m-n(x-1)≥1时,即n(x-1)+1≤m时,系统不会发生死锁。
本题需要对资源分配的最坏情况有所了解,即所有共享资源的进程都获得比最大需求资源量少一个的资源,并都需要申请所需的最后一个资源。
根据本题,可以得出推论:n(x-1)+1>m时,系统可能发生死锁。该推论可以作为判断系统是否发生死锁的通用方法。该结论及推论的使用需要建立在理解的基础上,如果只是死记硬背,则容易出错。
【答案解析】