大门| 2006年大门|问题55

使用通用信号量S、F和E考虑有界缓冲区生产者/消费者问题的解决方案。信号量S是初始化为1的互斥信号量。信号量F对应于缓冲区中的空闲插槽数,并初始化为N。信号量对应于缓冲区中的元素数,并初始化为0。 以下哪项交换操作可能导致死锁?

null
  1. 在生产过程中交换等待(F)和等待(S)
  2. 在用户进程中交换信号(S)和信号(F)

(A) 我只是 (B) 只有我 (C) 我和我都不是 (D) 我和我 答复: (A) 说明: 假设F=0。现在,如果Wait(F)和Wait(S)互换,并且producer中的Wait(S)成功,那么producer将等待Consumer中发出信号的Wait(F),而Consumer永远不会成功,因为它正在等待由producer发出信号的Wait(S)。所以,僵局可能会发生。 这个问题的小测验

© 版权声明
THE END
喜欢就支持一下吧
点赞8 分享