问答题
在下列代码中,有3个进程Pl、P2和P3,它们使用了字符输出函数putc来进行输出(每次输出一个字符),并使用了两个信号量L和R来进行进程间的同步。请问:当这组进程在运行的时候,“CABACDBCABDD”是不是一种可能的输出序列,为什么?semaphore L=3,R=0; /*初始化*//*进程P1*/ /+进程P2*/ /*进程P3*/while(1) while (1) while (1){ { {P(L); P(R); P(R);putc(’C’); putc(’A’); putc(’D’);V (R); putc(’B’); }} V(R);}
答案:
正确答案:可能。相当于进程P2在打印完第二个“A”的时候被中断了。 本题总结:本题是用PV操作实现进程同步的一个例子,由...