首页 > 试题广场 >

设系统中有n个进程并发,共享竞争资源X;且每个进程都需要m个

[单选题]

设系统中有n个进程并发,共享竞争资源X;且每个进程都需要m个资源x,为使该系统不会发生死锁,资源X最少要(  )

  • n*m+1:
  • n*m+n
  • n*(m-1)+1
  • 无法预计
最极端的情况是每个进城有m-1个资源,而总资源一共就有n*(m-1)个,那么这个时候也会发生死锁,这个时候只需要再多出一个资源,就可以保证某一个进城执行成功,然后执行成功以后,就会有更多的资源释放,后面的进城也可以执行。所以最终的结果就是n*(m-1)+1
发表于 2018-09-03 14:58:35 回复(1)
解决这类问题的关键就是,让竞争的n个进程中只有一个能够拿到他所需要的k个资源,其他进程都只能分得k-1个资源,这样的情况是最极端的。此时,少一个资源就有可能形成死锁,多一个资源就必定会有2个进程获得足够的资源~
发表于 2020-04-24 21:03:10 回复(0)
所有进程都持有m - 1个资源,只要在给一个资源就可以让一个进程成功启动,运行完后释放资源,释放的资源可以用于其他所有进程,这样保证不会死锁。
发表于 2019-11-30 20:01:25 回复(0)
极端情况下每个进程都都持有 m-1 个资源,共需要 n*(m-1) 个资源。此时若没有新的资源可以分配,将会发生死锁,但只要加一个资源就可以解决了
发表于 2022-09-04 08:50:32 回复(0)
m个进程,每个进程都给n-1个资源,那么此时总共需要的资源为m*(n-1),此时再给一个资源,就会有一个进程能够正确执行随后释放资源。
发表于 2022-04-21 22:23:31 回复(0)

假设m和n都为1就很容易得出答案了

发表于 2018-11-08 17:26:47 回复(0)