主观

41. 设由N个缓冲区组成缓冲池,每个缓冲区可以存放一个消息,有两个进程:生产者(producer)和消费者(consumer),且只要缓冲池未满,生产者便可以将消息送人缓冲池,而只要缓冲池未空,消费者就可以取走一个消息。各个进程对缓冲池进行互斥访问,用信号量实现协调过程。两个进程的处理过程如下:

Begin

 S,S1,S2:SEMAPHORE;

 S=1;S1=N;S2=0;

 BUFFER[N]为缓冲区;I=J=0;

CoBegin

 Process Producer:/*生产者进程*/

L1:生产一个消息M;

   P(S1);

   P(S);

   BUFFER[I]=M;

   I=(I+1)MOD N;

   V(S2);

   V(S);

   GOTO L1;

Process Consumer:/*消费者进程*/

L2:

   P(S2);

   P(S);

   M=BUFFER[J];

   J=(J+1)MOD N;

   V(S1);

   V(S);

   消费一个消息M;

   GOTO L1;

COEND

请问信号量S、S1、S2的作用分别是什么?

参考答案
您可能感兴趣的试题
¥

订单号:

遇到问题请联系在线客服

订单号:

遇到问题请联系在线客服