[25][40][多选]已知某系统中所有资源是相同类型的,而且进程严格按照一次一个的方式申请或释放资源。在此系统中,进程所需要的资源量不超过系统资源总量。下表列出的各种情况中,哪些不会发生死锁?
情况 系统中进程数量 系统中资源总量 1 1 2 2 2 3 3 2 4 4 3 5 5 3 6
情况 1
情况 2
情况 3
情况 4
情况 5
答案
情况 1
情况 2
解析
情况 1:系统中进程数量为 1 个,且系统中资源总量为 2。由题目所给条件可知,该进程最大资源需求量不超过 2,显然无论如何分配都不会发生死锁。 情况 2:系统中进程数量为 2 个,且系统中资源总量为 3。由题目所给条件可知,该进程最大资源需求量不超过 3,若将资源分配给其中的一个进程,则此进程已获得所需要的所有资源并将运行完毕,从而可将分配给它的资源归还给系统,使另一个进程也能顺利执行完成,不会发生死锁。 情况 3:系统中进程数量为 3 个,且系统中资源总量为 4。由题目所给条件可知,该进程最大资源需求量不超过 4。假设两个进程的最大资源需求量为 2,若将资源分配给其中的一个进程,则此进程已获得所需要的所有资源并将运行完毕,从而可将分配给它的资源归还给系统,使另一个进程也能顺利执行完成,不会发生死锁。若将资源分配给其中两个进程 1 个,另一个进程 2 个,在此情况下,每个进程均获得部分资源且系统中已无空闲资源,当其中的一个进程再次申请资源时,因系统中无空闲资源而使其等待,另的进程的情况也是如此,因此以这种方式分配资源会发生死锁。 情况 4:系统中进程数量为 3 个,且系统中资源总量为 5。由题目所给条件可知,该进程最大资源需求量不超过 5。假设两个进程的最大资源需求量为 2,若将资源分配给其中的一个进程,则此进程已获得所需要的所有资源并将运行完毕,从而可将分配给它的资源归还给系统,使另一个进程也能顺利执行完成,不会发生死锁。若将资源分配给其中两个进程 1 个,另一个进程 3 个,在此情况下,每个进程均获得部分资源且系统中已无空闲资源,当其中的一个进程再次申请资源时,因系统中无空闲资源而使其等待,另一个进程的情况也是如此,因此以这种方式分配资源会发生死锁。 情况 5:系统中进程数量为 3 个,且系统中资源总量为 6。由题目所给的条件可知,该进程最大资源需求量不超过 6。假设两个进程的最大资源需求量为 3,若将资源分配给其中的一个进程,则此进程已获得所需要的所有资源并将运行完毕,从而可将分配给它的资源归还给系统,使另一个进程也能顺利执行完成,不会发生死锁。若将资源分配给其中两个进程 2 个,另一个进程 2 个,在此情况下,每个进程均获得部分资源且系统中已无空闲资源,当其中的一个进程再次申请资源时,因系统中无空闲资源而使其等待,另一个进程的情况也是如此,因此以这种方式分配资源会发生死锁。转载请注明出处。