利用信号量和PV操作实现进程互斥的一般模型是:
进程P1 进程P2 …… 进程Pn…… …… ……
P(S); P(S); P(S);
临界区; 临界区; 临界区;
V(S); V(S); V(S);
…… …… …… ……
为什么pv操作能实现进程的互斥???
我个人感觉:
主要是P(S)操作的第三个动作:若s减1后,s<0,则调用P(I s)的进程被阻塞
例如以上的例子:
当进程1拿到s之后,s变为0,进程2拿到s之后s-1<0,进程2被阻塞。
因此实现了,只有进程1执行完之后,进程2才能执行的表面现象。