1)将P(full),P(mutex)的位置互换,则当某个最先到达临界区的消费者进程执行P(mutex)时将进入临界区,若此时full=0,消费者进程执行P(full)将阻塞在临界区中;而生产者进程执行P(mutex)时无法进入临界区放置产品,导致消费者永远不能够得到产品而退出临界区。结果是进程死锁。
2)V(full),V(mutex)互换位置,生产者的推进都不会受到影响;同时最多在唤醒消费者进程的时刻上有不同,不会造成消费者进程不能推进。
1)将P(full),P(mutex)的位置互换,则当某个最先到达临界区的消费者进程执行P(mutex)时将进入临界区,若此时full=0,消费者进程执行P(full)将阻塞在临界区中;而生产者进程执行P(mutex)时无法进入临界区放置产品,导致消费者永远不能够得到产品而退出临界区。结果是进程死锁。
2)V(full),V(mutex)互换位置,生产者的推进都不会受到影响;同时最多在唤醒消费者进程的时刻上有不同,不会造成消费者进程不能推进。